@soybeanjs/headless 0.16.0 → 0.17.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 (213) hide show
  1. package/dist/components/_icon/types.d.ts +9 -0
  2. package/dist/components/accordion/types.d.ts +87 -0
  3. package/dist/components/affix/types.d.ts +39 -0
  4. package/dist/components/alert/types.d.ts +78 -0
  5. package/dist/components/anchor/anchor-compact.js +1 -1
  6. package/dist/components/anchor/{anchor-compact-item.js → anchor-item-compact.js} +1 -1
  7. package/dist/components/anchor/anchor-item-compact.vue.d.ts +8 -0
  8. package/dist/components/anchor/anchor-link.js +1 -1
  9. package/dist/components/anchor/anchor-root.vue.d.ts +1 -1
  10. package/dist/components/anchor/index.d.ts +5 -4
  11. package/dist/components/anchor/index.js +1 -1
  12. package/dist/components/anchor/types.d.ts +122 -10
  13. package/dist/components/arrow/types.d.ts +3 -0
  14. package/dist/components/aspect-ratio/types.d.ts +3 -0
  15. package/dist/components/autocomplete/autocomplete-compact.vue.d.ts +2 -2
  16. package/dist/components/autocomplete/autocomplete-root.vue.d.ts +3 -3
  17. package/dist/components/autocomplete/types.d.ts +141 -0
  18. package/dist/components/avatar/types.d.ts +18 -0
  19. package/dist/components/backtop/backtop.vue.d.ts +9 -3
  20. package/dist/components/backtop/index.d.ts +2 -2
  21. package/dist/components/backtop/types.d.ts +19 -12
  22. package/dist/components/badge/types.d.ts +21 -0
  23. package/dist/components/bottom-sheet/bottom-sheet-compact.js +1 -1
  24. package/dist/components/bottom-sheet/bottom-sheet-root-nested.js +1 -1
  25. package/dist/components/bottom-sheet/bottom-sheet-root-nested.vue.d.ts +2 -2
  26. package/dist/components/bottom-sheet/bottom-sheet-root.js +1 -1
  27. package/dist/components/bottom-sheet/types.d.ts +99 -0
  28. package/dist/components/breadcrumb/index.d.ts +2 -2
  29. package/dist/components/breadcrumb/types.d.ts +103 -1
  30. package/dist/components/button/types.d.ts +16 -1
  31. package/dist/components/calendar/calendar-root.js +1 -1
  32. package/dist/components/calendar/types.d.ts +363 -0
  33. package/dist/components/card/types.d.ts +90 -0
  34. package/dist/components/carousel/types.d.ts +42 -0
  35. package/dist/components/checkbox/types.d.ts +111 -0
  36. package/dist/components/clipboard/types.d.ts +42 -0
  37. package/dist/components/collapsible/types.d.ts +18 -0
  38. package/dist/components/color-area/color-area-root.vue.d.ts +1 -1
  39. package/dist/components/color-area/types.d.ts +60 -0
  40. package/dist/components/color-field/color-field-root.vue.d.ts +2 -2
  41. package/dist/components/color-field/types.d.ts +51 -0
  42. package/dist/components/color-picker/color-picker-root.vue.d.ts +1 -1
  43. package/dist/components/color-picker/types.d.ts +39 -0
  44. package/dist/components/color-slider/color-slider-root.vue.d.ts +1 -1
  45. package/dist/components/color-slider/types.d.ts +60 -0
  46. package/dist/components/color-swatch/types.d.ts +9 -0
  47. package/dist/components/color-swatch-picker/types.d.ts +27 -0
  48. package/dist/components/combobox/combobox-compact.vue.d.ts +2 -2
  49. package/dist/components/combobox/combobox-root.vue.d.ts +2 -2
  50. package/dist/components/combobox/types.d.ts +237 -0
  51. package/dist/components/command/types.d.ts +147 -0
  52. package/dist/components/config-provider/config-provider.vue.d.ts +1 -1
  53. package/dist/components/config-provider/types.d.ts +3 -0
  54. package/dist/components/context-menu/context-menu-checkbox-compact.js +1 -1
  55. package/dist/components/context-menu/context-menu-compact.js +1 -1
  56. package/dist/components/context-menu/context-menu-radio-compact.js +1 -1
  57. package/dist/components/context-menu/context-menu-root.js +1 -1
  58. package/dist/components/context-menu/context-menu-wrapper-compact.js +1 -1
  59. package/dist/components/context-menu/types.d.ts +78 -0
  60. package/dist/components/date-field/date-field-root.vue.d.ts +2 -2
  61. package/dist/components/date-field/types.d.ts +147 -0
  62. package/dist/components/date-picker/context.js +1 -1
  63. package/dist/components/date-picker/date-picker-compact.js +1 -0
  64. package/dist/components/date-picker/date-picker-compact.vue.d.ts +27 -0
  65. package/dist/components/date-picker/date-picker-content.js +1 -0
  66. package/dist/components/date-picker/date-picker-content.vue.d.ts +33 -0
  67. package/dist/components/date-picker/date-picker-root.js +1 -1
  68. package/dist/components/date-picker/date-picker-root.vue.d.ts +9 -14
  69. package/dist/components/date-picker/index.d.ts +8 -5
  70. package/dist/components/date-picker/index.js +1 -1
  71. package/dist/components/date-picker/types.d.ts +236 -10
  72. package/dist/components/date-range-field/date-range-field-root.vue.d.ts +2 -2
  73. package/dist/components/date-range-field/types.d.ts +192 -0
  74. package/dist/components/date-range-picker/date-range-picker-compact.vue.d.ts +2 -2
  75. package/dist/components/date-range-picker/date-range-picker-root.vue.d.ts +7 -7
  76. package/dist/components/date-range-picker/types.d.ts +189 -0
  77. package/dist/components/dialog/dialog-compact.js +1 -1
  78. package/dist/components/dialog/dialog-compact.vue.d.ts +5 -5
  79. package/dist/components/dialog/dialog-root.js +1 -1
  80. package/dist/components/dialog/types.d.ts +196 -2
  81. package/dist/components/dropdown-menu/dropdown-menu-checkbox-compact.js +1 -1
  82. package/dist/components/dropdown-menu/dropdown-menu-compact.js +1 -1
  83. package/dist/components/dropdown-menu/dropdown-menu-radio-compact.js +1 -1
  84. package/dist/components/dropdown-menu/dropdown-menu-root.js +1 -1
  85. package/dist/components/dropdown-menu/dropdown-menu-root.vue.d.ts +1 -1
  86. package/dist/components/dropdown-menu/dropdown-menu-wrapper-compact.js +1 -1
  87. package/dist/components/dropdown-menu/types.d.ts +84 -0
  88. package/dist/components/editable/types.d.ts +123 -0
  89. package/dist/components/empty/types.d.ts +24 -0
  90. package/dist/components/form/core/types.d.ts +396 -13
  91. package/dist/components/form/types.d.ts +27 -0
  92. package/dist/components/hover-card/hover-card-positioner-impl.js +1 -1
  93. package/dist/components/hover-card/types.d.ts +57 -0
  94. package/dist/components/input/types.d.ts +21 -0
  95. package/dist/components/input-number/types.d.ts +30 -0
  96. package/dist/components/input-otp/index.d.ts +1 -2
  97. package/dist/components/input-otp/index.js +1 -1
  98. package/dist/components/input-otp/input-otp-compact.vue.d.ts +4 -4
  99. package/dist/components/input-otp/input-otp-root.vue.d.ts +5 -5
  100. package/dist/components/input-otp/types.d.ts +186 -0
  101. package/dist/components/kbd/types.d.ts +6 -0
  102. package/dist/components/label/types.d.ts +3 -0
  103. package/dist/components/layout/layout-root.vue.d.ts +1 -1
  104. package/dist/components/layout/types.d.ts +124 -10
  105. package/dist/components/link/types.d.ts +12 -0
  106. package/dist/components/list/types.d.ts +21 -0
  107. package/dist/components/listbox/types.d.ts +66 -0
  108. package/dist/components/menu/menu-option-compact.js +1 -1
  109. package/dist/components/menu/menu-options-compact.js +1 -1
  110. package/dist/components/menu/menu-root.js +1 -1
  111. package/dist/components/menu/types.d.ts +266 -2
  112. package/dist/components/menubar/menubar-compact.js +1 -1
  113. package/dist/components/menubar/types.d.ts +72 -0
  114. package/dist/components/month-picker/month-picker-root.vue.d.ts +4 -4
  115. package/dist/components/month-picker/types.d.ts +141 -0
  116. package/dist/components/month-range-picker/month-range-picker-root.vue.d.ts +4 -4
  117. package/dist/components/month-range-picker/types.d.ts +165 -0
  118. package/dist/components/navigation-menu/types.d.ts +87 -0
  119. package/dist/components/page-tabs/types.d.ts +24 -0
  120. package/dist/components/pagination/types.d.ts +96 -0
  121. package/dist/components/popover/context.d.ts +9 -0
  122. package/dist/components/popover/context.js +1 -1
  123. package/dist/components/popover/index.d.ts +6 -6
  124. package/dist/components/popover/index.js +1 -1
  125. package/dist/components/popover/popover-compact.js +1 -1
  126. package/dist/components/popover/popover-root.js +1 -1
  127. package/dist/components/popover/popover-root.vue.d.ts +0 -2
  128. package/dist/components/popover/popover-trigger.js +1 -1
  129. package/dist/components/popover/types.d.ts +94 -6
  130. package/dist/components/popper/popper-positioner.vue.d.ts +2 -2
  131. package/dist/components/popper/types.d.ts +21 -0
  132. package/dist/components/portal/types.d.ts +3 -0
  133. package/dist/components/primitive/types.d.ts +6 -0
  134. package/dist/components/progress/types.d.ts +81 -0
  135. package/dist/components/radio-group/types.d.ts +66 -0
  136. package/dist/components/range-calendar/range-calendar-root.vue.d.ts +2 -2
  137. package/dist/components/range-calendar/types.d.ts +330 -0
  138. package/dist/components/roving-focus/roving-focus-group.vue.d.ts +1 -1
  139. package/dist/components/roving-focus/types.d.ts +18 -0
  140. package/dist/components/scroll-area/types.d.ts +33 -0
  141. package/dist/components/segment/types.d.ts +36 -0
  142. package/dist/components/select/select-content.vue.d.ts +1 -1
  143. package/dist/components/select/types.d.ts +240 -0
  144. package/dist/components/separator/types.d.ts +12 -0
  145. package/dist/components/skeleton/types.d.ts +3 -0
  146. package/dist/components/slider/slider-root.vue.d.ts +1 -1
  147. package/dist/components/slider/types.d.ts +90 -0
  148. package/dist/components/splitter/splitter-panel.vue.d.ts +2 -2
  149. package/dist/components/splitter/types.d.ts +114 -0
  150. package/dist/components/stepper/stepper-root.vue.d.ts +1 -1
  151. package/dist/components/stepper/types.d.ts +96 -0
  152. package/dist/components/switch/types.d.ts +21 -0
  153. package/dist/components/table/types.d.ts +819 -0
  154. package/dist/components/tabs/tabs-root.vue.d.ts +1 -1
  155. package/dist/components/tabs/types.d.ts +75 -0
  156. package/dist/components/tag/types.d.ts +12 -0
  157. package/dist/components/tags-input/tags-input-root.vue.d.ts +2 -2
  158. package/dist/components/tags-input/types.d.ts +63 -0
  159. package/dist/components/textarea/types.d.ts +27 -0
  160. package/dist/components/time-field/time-field-root.vue.d.ts +1 -1
  161. package/dist/components/time-field/types.d.ts +138 -0
  162. package/dist/components/time-picker/time-picker-root.vue.d.ts +6 -6
  163. package/dist/components/time-picker/types.d.ts +156 -0
  164. package/dist/components/time-range-field/time-range-field-root.vue.d.ts +2 -2
  165. package/dist/components/time-range-field/types.d.ts +192 -0
  166. package/dist/components/time-range-picker/time-range-picker-compact.vue.d.ts +2 -2
  167. package/dist/components/time-range-picker/time-range-picker-root.vue.d.ts +6 -6
  168. package/dist/components/time-range-picker/types.d.ts +201 -0
  169. package/dist/components/toast/toaster.vue.d.ts +2 -2
  170. package/dist/components/toast/types.d.ts +224 -4
  171. package/dist/components/toggle/toggle.vue.d.ts +1 -1
  172. package/dist/components/toggle/types.d.ts +9 -0
  173. package/dist/components/toggle-group/types.d.ts +15 -0
  174. package/dist/components/toolbar/types.d.ts +48 -0
  175. package/dist/components/tooltip/types.d.ts +27 -0
  176. package/dist/components/tree/types.d.ts +75 -0
  177. package/dist/components/tree-menu/tree-menu-root.vue.d.ts +1 -1
  178. package/dist/components/tree-menu/types.d.ts +60 -0
  179. package/dist/components/virtualizer/types.d.ts +33 -0
  180. package/dist/components/visually-hidden/types.d.ts +30 -0
  181. package/dist/components/year-picker/types.d.ts +144 -0
  182. package/dist/components/year-picker/year-picker-root.vue.d.ts +4 -4
  183. package/dist/components/year-range-picker/types.d.ts +168 -0
  184. package/dist/components/year-range-picker/year-range-picker-root.vue.d.ts +4 -4
  185. package/dist/composables/use-collection.js +1 -1
  186. package/dist/constants/components.d.ts +5 -5
  187. package/dist/constants/components.js +1 -1
  188. package/dist/constants/index.d.ts +2 -1
  189. package/dist/constants/index.js +1 -1
  190. package/dist/{components/input-otp → constants}/regexp.d.ts +1 -1
  191. package/dist/date/parts.d.ts +1 -1
  192. package/dist/index.d.ts +418 -417
  193. package/dist/index.js +1 -1
  194. package/dist/namespaced/index.d.ts +877 -872
  195. package/dist/namespaced/index.js +1 -1
  196. package/dist/node_modules/.pnpm/@soybeanjs_utils@0.1.1/node_modules/@soybeanjs/utils/dist/index.js +1 -1
  197. package/dist/resolver/index.js +1 -1
  198. package/dist/shared/index.d.ts +2 -2
  199. package/dist/shared/index.js +1 -1
  200. package/dist/shared/string.d.ts +1 -34
  201. package/dist/shared/string.js +1 -1
  202. package/dist/types/common.d.ts +9 -1
  203. package/dist/types/dom.d.ts +3 -1
  204. package/dist/types/event.d.ts +10 -1
  205. package/dist/types/index.d.ts +5 -4
  206. package/dist/types/index.js +0 -0
  207. package/dist/types/vue.d.ts +4 -1
  208. package/package.json +6 -1
  209. package/dist/components/date-picker/date-picker-popup.js +0 -1
  210. package/dist/components/date-picker/date-picker-popup.vue.d.ts +0 -21
  211. package/dist/components/date-picker/date-picker-trigger.js +0 -1
  212. package/dist/components/date-picker/date-picker-trigger.vue.d.ts +0 -21
  213. /package/dist/{components/input-otp → constants}/regexp.js +0 -0
