@expcat/tigercat-vue 2.1.3 → 2.2.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 (154) hide show
  1. package/README.md +13 -19
  2. package/dist/{chunk-XHNQITBG.mjs → chunk-2EOVE7AX.mjs} +1 -1
  3. package/dist/{chunk-FGQ7VMHF.mjs → chunk-3GNK4XIP.mjs} +2 -2
  4. package/dist/{chunk-7SUS7OIH.mjs → chunk-4337NE24.mjs} +1 -1
  5. package/dist/{chunk-ZIGSSG3J.mjs → chunk-4JH6QUWR.mjs} +4 -4
  6. package/dist/{chunk-BLTPZIJN.mjs → chunk-4RJPEIBE.mjs} +1 -1
  7. package/dist/{chunk-UUY7X4DY.mjs → chunk-5G47QDGH.mjs} +1 -1
  8. package/dist/{chunk-XWL3IP7Z.mjs → chunk-5IVN54XY.mjs} +2 -2
  9. package/dist/{chunk-2SC2HIVS.mjs → chunk-5XIHKQL7.mjs} +2 -2
  10. package/dist/{chunk-MPYKNKZU.mjs → chunk-66JX7T3H.mjs} +1 -1
  11. package/dist/{chunk-BFIYTA3E.mjs → chunk-72XR5ZIW.mjs} +6 -2
  12. package/dist/{chunk-XCIQNTJN.mjs → chunk-77L52YWC.mjs} +37 -5
  13. package/dist/chunk-7L5MXXHC.mjs +85 -0
  14. package/dist/{chunk-5YYI73DZ.mjs → chunk-7WK6OSB5.mjs} +30 -22
  15. package/dist/{chunk-2GYERJBM.mjs → chunk-AIONRIMJ.mjs} +3 -3
  16. package/dist/{chunk-XY2NDPX7.mjs → chunk-ASQ5XLPR.mjs} +1 -1
  17. package/dist/{chunk-ETJ4QD6U.mjs → chunk-AYCK22RG.mjs} +1 -1
  18. package/dist/{chunk-3VZRHFXF.mjs → chunk-AZWRMAUF.mjs} +1 -1
  19. package/dist/{chunk-QIEFLYF3.mjs → chunk-BLHE5KSM.mjs} +6 -1
  20. package/dist/{chunk-UFQRKWKG.mjs → chunk-BW2SDXPE.mjs} +1 -1
  21. package/dist/{chunk-CGNBG7NB.mjs → chunk-CSMFWD6T.mjs} +1 -1
  22. package/dist/{chunk-MTOGCPOV.mjs → chunk-DY2B4W52.mjs} +2 -1
  23. package/dist/{chunk-RLII7QEJ.mjs → chunk-E2DXPILZ.mjs} +1 -1
  24. package/dist/{chunk-IWGC7M62.mjs → chunk-ED4EXBY6.mjs} +1 -1
  25. package/dist/{chunk-4VJB4XFH.mjs → chunk-EL2B7DEV.mjs} +1 -1
  26. package/dist/{chunk-35JLHFUT.mjs → chunk-ETW3MBHS.mjs} +22 -1
  27. package/dist/{chunk-KO7NA3F6.mjs → chunk-FM2P4ENM.mjs} +1 -1
  28. package/dist/{chunk-C5WYGY6Z.mjs → chunk-GAIFRCYZ.mjs} +7 -4
  29. package/dist/chunk-GFSZU7EJ.mjs +98 -0
  30. package/dist/{chunk-SBRQ3OFZ.mjs → chunk-GXYTMCB7.mjs} +1 -1
  31. package/dist/{chunk-SC4MACIG.mjs → chunk-I4BT2CJO.mjs} +3 -3
  32. package/dist/{chunk-XXREA57H.mjs → chunk-IE5CXLWU.mjs} +1 -1
  33. package/dist/{chunk-APWDXCWD.mjs → chunk-IK6D7U2T.mjs} +1 -1
  34. package/dist/{chunk-TQEN6GDE.mjs → chunk-IKM3NBMK.mjs} +5 -6
  35. package/dist/{chunk-WUIS6PLE.mjs → chunk-IWIRPC5E.mjs} +1 -1
  36. package/dist/{chunk-LYCCTNID.mjs → chunk-IZCJWB77.mjs} +1 -1
  37. package/dist/{chunk-2XITUFL6.mjs → chunk-JRDQVGMH.mjs} +1 -1
  38. package/dist/chunk-JUSJUVFQ.mjs +76 -0
  39. package/dist/{chunk-MNVDK2BL.mjs → chunk-KHA3HBEO.mjs} +2 -2
  40. package/dist/{chunk-SG7V5ROT.mjs → chunk-KIGQEL2O.mjs} +2 -2
  41. package/dist/{chunk-QFASGPNS.mjs → chunk-KINOD42K.mjs} +1 -1
  42. package/dist/{chunk-HZJH4DNQ.mjs → chunk-LQP4TYEZ.mjs} +1 -1
  43. package/dist/{chunk-VMM2KJAS.mjs → chunk-MKKYUGVP.mjs} +1 -1
  44. package/dist/{chunk-F2LUNHMK.mjs → chunk-NKUXUYVK.mjs} +1 -1
  45. package/dist/{chunk-JBSMLUJJ.mjs → chunk-NVL4UWPJ.mjs} +1 -1
  46. package/dist/{chunk-OO27UB75.mjs → chunk-NWPALCKN.mjs} +1 -1
  47. package/dist/chunk-OEHI4BZZ.mjs +168 -0
  48. package/dist/{chunk-ZWKDK6AF.mjs → chunk-OZZKYZD6.mjs} +1 -1
  49. package/dist/{chunk-AGZARRL3.mjs → chunk-P7TCGBAE.mjs} +1 -1
  50. package/dist/{chunk-5TASA6W6.mjs → chunk-QEWVTGKG.mjs} +1 -1
  51. package/dist/{chunk-VDBAGIPC.mjs → chunk-QHOOB7IK.mjs} +1 -1
  52. package/dist/{chunk-ZW2VXGO3.mjs → chunk-RBST5GCI.mjs} +6 -3
  53. package/dist/{chunk-5RJDVHNT.mjs → chunk-S77CILEG.mjs} +1 -1
  54. package/dist/{chunk-3VUEZQOO.mjs → chunk-SEVE2FQJ.mjs} +2 -2
  55. package/dist/{chunk-IEYMYVIN.mjs → chunk-SJYR5CSS.mjs} +1 -1
  56. package/dist/{chunk-QUUCZPN5.mjs → chunk-TOK2QAHM.mjs} +1 -1
  57. package/dist/{chunk-LMVNBPQP.mjs → chunk-TYVMTJAK.mjs} +1 -1
  58. package/dist/{chunk-AJTD3TMG.mjs → chunk-TZRNMUWB.mjs} +1 -1
  59. package/dist/{chunk-JL4IFWYN.mjs → chunk-V3NTKQZN.mjs} +1 -1
  60. package/dist/{chunk-Y63TRXZO.mjs → chunk-VFRB5L7W.mjs} +1 -1
  61. package/dist/{chunk-LY64PCAS.mjs → chunk-WQBCO22E.mjs} +1 -1
  62. package/dist/{chunk-MVG5DA7S.mjs → chunk-WT5FY6VG.mjs} +1 -1
  63. package/dist/{chunk-ZO2SVLGC.mjs → chunk-XEOI2KHJ.mjs} +2 -2
  64. package/dist/{chunk-OY5PZMFI.mjs → chunk-XOGS6MRO.mjs} +3 -1
  65. package/dist/{chunk-YPONYV6R.mjs → chunk-YQYSWVVW.mjs} +1 -1
  66. package/dist/{chunk-A5XTNVXI.mjs → chunk-ZC6WO5VD.mjs} +1 -1
  67. package/dist/{chunk-HSKBYNCP.mjs → chunk-ZMSGID63.mjs} +7 -5
  68. package/dist/{chunk-G6PIOE4B.mjs → chunk-ZQUNC2MI.mjs} +1 -1
  69. package/dist/components/ActivityFeed.mjs +4 -4
  70. package/dist/components/Anchor.mjs +1 -1
  71. package/dist/components/AreaChart.mjs +3 -3
  72. package/dist/components/AutoComplete.mjs +2 -2
  73. package/dist/components/BackTop.mjs +1 -1
  74. package/dist/components/BarChart.mjs +3 -3
  75. package/dist/components/Calendar.d.mts +12 -3
  76. package/dist/components/Calendar.mjs +1 -1
  77. package/dist/components/Cascader.mjs +2 -2
  78. package/dist/components/ChartTooltip.mjs +2 -2
  79. package/dist/components/Code.d.mts +19 -1
  80. package/dist/components/Code.mjs +1 -1
  81. package/dist/components/CodeEditor.d.mts +2 -2
  82. package/dist/components/ColorPicker.mjs +2 -2
  83. package/dist/components/CommentThread.mjs +2 -2
  84. package/dist/components/ContextMenu.mjs +2 -2
  85. package/dist/components/CropUpload.mjs +4 -4
  86. package/dist/components/DataExport.mjs +3 -3
  87. package/dist/components/DataTableWithToolbar.mjs +7 -7
  88. package/dist/components/DatePicker.mjs +3 -3
  89. package/dist/components/DonutChart.mjs +4 -4
  90. package/dist/components/Drag.d.mts +62 -0
  91. package/dist/components/Drag.mjs +9 -0
  92. package/dist/components/Drawer.mjs +2 -2
  93. package/dist/components/Dropdown.mjs +2 -2
  94. package/dist/components/FloatButton.mjs +2 -2
  95. package/dist/components/Footer.d.mts +10 -0
  96. package/dist/components/Footer.mjs +1 -1
  97. package/dist/components/FormItem.mjs +2 -2
  98. package/dist/components/FullscreenButton.d.mts +58 -0
  99. package/dist/components/FullscreenButton.mjs +10 -0
  100. package/dist/components/FunnelChart.mjs +3 -3
  101. package/dist/components/GaugeChart.mjs +3 -3
  102. package/dist/components/HeatmapChart.mjs +3 -3
  103. package/dist/components/Icon.d.mts +3 -3
  104. package/dist/components/Image.mjs +5 -5
  105. package/dist/components/ImageCropper.mjs +1 -1
  106. package/dist/components/ImageGroup.mjs +3 -3
  107. package/dist/components/ImagePreview.mjs +2 -2
  108. package/dist/components/ImageViewer.mjs +3 -3
  109. package/dist/components/LineChart.mjs +3 -3
  110. package/dist/components/List.mjs +3 -3
  111. package/dist/components/Loading.d.mts +1 -1
  112. package/dist/components/Loading.mjs +2 -2
  113. package/dist/components/Mentions.mjs +2 -2
  114. package/dist/components/Menu.d.mts +4 -4
  115. package/dist/components/Menu.mjs +2 -2
  116. package/dist/components/Message.mjs +2 -2
  117. package/dist/components/MessageContainer.mjs +2 -2
  118. package/dist/components/MessageRoot.mjs +1 -1
  119. package/dist/components/Modal.mjs +2 -2
  120. package/dist/components/NavigationMenu.mjs +2 -2
  121. package/dist/components/Notification.mjs +2 -2
  122. package/dist/components/NotificationCenter.mjs +5 -5
  123. package/dist/components/NotificationContainer.mjs +2 -2
  124. package/dist/components/NotificationRoot.mjs +1 -1
  125. package/dist/components/NumberKeyboard.mjs +2 -2
  126. package/dist/components/PieChart.mjs +3 -3
  127. package/dist/components/Popconfirm.mjs +3 -3
  128. package/dist/components/Popover.mjs +3 -3
  129. package/dist/components/RadarChart.mjs +3 -3
  130. package/dist/components/Rate.mjs +1 -1
  131. package/dist/components/ScatterChart.mjs +3 -3
  132. package/dist/components/ScrollSpy.mjs +1 -1
  133. package/dist/components/Select.mjs +2 -2
  134. package/dist/components/Slider.mjs +1 -1
  135. package/dist/components/SplitButton.mjs +3 -3
  136. package/dist/components/Spotlight.mjs +2 -2
  137. package/dist/components/SunburstChart.mjs +3 -3
  138. package/dist/components/Table.mjs +4 -4
  139. package/dist/components/Text.d.mts +23 -73
  140. package/dist/components/Text.mjs +2 -1
  141. package/dist/components/TimePicker.mjs +2 -2
  142. package/dist/components/Tooltip.mjs +3 -3
  143. package/dist/components/Tour.mjs +2 -2
  144. package/dist/components/TreeMapChart.mjs +3 -3
  145. package/dist/components/TreeSelect.mjs +2 -2
  146. package/dist/components/Upload.mjs +3 -3
  147. package/dist/composables/useFullscreen.d.mts +14 -0
  148. package/dist/composables/useFullscreen.mjs +6 -0
  149. package/dist/index.d.mts +5 -2
  150. package/dist/index.mjs +43 -0
  151. package/package.json +17 -2
  152. package/dist/chunk-I77GUQV4.mjs +0 -93
  153. /package/dist/{chunk-TMOWIIJQ.mjs → chunk-CW2A2SDU.mjs} +0 -0
  154. /package/dist/{chunk-PFE3YML2.mjs → chunk-JBFAACVC.mjs} +0 -0