@@ -4,13 +4,37 @@ import { LinkBaseProps, LinkProps } from "../link/types.js";
4
4
  import { HTMLAttributes } from "vue";
5
5
 
6
6
  //#region src/components/breadcrumb/types.d.ts
7
+ /**
8
+ * Props for the breadcrumb root component.
9
+ */
7
10
  interface BreadcrumbRootProps extends /** @vue-ignore */HTMLAttributes {}
11
+ /**
12
+ * Props for the breadcrumb list component.
13
+ */
8
14
  interface BreadcrumbListProps extends /** @vue-ignore */HTMLAttributes {}
15
+ /**
16
+ * Props for the breadcrumb item component.
17
+ */
9
18
  interface BreadcrumbItemProps extends /** @vue-ignore */HTMLAttributes {}
19
+ /**
20
+ * Props for the breadcrumb page component.
21
+ */
10
22
  interface BreadcrumbPageProps extends /** @vue-ignore */HTMLAttributes {}
23
+ /**
24
+ * Props for the breadcrumb separator component.
25
+ */
11
26
  interface BreadcrumbSeparatorProps extends /** @vue-ignore */HTMLAttributes {}
27
+ /**
28
+ * Props for the breadcrumb ellipsis component.
29
+ */
12
30
  interface BreadcrumbEllipsisProps extends /** @vue-ignore */HTMLAttributes {}