package/README.md CHANGED
@@ -35,25 +35,12 @@ import { ConfigProvider, Button } from '@expcat/tigercat-vue'
35
35
 
36
36
  ## Components
37
37
 
38
- 172 public component entries across 9 categories. The authoritative list with
39
- import subpaths lives in
40
- [component-index.md](https://github.com/expcat/Tigercat/blob/main/skills/tigercat/references/component-index.md)
41
- (generated); the table below is only a sampler.
42
-
43
- | Category | Count | Examples |
44
- | -------------- | ----- | ------------------------------------------------------------- |
45
- | **Basic** | 30 | Button, Alert, Avatar, Badge, Icon, Tag, Text, Result, QRCode |
46
- | **Form** | 31 | Input, Select, DatePicker, Form, Upload, InputOTP, TagsInput |
47
- | **Layout** | 19 | Card, Row/Col, Layout, List, Descriptions, Skeleton, Space |
48
- | **Navigation** | 33 | Menu, Tabs, Breadcrumb, Pagination, Steps, Dropdown, Tree |
49
- | **Feedback** | 13 | Modal, Drawer, Message, Popover, Tooltip, Progress, Tour |
50
- | **Data** | 7 | Table, Calendar, Collapse, Timeline, DataExport |
51
- | **Charts** | 20 | BarChart, LineChart, PieChart, RadarChart, GaugeChart, Gantt |
52
- | **Advanced** | 12 | VirtualTable, VirtualList, RichTextEditor, CodeEditor |
53
- | **Composite** | 7 | DataTableWithToolbar, ChatWindow, FormWizard, TaskBoard |
54
-
55
- `Message` and `notification` are also available as imperative command APIs from
56
- the package root; `notification` is a command API, not a component.
38
+ Sampler: Button, Avatar, Badge, Input, Select, DatePicker, Form, Card, Layout, Menu, Tabs, Modal, Drawer, Table, BarChart, LineChart, VirtualTable, RichTextEditor, DataTableWithToolbar, ChatWindow. The generated catalog with import subpaths is
39
+ [component-index.md](https://github.com/expcat/Tigercat/blob/main/skills/tigercat/references/component-index.md).
40
+
41
+ `Message`, `notification`, and `LoadingBar` are root command APIs;
42
+ [command-apis.md](https://github.com/expcat/Tigercat/blob/main/skills/tigercat/references/command-apis.md).
43
+ `notification` is not a component.
57
44
 
58
45
  ## Composables
59
46
 
@@ -61,6 +48,13 @@ the package root; `notification` is a command API, not a component.
61
48
  in
62
49
  [api-summary.md](https://github.com/expcat/Tigercat/blob/main/skills/tigercat/references/shared/api-summary.md).
63
50
 
51
+ ## Next
52
+
53
+ - Install, compatibility, and MCP client config:
54
+ [root README](https://github.com/expcat/Tigercat/blob/main/README.md)
55
+ - Agent docs:
56
+ [SKILL.md](https://github.com/expcat/Tigercat/blob/main/skills/tigercat/SKILL.md)
57
+
64
58
  ## License
65
59
 
66
60
  [MIT](https://opensource.org/licenses/MIT)
@@ -10,7 +10,7 @@ import {
10
10
  useVueEscapeKey,
11
11
  useVueFocusTrap,
12
12
  useVueOverlayPortalTarget
13
- } from "./chunk-Y63TRXZO.mjs";
13
+ } from "./chunk-VFRB5L7W.mjs";
14
14
  import {
15
15
  useTigerConfig
16
16
  } from "./chunk-4GOTWNOO.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Calendar
3
- } from "./chunk-XCIQNTJN.mjs";
3
+ } from "./chunk-77L52YWC.mjs";
4
4
  import {
5
5
  INPUT_GROUP_INJECTION_KEY
6
6
  } from "./chunk-J4HGCSOE.mjs";
@@ -11,7 +11,7 @@ import {
11
11
  renderVueOverlayTeleport,
12
12
  useVueAnchoredOverlay,
13
13
  useVueFocusTrap
14
- } from "./chunk-Y63TRXZO.mjs";
14
+ } from "./chunk-VFRB5L7W.mjs";
15
15
  import {
16
16
  useTigerConfig
17
17
  } from "./chunk-4GOTWNOO.mjs";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-W2FOU4XH.mjs";
7
7
  import {
8
8
  ChartTooltip
9
- } from "./chunk-2XITUFL6.mjs";
9
+ } from "./chunk-JRDQVGMH.mjs";
10
10
  import {
11
11
  ChartCanvas
12
12
  } from "./chunk-6K5BLE4Q.mjs";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  IMAGE_GROUP_INJECTION_KEY
3
- } from "./chunk-AGZARRL3.mjs";
3
+ } from "./chunk-P7TCGBAE.mjs";
4
4
  import {
5
5
  ImagePreview
6
- } from "./chunk-JBSMLUJJ.mjs";
6
+ } from "./chunk-NVL4UWPJ.mjs";
7
7
  import {
8
8
  usePopup
9
- } from "./chunk-ZWKDK6AF.mjs";
9
+ } from "./chunk-OZZKYZD6.mjs";
10
10
  import {
11
11
  renderVueOverlayTeleport
12
- } from "./chunk-Y63TRXZO.mjs";
12
+ } from "./chunk-VFRB5L7W.mjs";
13
13
  import {
14
14
  useTigerConfig
15
15
  } from "./chunk-4GOTWNOO.mjs";