31
+ /**
32
+ * Props for the breadcrumb link component.
33
+ */
13
34
  interface BreadcrumbLinkProps extends LinkProps {}
35
+ /**
36
+ * Option data for the breadcrumb component.
37
+ */
14
38
  interface BreadcrumbOptionData extends LinkBaseProps {
15
39
  /** The value of the option. */
16
40
  value?: string;
@@ -21,7 +45,13 @@ interface BreadcrumbOptionData extends LinkBaseProps {
21
45
  /** Whether the option is disabled. */
22
46
  disabled?: boolean;
23
47
  }
48
+ /**
49
+ * Props for the breadcrumb compact component.
50
+ */
24
51
  interface BreadcrumbCompactProps<T extends BreadcrumbOptionData = BreadcrumbOptionData> extends Omit<BreadcrumbRootProps, 'onClick'> {
52
+ /**
53
+ * Items rendered by the component.
54
+ */
25
55
  items: T[];
26
56
  /**
27
57
  * The range of items to show ellipsis.
@@ -29,34 +59,106 @@ interface BreadcrumbCompactProps<T extends BreadcrumbOptionData = BreadcrumbOpti
29
59
  * When the item count is greater than 4, we will show ellipsis.
30
60
  */
31
61
  ellipsis?: true | [number, number] | null;
62
+ /**
63
+ * Props forwarded to the list element.
64
+ */
32
65
  listProps?: BreadcrumbListProps;
66
+ /**
67
+ * Props forwarded to the item element.
68
+ */
33
69
  itemProps?: BreadcrumbItemProps;
70
+ /**
71
+ * Props forwarded to the link element.
72
+ */
34
73
  linkProps?: BreadcrumbLinkProps;
74
+ /**
75
+ * Props forwarded to the page element.
76
+ */
35
77
  pageProps?: BreadcrumbPageProps;
78
+ /**
79
+ * Props forwarded to the separator element.
80
+ */
36
81
  separatorProps?: BreadcrumbSeparatorProps;
82
+ /**
83
+ * Props forwarded to the ellipsis element.
84
+ */
37
85
  ellipsisProps?: BreadcrumbEllipsisProps;
38
86
  }
87
+ /**
88
+ * Emits for the breadcrumb compact component.
89
+ */
39
90
  type BreadcrumbCompactEmits<T extends BreadcrumbOptionData = BreadcrumbOptionData> = {
91
+ /**
92
+ * Emitted when click occurs.
93
+ */
40
94
  click: [item: T];
41
95
  };
96
+ /**
97
+ * Slot props for the breadcrumb compact item component.
98
+ */
42
99
  interface BreadcrumbCompactItemSlotProps<T extends BreadcrumbOptionData = BreadcrumbOptionData> {
100
+ /**
101
+ * Current item data.
102
+ */
43
103
  item: T;
104
+ /**
105
+ * Index of the current item.
106
+ */
44
107
  index: number;
45
108
  }
109
+ /**
110
+ * Slot props for the breadcrumb compact ellipsis component.
111
+ */
46
112
  interface BreadcrumbCompactEllipsisSlotProps<T extends BreadcrumbOptionData = BreadcrumbOptionData> {
113
+ /**
114
+ * Ellipsis items exposed in the slot scope.
115
+ */
47
116
  ellipsisItems: T[];
48
117
  }
118
+ /**
119
+ * Slots for the breadcrumb compact component.
120
+ */
49
121
  type BreadcrumbCompactSlots<T extends BreadcrumbOptionData = BreadcrumbOptionData> = {
122
+ /**
123
+ * Custom content for the default slot.
124
+ */
50
125
  default?: (props: BreadcrumbCompactItemSlotProps<T>) => any;
126
+ /**
127
+ * Custom content for the ellipsis slot.
128
+ */
51
129
  ellipsis?: (props: BreadcrumbCompactEllipsisSlotProps<T>) => any;
130
+ /**
131
+ * Custom content for the ellipsis icon slot.
132
+ */
52
133
  'ellipsis-icon'?: () => any;
134
+ /**
135
+ * Custom content for the separator slot.
136
+ */
53
137
  separator?: () => any;
138
+ /**
139
+ * Custom content for the item leading slot.
140
+ */
54
141
  'item-leading'?: (props: BreadcrumbCompactItemSlotProps<T>) => any;
142
+ /**
143
+ * Custom content for the item link slot.
144
+ */
55
145
  'item-link'?: (props: BreadcrumbCompactItemSlotProps<T>) => any;
146
+ /**
147
+ * Custom content for the item label slot.
148
+ */
56
149
  'item-label'?: (props: BreadcrumbCompactItemSlotProps<T>) => any;
150
+ /**
151
+ * Custom content for the item trailing slot.
152
+ */
57
153
  'item-trailing'?: (props: BreadcrumbCompactItemSlotProps<T>) => any;
58
154
  };
155
+ /**
156
+ * Available UI slots for the breadcrumb component.
157
+ */
59
158
  type BreadcrumbUiSlot = 'root' | 'list' | 'item' | 'page' | 'separator' | 'ellipsis' | 'link';
159
+ /**
160
+ * UI class overrides for the breadcrumb component.
161
+ */
60
162
  type BreadcrumbUi = UiClass<BreadcrumbUiSlot>;
61
163
  //#endregion
62
- export { BreadcrumbCompactEmits, BreadcrumbCompactProps, BreadcrumbCompactSlots, BreadcrumbEllipsisProps, BreadcrumbItemProps, BreadcrumbLinkProps, BreadcrumbListProps, BreadcrumbOptionData, BreadcrumbPageProps, BreadcrumbRootProps, BreadcrumbSeparatorProps, BreadcrumbUi, BreadcrumbUiSlot };
164
+ export { BreadcrumbCompactEllipsisSlotProps, BreadcrumbCompactEmits, BreadcrumbCompactItemSlotProps, BreadcrumbCompactProps, BreadcrumbCompactSlots, BreadcrumbEllipsisProps, BreadcrumbItemProps, BreadcrumbLinkProps, BreadcrumbListProps, BreadcrumbOptionData, BreadcrumbPageProps, BreadcrumbRootProps, BreadcrumbSeparatorProps, BreadcrumbUi, BreadcrumbUiSlot };
@@ -2,16 +2,31 @@ import { PrimitiveProps } from "../primitive/types.js";
2
2
  import { ButtonHTMLAttributes } from "vue";
3
3
 
4
4
  //#region src/components/button/types.d.ts
5
+ /**
6
+ * Supported button values.
7
+ */
5
8
  type ButtonType = 'button' | 'submit' | 'reset';
9
+ /**
10
+ * Props for the button component.
11
+ */
6
12
  interface ButtonProps extends PrimitiveProps, /** @vue-ignore */Omit<ButtonHTMLAttributes, 'onClick'> {
7
13
  /**
8
- * The type of the button element. Can be one of 'button', 'submit', or 'reset'. [按钮元素的类型。可以是 'button'、'submit' 或 'reset' 之一。]
14
+ * The type of the button element. Can be one of 'button', 'submit', or 'reset'.
9
15
  * @default 'button'
10
16
  */
11
17
  type?: ButtonType;
18
+ /**
19
+ * Whether the component is disabled.
20
+ */
12
21
  disabled?: boolean;
13
22
  }
23
+ /**
24
+ * Emits for the button component.
25
+ */
14
26
  type ButtonEmits = {
27
+ /**
28
+ * Emitted when click occurs.
29
+ */
15
30
  click: [event: MouseEvent];
16
31
  };
17
32
  //#endregion
@@ -1 +1 @@
1
- import{getVueBooleanCasting as e,transformPropsToContext as t}from"../../shared/vue.js";import{getDefaultDate as n}from"../../date/comparators.js";import{handleCalendarInitialFocus as r}from"../../date/utils.js";import{getWeekStartsOn as ee}from"../../date/calendar.js";import"../../date/index.js";import"../../shared/index.js";import{useControllableState as i}from"../../composables/use-controllable-state.js";import{useForwardElement as a}from"../../composables/use-forward-element.js";import"../../composables/index.js";import{useDirection as o,useLocale as s}from"../config-provider/context.js";import{Primitive as c}from"../primitive/primitive.js";import"../primitive/index.js";import l from"../visually-hidden/visually-hidden.js";import"../visually-hidden/index.js";import{provideCalendarRootContext as u,useCalendarUi as te}from"./context.js";import{useCalendar as d,useCalendarState as ne}from"./use-calendar.js";import{computed as f,createBlock as p,createElementVNode as re,createVNode as ie,defineComponent as m,normalizeClass as h,onMounted as g,openBlock as _,renderSlot as v,toDisplayString as y,unref as b,watch as ae,withCtx as x}from"vue";import{isEqualDay as S,isSameDay as C}from"@internationalized/date";const w={"aria-level":`2`,role:`heading`},T=m({name:`CalendarRoot`,__name:`calendar-root`,props:{defaultValue:{default:void 0},defaultPlaceholder:{default:void 0},placeholder:{default:void 0},pagedNavigation:{type:Boolean,default:!1},preventDeselect:{type:Boolean,default:!1},weekStartsOn:{},weekdayFormat:{default:`narrow`},calendarLabel:{},fixedWeeks:{type:Boolean,default:!1},maxValue:{},minValue:{},locale:{},numberOfMonths:{default:1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},initialFocus:{type:Boolean,default:!1},isDateDisabled:{type:Function,default:void 0},isDateUnavailable:{type:Function,default:void 0},dir:{},nextPage:{},prevPage:{},modelValue:{},multiple:{},disableDaysOutsideCurrentView:{type:Boolean,default:!1},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:placeholder`],setup(m,{emit:T}){let E=m,D=T,O=te(`root`),[k,A]=a(),j=s(()=>E.locale),M=o(()=>E.dir),N=f(()=>E.weekStartsOn??ee(j.value)),P=f(()=>E.modelValue!==void 0),F=f(()=>e(E.multiple)),I=i(()=>E.modelValue,e=>{D(`update:modelValue`,e)},E.defaultValue),L=n({defaultPlaceholder:E.placeholder,defaultValue:I.value,locale:E.locale}),R=i(()=>E.placeholder,e=>{D(`update:placeholder`,e)},E.defaultPlaceholder??L.copy()),{fullCalendarLabel:z,headingValue:B,isDateDisabled:V,isDateUnavailable:H,isNextButtonDisabled:U,isPrevButtonDisabled:W,weekdays:G,isOutsideVisibleView:K,nextPage:q,prevPage:J,formatter:Y,grid:X,isPlaceholderFocusable:oe,firstFocusableDate:se}=d({locale:j,placeholder:R,weekStartsOn:N,fixedWeeks:f(()=>E.fixedWeeks),numberOfMonths:f(()=>E.numberOfMonths),minValue:f(()=>E.minValue),maxValue:f(()=>E.maxValue),disabled:f(()=>E.disabled),weekdayFormat:f(()=>E.weekdayFormat),pagedNavigation:f(()=>E.pagedNavigation),isDateDisabled:E.isDateDisabled,isDateUnavailable:E.isDateUnavailable,calendarLabel:f(()=>E.calendarLabel),nextPage:f(()=>E.nextPage),prevPage:f(()=>E.prevPage)}),{isInvalid:Z,isDateSelected:ce,hasSelectedDate:le,isSelectedDateDisabled:ue}=ne({date:I,isDateDisabled:V,isDateUnavailable:H});ae(I,e=>{if(Array.isArray(e)&&e.length){let t=e.at(-1);t&&!S(R.value,t)&&(R.value=t.copy());return}!Array.isArray(e)&&e&&!S(R.value,e)&&(R.value=e.copy())});function Q(e){R.value=e.copy()}function $(){P.value||D(`update:modelValue`,void 0)}function de(e){if(!E.readonly){if(!F.value){if(!I.value){I.value=e.copy();return}if(!E.preventDeselect&&C(I.value,e)){R.value=e.copy(),I.value=void 0,$();return}I.value=e.copy();return}if(!I.value){I.value=[e.copy()];return}if(Array.isArray(I.value)){if(I.value.findIndex(t=>C(t,e))===-1){I.value=[...I.value,e.copy()];return}if(!E.preventDeselect){let t=I.value.filter(t=>!C(t,e)).map(e=>e.copy());if(!t.length){R.value=e.copy(),I.value=void 0,$();return}I.value=t}}}}return u({locale:j,dir:M,weekStartsOn:N,weekdayFormat:f(()=>E.weekdayFormat),modelValue:I,multiple:F,placeholder:R,grid:X,parentElement:k,fullCalendarLabel:z,headingValue:B,isInvalid:Z,minValue:f(()=>E.minValue),maxValue:f(()=>E.maxValue),isPlaceholderFocusable:oe,firstFocusableDate:se,hasSelectedDate:le,isSelectedDateDisabled:ue,formatter:Y,onDateChange:de,onPlaceholderChange:Q,isDateDisabled:V,isDateSelected:ce,isDateUnavailable:H,isOutsideVisibleView:K,prevPage:J,nextPage:q,isPrevButtonDisabled:W,isNextButtonDisabled:U,...t(E,[`disableDaysOutsideCurrentView`,`disabled`,`fixedWeeks`,`initialFocus`,`numberOfMonths`,`pagedNavigation`,`preventDeselect`,`readonly`])}),g(()=>{E.initialFocus&&k.value&&r(k.value)}),(e,t)=>(_(),p(b(c),{ref:b(A),as:m.as,"as-child":m.asChild,"aria-label":b(z),class:h(b(O)),"data-disabled":m.disabled?``:void 0,"data-invalid":b(Z)?``:void 0,"data-readonly":m.readonly?``:void 0,dir:b(M),"data-slot":`root`},{default:x(()=>[v(e.$slots,`default`,{date:b(R),disabled:m.disabled,formatter:b(Y),fixedWeeks:m.fixedWeeks,grid:b(X),locale:b(j),maxValue:m.maxValue,minValue:m.minValue,modelValue:b(I),onPlaceholderChange:Q,placeholder:b(R),weekDays:b(G),weekStartsOn:N.value}),ie(b(l),{as:`span`,feature:`fully-hidden`},{default:x(()=>[re(`span`,w,y(b(z)),1)]),_:1})]),_:3},8,[`as`,`as-child`,`aria-label`,`class`,`data-disabled`,`data-invalid`,`data-readonly`,`dir`]))}});export{T as default};
1
+ import{getVueBooleanCasting as e,transformPropsToContext as t}from"../../shared/vue.js";import{getDefaultDate as n}from"../../date/comparators.js";import{handleCalendarInitialFocus as r}from"../../date/utils.js";import{getWeekStartsOn as ee}from"../../date/calendar.js";import"../../date/index.js";import"../../shared/index.js";import{useControllableState as i}from"../../composables/use-controllable-state.js";import{useForwardElement as a}from"../../composables/use-forward-element.js";import"../../composables/index.js";import{useDirection as o,useLocale as s}from"../config-provider/context.js";import{Primitive as c}from"../primitive/primitive.js";import"../primitive/index.js";import l from"../visually-hidden/visually-hidden.js";import"../visually-hidden/index.js";import{provideCalendarRootContext as u,useCalendarUi as te}from"./context.js";import{useCalendar as d,useCalendarState as ne}from"./use-calendar.js";import{computed as f,createBlock as p,createElementVNode as re,createVNode as ie,defineComponent as m,normalizeClass as h,onMounted as g,openBlock as _,renderSlot as v,toDisplayString as y,unref as b,watch as ae,withCtx as x}from"vue";import{isEqualDay as S,isSameDay as C}from"@internationalized/date";const w={"aria-level":`2`,role:`heading`},T=m({name:`CalendarRoot`,__name:`calendar-root`,props:{defaultValue:{default:void 0},defaultPlaceholder:{default:void 0},placeholder:{default:void 0},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},weekStartsOn:{},weekdayFormat:{default:`narrow`},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},locale:{},numberOfMonths:{default:1},disabled:{type:Boolean},readonly:{type:Boolean},initialFocus:{type:Boolean},isDateDisabled:{type:Function,default:void 0},isDateUnavailable:{type:Function,default:void 0},dir:{},nextPage:{},prevPage:{},modelValue:{},multiple:{},disableDaysOutsideCurrentView:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:placeholder`],setup(m,{emit:T}){let E=m,D=T,O=te(`root`),[k,A]=a(),j=s(()=>E.locale),M=o(()=>E.dir),N=f(()=>E.weekStartsOn??ee(j.value)),P=f(()=>E.modelValue!==void 0),F=f(()=>e(E.multiple)),I=i(()=>E.modelValue,e=>{D(`update:modelValue`,e)},E.defaultValue),L=n({defaultPlaceholder:E.placeholder,defaultValue:I.value,locale:E.locale}),R=i(()=>E.placeholder,e=>{D(`update:placeholder`,e)},E.defaultPlaceholder??L.copy()),{fullCalendarLabel:z,headingValue:B,isDateDisabled:V,isDateUnavailable:H,isNextButtonDisabled:U,isPrevButtonDisabled:W,weekdays:G,isOutsideVisibleView:K,nextPage:q,prevPage:J,formatter:Y,grid:X,isPlaceholderFocusable:oe,firstFocusableDate:se}=d({locale:j,placeholder:R,weekStartsOn:N,fixedWeeks:f(()=>E.fixedWeeks),numberOfMonths:f(()=>E.numberOfMonths),minValue:f(()=>E.minValue),maxValue:f(()=>E.maxValue),disabled:f(()=>E.disabled),weekdayFormat:f(()=>E.weekdayFormat),pagedNavigation:f(()=>E.pagedNavigation),isDateDisabled:E.isDateDisabled,isDateUnavailable:E.isDateUnavailable,calendarLabel:f(()=>E.calendarLabel),nextPage:f(()=>E.nextPage),prevPage:f(()=>E.prevPage)}),{isInvalid:Z,isDateSelected:ce,hasSelectedDate:le,isSelectedDateDisabled:ue}=ne({date:I,isDateDisabled:V,isDateUnavailable:H});ae(I,e=>{if(Array.isArray(e)&&e.length){let t=e.at(-1);t&&!S(R.value,t)&&(R.value=t.copy());return}!Array.isArray(e)&&e&&!S(R.value,e)&&(R.value=e.copy())});function Q(e){R.value=e.copy()}function $(){P.value||D(`update:modelValue`,void 0)}function de(e){if(!E.readonly){if(!F.value){if(!I.value){I.value=e.copy();return}if(!E.preventDeselect&&C(I.value,e)){R.value=e.copy(),I.value=void 0,$();return}I.value=e.copy();return}if(!I.value){I.value=[e.copy()];return}if(Array.isArray(I.value)){if(I.value.findIndex(t=>C(t,e))===-1){I.value=[...I.value,e.copy()];return}if(!E.preventDeselect){let t=I.value.filter(t=>!C(t,e)).map(e=>e.copy());if(!t.length){R.value=e.copy(),I.value=void 0,$();return}I.value=t}}}}return u({locale:j,dir:M,weekStartsOn:N,weekdayFormat:f(()=>E.weekdayFormat),modelValue:I,multiple:F,placeholder:R,grid:X,parentElement:k,fullCalendarLabel:z,headingValue:B,isInvalid:Z,minValue:f(()=>E.minValue),maxValue:f(()=>E.maxValue),isPlaceholderFocusable:oe,firstFocusableDate:se,hasSelectedDate:le,isSelectedDateDisabled:ue,formatter:Y,onDateChange:de,onPlaceholderChange:Q,isDateDisabled:V,isDateSelected:ce,isDateUnavailable:H,isOutsideVisibleView:K,prevPage:J,nextPage:q,isPrevButtonDisabled:W,isNextButtonDisabled:U,...t(E,[`disableDaysOutsideCurrentView`,`disabled`,`fixedWeeks`,`initialFocus`,`numberOfMonths`,`pagedNavigation`,`preventDeselect`,`readonly`])}),g(()=>{E.initialFocus&&k.value&&r(k.value)}),(e,t)=>(_(),p(b(c),{ref:b(A),as:m.as,"as-child":m.asChild,"aria-label":b(z),class:h(b(O)),"data-disabled":m.disabled?``:void 0,"data-invalid":b(Z)?``:void 0,"data-readonly":E.readonly?``:void 0,dir:b(M),"data-slot":`root`},{default:x(()=>[v(e.$slots,`default`,{date:b(R),disabled:m.disabled,formatter:b(Y),fixedWeeks:m.fixedWeeks,grid:b(X),locale:b(j),maxValue:m.maxValue,minValue:m.minValue,modelValue:b(I),onPlaceholderChange:Q,placeholder:b(R),weekDays:b(G),weekStartsOn:N.value}),ie(b(l),{as:`span`,feature:`fully-hidden`},{default:x(()=>[re(`span`,w,y(b(z)),1)]),_:1})]),_:3},8,[`as`,`as-child`,`aria-label`,`class`,`data-disabled`,`data-invalid`,`data-readonly`,`dir`]))}});export{T as default};