@@ -7,7 +7,7 @@ import {
7
7
  useVueEscapeKey,
8
8
  useVueFocusTrap,
9
9
  useVueOverlayPortalTarget
10
- } from "./chunk-Y63TRXZO.mjs";
10
+ } from "./chunk-VFRB5L7W.mjs";
11
11
  import {
12
12
  useTigerConfig
13
13
  } from "./chunk-4GOTWNOO.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PieChart
3
- } from "./chunk-IWGC7M62.mjs";
3
+ } from "./chunk-ED4EXBY6.mjs";
4
4
 
5
5
  // src/components/DonutChart.ts
6
6
  import { defineComponent, h } from "vue";
@@ -6,13 +6,13 @@ import {
6
6
  } from "./chunk-2HP6DX7Q.mjs";
7
7
  import {
8
8
  Loading
9
- } from "./chunk-OO27UB75.mjs";
9
+ } from "./chunk-NWPALCKN.mjs";
10
10
  import {
11
11
  Tag
12
12
  } from "./chunk-7PLYHGMY.mjs";
13
13
  import {
14
14
  Text
15
- } from "./chunk-I77GUQV4.mjs";
15
+ } from "./chunk-OEHI4BZZ.mjs";
16
16
  import {
17
17
  Card
18
18
  } from "./chunk-W4A6L2TC.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Select
3
- } from "./chunk-KO7NA3F6.mjs";
3
+ } from "./chunk-FM2P4ENM.mjs";
4
4
  import {
5
5
  Radio
6
6
  } from "./chunk-AFNJO6KJ.mjs";
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-V5BSH3EF.mjs";
19
19
  import {
20
20
  Loading
21
- } from "./chunk-OO27UB75.mjs";
21
+ } from "./chunk-NWPALCKN.mjs";
22
22
  import {
23
23
  Button
24
24
  } from "./chunk-4KIZXFFG.mjs";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-X7UK3A6Z.mjs";
13
13
  import {
14
14
  Loading
15
- } from "./chunk-OO27UB75.mjs";
15
+ } from "./chunk-NWPALCKN.mjs";
16
16
  import {
17
17
  useTigerConfig
18
18
  } from "./chunk-4GOTWNOO.mjs";
@@ -3,8 +3,8 @@ import { defineComponent, h, computed } from "vue";
3
3
  import {
4
4
  classNames,
5
5
  coerceClassValue,
6
+ getLayoutFooterClasses,
6
7
  injectLayoutGridStyles,
7
- layoutFooterClasses,
8
8
  mergeStyleValues
9
9
  } from "@expcat/tigercat-core";
10
10
  var Footer = defineComponent({
@@ -23,6 +23,10 @@ var Footer = defineComponent({
23
23
  type: String,
24
24
  default: void 0
25
25
  },
26
+ size: {
27
+ type: String,
28
+ default: "default"
29
+ },
26
30
  style: {
27
31
  type: Object,
28
32
  default: void 0
@@ -32,7 +36,7 @@ var Footer = defineComponent({
32
36
  injectLayoutGridStyles();
33
37
  const footerClasses = computed(
34
38
  () => classNames(
35
- layoutFooterClasses,
39
+ getLayoutFooterClasses(props.size),
36
40
  props.className,
37
41
  coerceClassValue(attrs.class)
38
42
  )
@@ -15,6 +15,10 @@ import {
15
15
  } from "vue";
16
16
  import { classNames, coerceClassValue } from "@expcat/tigercat-core";
17
17
  import {
18
+ appendCalendarEventCountLabel,
19
+ buildCalendarDateCellExtra,
20
+ calendarDateCellDotClasses,
21
+ calendarDateCellExtraClasses,
18
22
  calendarGridClasses,
19
23
  calendarHeaderClasses,
20
24
  calendarNavButtonClasses,
@@ -25,6 +29,7 @@ import {
25
29
  followCalendarValue,
26
30
  formatCalendarDayLabel,
27
31
  formatCalendarDayNumber,
32
+ getCalendarEventDotStyle,
28
33
  formatMonthYear,
29
34
  getCalendarContainerClasses,
30
35
  getCalendarDayClasses,
@@ -78,10 +83,11 @@ var Calendar = defineComponent({
78
83
  default: void 0
79
84
  },
80
85
  locale: { type: Object, default: void 0 },
81
- className: { type: String, default: void 0 }
86
+ className: { type: String, default: void 0 },
87
+ events: { type: Array, default: void 0 }
82
88
  },
83
89
  emits: ["update:modelValue", "update:mode", "change", "panel-change"],
84
- setup(props, { emit, attrs, expose }) {
90
+ setup(props, { emit, attrs, expose, slots }) {
85
91
  const config = useTigerConfig();
86
92
  const mergedLocale = computed(() => mergeTigerLocale(config.value.locale, props.locale));
87
93
  const localeCode = computed(() => mergedLocale.value?.locale);
@@ -351,6 +357,27 @@ var Calendar = defineComponent({
351
357
  );
352
358
  const isTodayDate = today.value ? isSameDay(date, today.value) : false;
353
359
  const isDisabled = isCalendarDateDisabled(date, props.disabledDate);
360
+ const extra = buildCalendarDateCellExtra({
361
+ date,
362
+ events: props.events,
363
+ inCurrentMonth: isCurrentMonth,
364
+ today: isTodayDate,
365
+ selected: isSelected,
366
+ disabled: isDisabled
367
+ });
368
+ const customCell = slots.dateCell?.({ date, events: extra.events, extra });
369
+ const hasExtra = Boolean(customCell) || extra.events.length > 0;
370
+ const defaultDots = !customCell && extra.events.length > 0 ? h(
371
+ "span",
372
+ { class: calendarDateCellExtraClasses, "aria-hidden": "true" },
373
+ extra.events.map(
374
+ (event, index) => h("span", {
375
+ key: event.key ?? `${extra.iso}-${index}`,
376
+ class: calendarDateCellDotClasses,
377
+ style: getCalendarEventDotStyle(event.color)
378
+ })
379
+ )
380
+ ) : null;
354
381
  return h(
355
382
  "button",
356
383
  {
@@ -358,7 +385,11 @@ var Calendar = defineComponent({
358
385
  type: "button",
359
386
  role: "gridcell",
360
387
  "data-date": iso,
361
- "aria-label": formatCalendarDayLabel(date, localeCode.value),
388
+ "aria-label": appendCalendarEventCountLabel(
389
+ formatCalendarDayLabel(date, localeCode.value),
390
+ extra.events.length,
391
+ labels.value.eventCountText
392
+ ),
362
393
  "aria-selected": isSelected || isRangeStart || isRangeEnd,
363
394
  "aria-current": isTodayDate ? "date" : void 0,
364
395
  disabled: isDisabled,
@@ -371,12 +402,13 @@ var Calendar = defineComponent({
371
402
  isActive: activeIso.value === iso,
372
403
  isInRange,
373
404
  isRangeStart,
374
- isRangeEnd
405
+ isRangeEnd,
406
+ hasExtra
375
407
  }),
376
408
  onClick: () => selectDay(date),
377
409
  onFocus: () => activeIso.value = iso
378
410
  },
379
- formatCalendarDayNumber(date, localeCode.value)
411
+ [formatCalendarDayNumber(date, localeCode.value), customCell ?? defaultDots]
380
412
  );
381
413
  })
382
414
  )
@@ -0,0 +1,85 @@
1
+ import {
2
+ useDrag
3
+ } from "./chunk-DXL3YHRP.mjs";
4
+
5
+ // src/components/Drag.ts
6
+ import { computed, defineComponent, h } from "vue";
7
+ import {
8
+ classNames,
9
+ coerceClassValue,
10
+ reorderSequence
11
+ } from "@expcat/tigercat-core";
12
+ var Drag = defineComponent({
13
+ name: "TigerDrag",
14
+ inheritAttrs: false,
15
+ props: {
16
+ items: {
17
+ type: Array,
18
+ default: () => []
19
+ },
20
+ config: {
21
+ type: Object,
22
+ default: void 0
23
+ },
24
+ containerId: {
25
+ type: String,
26
+ default: void 0
27
+ },
28
+ className: {
29
+ type: String,
30
+ default: void 0
31
+ }
32
+ },
33
+ emits: ["update:items", "items-change", "drag-start", "drag-over", "drop", "drag-end"],
34
+ setup(props, { emit, slots, attrs }) {
35
+ const drag = useDrag(() => ({
36
+ config: props.config,
37
+ containerId: props.containerId,
38
+ onDragStart: (event) => emit("drag-start", event),
39
+ onDragOver: (event) => emit("drag-over", event),
40
+ onDragEnd: (event) => emit("drag-end", event),
41
+ onDrop: (event) => {
42
+ emit("drop", event);
43
+ if (event.fromIndex === event.toIndex) return;
44
+ const next = reorderSequence(props.items, event.fromIndex, event.toIndex).map(
45
+ (item, index) => ({ ...item, index })
46
+ );
47
+ emit("update:items", next);
48
+ emit("items-change", next);
49
+ }
50
+ }));
51
+ const rootClass = computed(
52
+ () => classNames(
53
+ "m-0 list-none p-0",
54
+ props.className,
55
+ coerceClassValue(attrs.class)
56
+ )
57
+ );
58
+ return () => {
59
+ const zone = drag.getDropZoneAttrs();
60
+ return h(
61
+ "ul",
62
+ {
63
+ ...attrs,
64
+ ...zone,
65
+ class: rootClass.value,
66
+ "data-tiger-drag": "",
67
+ role: "list"
68
+ },
69
+ props.items.map((item) => {
70
+ const itemAttrs = drag.getDragItemAttrs(item);
71
+ const isDragging = drag.draggedItem.value?.id === item.id;
72
+ const custom = slots.item?.({ item, attrs: itemAttrs, isDragging });
73
+ if (custom) return custom;
74
+ return h("li", { ...itemAttrs, key: item.id, role: "listitem" }, String(item.id));
75
+ })
76
+ );
77
+ };
78
+ }
79
+ });
80
+ var Drag_default = Drag;
81
+
82
+ export {
83
+ Drag,
84
+ Drag_default
85
+ };
@@ -31,6 +31,9 @@ import {
31
31
  getImageEditorLabels,
32
32
  getInitialCropRect,
33
33
  imageCropperContainerClasses,
34
+ imageCropperSizeHostClasses,
35
+ planCropperDisplaySize,
36
+ resolveCropperAvailableSize,
34
37
  imageCropperDragAreaClasses,
35
38
  imageCropperFrameClasses,
36
39
  imageCropperGuideClasses,
@@ -127,6 +130,8 @@ var ImageCropper = defineComponent({
127
130
  if (value !== void 0) internalCropRect.value = value;
128
131
  }
129
132
  );
133
+ const hostStyle = () => mergeStyleValues(attrs.style, props.style);
134
+ const availableSize = (el) => resolveCropperAvailableSize(el?.clientWidth ?? 0, el?.clientHeight ?? 0, hostStyle());
130
135
  const applyDisplaySize = (width, height, resetCrop) => {
131
136
  displayWidth.value = width;
132
137
  displayHeight.value = height;
@@ -141,13 +146,8 @@ var ImageCropper = defineComponent({
141
146
  imageRef.value = null;
142
147
  loader.load(props.src, {
143
148
  onLoad: (img, nw, nh) => {
144
- const container = containerRef.value;
145
- const size = getCropperDisplaySize(
146
- nw,
147
- nh,
148
- container?.clientWidth ?? 0,
149
- container?.clientHeight ?? 0
150
- );
149
+ const box = availableSize(containerRef.value);
150
+ const size = getCropperDisplaySize(nw, nh, box.width, box.height);
151
151
  if (!size) {
152
152
  status.value = "error";
153
153
  emit("error", new Error("Image not loaded"));
@@ -174,14 +174,16 @@ var ImageCropper = defineComponent({
174
174
  if (!container || typeof ResizeObserver === "undefined") return;
175
175
  resizeObserver = new ResizeObserver(() => {
176
176
  if (status.value !== "ready") return;
177
- const next = getCropperDisplaySize(
177
+ const box = availableSize(container);
178
+ const next = planCropperDisplaySize(
178
179
  naturalWidth,
179
180
  naturalHeight,
180
- container.clientWidth,
181
- container.clientHeight
181
+ box.width,
182
+ box.height,
183
+ displayWidth.value,
184
+ displayHeight.value
182
185
  );
183
186
  if (!next) return;
184
- if (next.width === displayWidth.value && next.height === displayHeight.value) return;
185
187
  const mapped = remapCropRect(
186
188
  currentCropRect(),
187
189
  displayWidth.value,
@@ -334,7 +336,7 @@ var ImageCropper = defineComponent({
334
336
  expose({ getCropResult });
335
337
  const containerClasses = computed(
336
338
  () => classNames(
337
- imageCropperContainerClasses,
339
+ imageCropperSizeHostClasses,
338
340
  props.className,
339
341
  coerceClassValue(attrs.class)
340
342
  )
@@ -397,7 +399,7 @@ var ImageCropper = defineComponent({
397
399
  {
398
400
  ...forwardedAttrs,
399
401
  ref: containerRef,
400
- class: classNames(containerClasses.value, "flex items-center justify-center"),
402
+ class: classNames(containerClasses.value, "items-center"),
401
403
  style: {
402
404
  ...mergedStyle,
403
405
  minHeight: mergedStyle.minHeight ?? "200px"
@@ -547,17 +549,23 @@ var ImageCropper = defineComponent({
547
549
  ...forwardedAttrs,
548
550
  ref: containerRef,
549
551
  class: containerClasses.value,
550
- style: {
551
- ...mergedStyle,
552
- width: mergedStyle.width ?? `${dw}px`,
553
- height: mergedStyle.height ?? `${dh}px`
554
- },
552
+ style: mergedStyle,
555
553
  "data-image-cropper": "",
556
- "data-image-cropper-status": "ready",
557
- role: "group",
558
- "aria-label": labels.value.cropperDialogAriaLabel
554
+ "data-image-cropper-status": "ready"
559
555
  },
560
- [frame, selection, dragArea, ...guideLines, ...handles]
556
+ [
557
+ h(
558
+ "div",
559
+ {
560
+ class: imageCropperContainerClasses,
561
+ style: { width: `${dw}px`, height: `${dh}px` },
562
+ "data-image-cropper-stage": "",
563
+ role: "group",
564
+ "aria-label": labels.value.cropperDialogAriaLabel
565
+ },
566
+ [frame, selection, dragArea, ...guideLines, ...handles]
567
+ )
568
+ ]
561
569
  );
562
570
  };
563
571
  }
@@ -4,13 +4,13 @@ import {
4
4
  } from "./chunk-B4RZHDOU.mjs";
5
5
  import {
6
6
  List
7
- } from "./chunk-MPYKNKZU.mjs";
7
+ } from "./chunk-66JX7T3H.mjs";
8
8
  import {
9
9
  Loading
10
- } from "./chunk-OO27UB75.mjs";
10
+ } from "./chunk-NWPALCKN.mjs";
11
11
  import {
12
12
  Text
13
- } from "./chunk-I77GUQV4.mjs";
13
+ } from "./chunk-OEHI4BZZ.mjs";
14
14
  import {
15
15
  Card
16
16
  } from "./chunk-W4A6L2TC.mjs";
@@ -8,7 +8,7 @@ import {
8
8
  renderVueOverlayTeleport,
9
9
  useVueAnchoredOverlay,
10
10
  useVueFocusTrap
11
- } from "./chunk-Y63TRXZO.mjs";
11
+ } from "./chunk-VFRB5L7W.mjs";
12
12
  import {
13
13
  useTigerConfig
14
14
  } from "./chunk-4GOTWNOO.mjs";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-7PLYHGMY.mjs";
7
7
  import {
8
8
  Text
9
- } from "./chunk-I77GUQV4.mjs";
9
+ } from "./chunk-OEHI4BZZ.mjs";
10
10
  import {
11
11
  Avatar
12
12
  } from "./chunk-OGXSLKXD.mjs";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-W2FOU4XH.mjs";
7
7
  import {
8
8
  ChartTooltip
9
- } from "./chunk-2XITUFL6.mjs";
9
+ } from "./chunk-JRDQVGMH.mjs";
10
10
  import {
11
11
  ChartCanvas
12
12
  } from "./chunk-6K5BLE4Q.mjs";
@@ -7,6 +7,7 @@ import { defineComponent, h, ref, computed, watch } from "vue";
7
7
  import {
8
8
  rateBaseClasses,
9
9
  getRateStarClasses,
10
+ rateCharacterGlyphClasses,
10
11
  rateHalfStarInnerClasses,
11
12
  rateActiveColor,
12
13
  rateInactiveColor,
@@ -113,7 +114,11 @@ var Rate = defineComponent({
113
114
  const attrsRecord = attrs;
114
115
  const slotChar = slots.character?.();
115
116
  const isChar = Boolean(slotChar || props.character);
116
- const glyph = (extraClass) => slotChar ? h("span", { class: extraClass }, slotChar) : isChar ? h("span", { class: extraClass }, props.character) : h(
117
+ const glyph = (extraClass) => slotChar ? h("span", { class: classNames(rateCharacterGlyphClasses, extraClass) }, slotChar) : isChar ? h(
118
+ "span",
119
+ { class: classNames(rateCharacterGlyphClasses, extraClass) },
120
+ props.character
121
+ ) : h(
117
122
  "svg",
118
123
  {
119
124
  viewBox: starViewBox,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-ZTALXP6T.mjs";
10
10
  import {
11
11
  ChartTooltip
12
- } from "./chunk-2XITUFL6.mjs";
12
+ } from "./chunk-JRDQVGMH.mjs";
13
13
  import {
14
14
  ChartAxis
15
15
  } from "./chunk-4KOKMAMY.mjs";
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  renderVueOverlayTeleport,
7
7
  useVueAnchoredOverlay
8
- } from "./chunk-Y63TRXZO.mjs";
8
+ } from "./chunk-VFRB5L7W.mjs";
9
9
 
10
10
  // src/components/ContextMenu.ts
11
11
  import {
@@ -323,7 +323,8 @@ var Slider = defineComponent({
323
323
  ref: rootElement,
324
324
  class: getSliderRootClasses(
325
325
  effectiveDisabled.value,
326
- classNames(props.className, coerceClassValue(attrs.class))
326
+ classNames(props.className, coerceClassValue(attrs.class)),
327
+ props.tooltip
327
328
  ),
328
329
  style: mergeStyleValues(attrs.style, props.style),
329
330
  "data-status": status.value === "default" ? void 0 : status.value
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  renderVueOverlayTeleport,
9
9
  useVueAnchoredOverlay
10
- } from "./chunk-Y63TRXZO.mjs";
10
+ } from "./chunk-VFRB5L7W.mjs";
11
11
  import {
12
12
  useTigerConfig
13
13
  } from "./chunk-4GOTWNOO.mjs";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-W2FOU4XH.mjs";
7
7
  import {
8
8
  ChartTooltip
9
- } from "./chunk-2XITUFL6.mjs";
9
+ } from "./chunk-JRDQVGMH.mjs";
10
10
  import {
11
11
  ChartCanvas
12
12
  } from "./chunk-6K5BLE4Q.mjs";
@@ -6,7 +6,7 @@ import {
6
6
  useVueBodyScrollLock,
7
7
  useVueEscapeKey,
8
8
  useVueFocusTrap
9
- } from "./chunk-Y63TRXZO.mjs";
9
+ } from "./chunk-VFRB5L7W.mjs";
10
10
  import {
11
11
  useTigerConfig
12
12
  } from "./chunk-4GOTWNOO.mjs";
@@ -15,6 +15,7 @@ import {
15
15
  getCodeLabels,
16
16
  mergeStyleValues,
17
17
  mergeTigerLocale,
18
+ renderCodeHighlightHtml,
18
19
  resolveLocaleText
19
20
  } from "@expcat/tigercat-core";
20
21
  var Code = defineComponent({
@@ -29,6 +30,14 @@ var Code = defineComponent({
29
30
  type: Boolean,
30
31
  default: true
31
32
  },
33
+ language: {
34
+ type: String,
35
+ default: void 0
36
+ },
37
+ highlighter: {
38
+ type: Object,
39
+ default: void 0
40
+ },
32
41
  copyLabel: {
33
42
  type: String,
34
43
  default: void 0
@@ -110,7 +119,19 @@ var Code = defineComponent({
110
119
  style: mergeStyleValues(attrs.style, props.style)
111
120
  },
112
121
  [
113
- h("pre", { class: codeBlockPreClasses }, [h("code", { class: "block" }, props.code)]),
122
+ h("pre", { class: codeBlockPreClasses }, [
123
+ (() => {
124
+ const highlighted = renderCodeHighlightHtml(
125
+ props.code,
126
+ props.language,
127
+ props.highlighter
128
+ );
129
+ return highlighted == null ? h("code", { class: "block" }, props.code) : h("code", {
130
+ class: "block",
131
+ innerHTML: highlighted
132
+ });
133
+ })()
134
+ ]),
114
135
  props.copyable ? h(
115
136
  "button",
116
137
  {
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  renderVueOverlayTeleport,
9
9
  useVueAnchoredOverlay
10
- } from "./chunk-Y63TRXZO.mjs";
10
+ } from "./chunk-VFRB5L7W.mjs";
11
11
  import {
12
12
  useTigerConfig
13
13
  } from "./chunk-4GOTWNOO.mjs";