v-calendar-3 1.0.1 → 1.1.1

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 (35) hide show
  1. package/README.md +22 -2
  2. package/dist/cjs/index.css +11 -5
  3. package/dist/cjs/index.js +80 -25
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/es/index.js +113 -55
  6. package/dist/es/index.js.map +1 -1
  7. package/dist/es/style.css +11 -5
  8. package/dist/iife/index.js +1 -1
  9. package/dist/iife/index.js.map +1 -1
  10. package/dist/mjs/index.mjs +113 -55
  11. package/dist/mjs/index.mjs.map +1 -1
  12. package/dist/mjs/style.css +11 -5
  13. package/dist/style.css +11 -5
  14. package/dist/types/components/Calendar/Calendar.vue.d.ts +9 -0
  15. package/dist/types/components/Calendar/CalendarHeader.vue.d.ts +1 -0
  16. package/dist/types/components/DatePicker/DatePicker.vue.d.ts +139 -3
  17. package/dist/types/components/DatePicker/TimePicker.vue.d.ts +32 -0
  18. package/dist/types/index.d.cts +313 -40
  19. package/dist/types/index.d.mts +313 -40
  20. package/dist/types/index.d.ts +313 -40
  21. package/dist/types/use/calendar.d.ts +51 -3
  22. package/dist/types/use/calendarGrid.d.ts +14 -0
  23. package/dist/types/use/datePicker.d.ts +109 -6
  24. package/dist/types/use/timePicker.d.ts +32 -0
  25. package/package.json +6 -3
  26. package/src/components/Calendar/Calendar.vue +2 -2
  27. package/src/components/Calendar/CalendarDay.vue +4 -5
  28. package/src/components/Calendar/CalendarHeader.vue +37 -8
  29. package/src/components/Calendar/CalendarPage.vue +7 -2
  30. package/src/components/DatePicker/DatePicker.vue +20 -4
  31. package/src/index.ts +11 -0
  32. package/src/styles/theme.css +1 -0
  33. package/src/use/calendar.ts +53 -12
  34. package/src/use/datePicker.ts +18 -5
  35. package/web-types.json +273 -0
package/README.md CHANGED
@@ -4,7 +4,7 @@ A maintained Vue 3 calendar and date picker with TypeScript declarations,
4
4
  timezone support, keyboard navigation, touch interaction, and responsive theme
5
5
  handling.
6
6
 
7
- Current version: `1.0.1`
7
+ Current version: `1.1.1`
8
8
 
9
9
  ## Features
10
10
 
@@ -17,6 +17,7 @@ Current version: `1.0.1`
17
17
  - Keyboard navigation, Escape handling, Pointer Events, and touch support
18
18
  - SSR-safe browser access and iframe-aware theme/popover handling
19
19
  - ESM, Node ESM, CommonJS, IIFE, CSS, and TypeScript declaration builds
20
+ - Vue component metadata for PhpStorm and other JetBrains IDEs
20
21
 
21
22
  ## Requirements
22
23
 
@@ -75,6 +76,10 @@ const selectedDate = ref<Date | null>(new Date());
75
76
  ```
76
77
 
77
78
  The component prefix defaults to `V` and can be changed during plugin setup.
79
+ The package publishes global component types for the default `VCalendar`,
80
+ `VDatePicker`, `VPopover`, and `VPopoverRow` names. Custom prefixes are runtime
81
+ configuration and must be declared in the consuming application's
82
+ `GlobalComponents` interface if template autocomplete is required.
78
83
 
79
84
  ```ts
80
85
  app.use(VCalendar, {
@@ -112,7 +117,7 @@ const attributes = [
112
117
  <template>
113
118
  <Calendar :attributes="attributes" />
114
119
  <DatePicker v-model="selectedDate" />
115
- <DatePicker v-model.range="range" />
120
+ <DatePicker v-model.range="range" :rows="2" />
116
121
  </template>
117
122
  ```
118
123
 
@@ -127,6 +132,13 @@ app.use(setupCalendar, {
127
132
  });
128
133
  ```
129
134
 
135
+ The package ships both Vue TypeScript declarations and JetBrains Web Types.
136
+ PhpStorm can therefore complete component props and navigate from imported
137
+ `Calendar` and `DatePicker` tags to their declarations without application-side
138
+ shims. After changing between local `file:` package versions, let the package
139
+ manager refresh the link and ask PhpStorm to reload the project indexes if it
140
+ still shows cached generic Vue metadata.
141
+
130
142
  ## Date picker modes
131
143
 
132
144
  The default model is a JavaScript `Date`. Use the `range` modifier for date
@@ -139,6 +151,13 @@ ranges and the `mode` prop when time selection is required.
139
151
  <DatePicker v-model="time" mode="time" is24hr />
140
152
  ```
141
153
 
154
+ `rows="2"` with the default `columns="1"` is the two-month period layout. It
155
+ renders both months horizontally with a complete navigation header and a
156
+ month/year picker on each pane. The displayed months remain consecutive, and
157
+ each pane includes muted leading and trailing dates from adjacent months so its
158
+ week rows are complete. With `trim-weeks`, both period panes are balanced to the
159
+ larger visible week count.
160
+
142
161
  The `string` and `number` model modifiers are also supported. Numeric values use
143
162
  JavaScript timestamp milliseconds.
144
163
 
@@ -234,6 +253,7 @@ styles to internal selectors.
234
253
  --vc-day-min-height: 1.75rem;
235
254
  --vc-day-content-width: 1.75rem;
236
255
  --vc-day-content-height: 1.75rem;
256
+ --vc-day-content-outside-month-opacity: 0.6;
237
257
  --vc-highlight-width: 1.75rem;
238
258
  --vc-highlight-height: 1.75rem;
239
259
  --vc-header-margin-top: 0;
@@ -163,6 +163,8 @@
163
163
 
164
164
  .vc-header {
165
165
  display: grid;
166
+ width: 100%;
167
+ min-width: 0;
166
168
  grid-gap: var(--vc-header-gap);
167
169
  align-items: center;
168
170
  height: var(--vc-header-height);
@@ -181,6 +183,8 @@
181
183
  .vc-header .vc-title-wrapper {
182
184
  grid-row: 1;
183
185
  grid-column: title;
186
+ min-width: 0;
187
+ justify-self: center;
184
188
  }
185
189
  .vc-header .vc-prev {
186
190
  grid-row: 1;
@@ -208,6 +212,9 @@
208
212
  font-weight: var(--vc-font-semibold);
209
213
  text-transform: var(--vc-header-title-text-transform);
210
214
  white-space: nowrap;
215
+ max-width: 100%;
216
+ overflow: hidden;
217
+ text-overflow: ellipsis;
211
218
  padding: var(--vc-header-title-padding);
212
219
  margin: 0;
213
220
  line-height: var(--vc-header-title-line-height);
@@ -303,15 +310,13 @@
303
310
  position: relative;
304
311
  min-height: var(--vc-day-min-height);
305
312
  z-index: 1;
306
- /* &.is-not-in-month * {
307
- opacity: 0;
308
- pointer-events: none;
309
- } */
310
313
  }
311
314
  .vc-monthly .is-not-in-month * {
312
- opacity: 0;
313
315
  pointer-events: none;
314
316
  }
317
+ .vc-monthly .is-not-in-month .vc-day-content {
318
+ opacity: var(--vc-day-content-outside-month-opacity);
319
+ }
315
320
  .vc-day-layer {
316
321
  position: absolute;
317
322
  left: 0;
@@ -855,6 +860,7 @@
855
860
  --vc-day-content-width: 28px;
856
861
  --vc-day-content-height: 28px;
857
862
  --vc-day-content-line-height: 28px;
863
+ --vc-day-content-outside-month-opacity: 0.6;
858
864
  --vc-highlight-width: var(--vc-day-content-width);
859
865
  --vc-highlight-height: var(--vc-day-content-height);
860
866
 
package/dist/cjs/index.js CHANGED
@@ -7929,8 +7929,7 @@ function useSlot(slotKey) {
7929
7929
  }
7930
7930
  //#endregion
7931
7931
  //#region src/use/calendar.ts
7932
- var propsDef$1 = {
7933
- ...propsDef$2,
7932
+ var calendarPropsDef = {
7934
7933
  view: {
7935
7934
  type: String,
7936
7935
  default: "monthly",
@@ -7976,6 +7975,10 @@ var propsDef$1 = {
7976
7975
  trimWeeks: Boolean,
7977
7976
  disablePageSwipe: Boolean
7978
7977
  };
7978
+ var propsDef$1 = {
7979
+ ...propsDef$2,
7980
+ ...calendarPropsDef
7981
+ };
7979
7982
  var emitsDef = [
7980
7983
  "dayclick",
7981
7984
  "daymouseenter",
@@ -8007,6 +8010,9 @@ function createCalendar(props, { slots, emit }) {
8007
8010
  provideSlots(slots);
8008
8011
  const { theme, color, displayMode, locale, masks, minDate, maxDate, normalizedMinDate, normalizedMaxDate, disabledAttribute, disabledDates } = useOrCreateBase(props);
8009
8012
  const count = (0, vue.computed)(() => props.rows * props.columns);
8013
+ const isPeriodLayout = (0, vue.computed)(() => props.rows === 2 && props.columns === 1);
8014
+ const layoutRows = (0, vue.computed)(() => isPeriodLayout.value ? 1 : props.rows);
8015
+ const layoutColumns = (0, vue.computed)(() => isPeriodLayout.value ? 2 : props.columns);
8010
8016
  const step = (0, vue.computed)(() => props.step || count.value);
8011
8017
  const firstPage = (0, vue.computed)(() => (0, import_head.default)(_pages.value) ?? null);
8012
8018
  const lastPage = (0, vue.computed)(() => (0, import_last.default)(_pages.value) ?? null);
@@ -8139,10 +8145,10 @@ function createCalendar(props, { slots, emit }) {
8139
8145
  for (let i = 0; i < count.value; i++) {
8140
8146
  const newPage = addPages$1(fromPage, i);
8141
8147
  const position = i + 1;
8142
- const row = Math.ceil(position / props.columns);
8143
- const rowFromEnd = props.rows - row + 1;
8144
- const column = position % props.columns || props.columns;
8145
- const columnFromEnd = props.columns - column + 1;
8148
+ const row = Math.ceil(position / layoutColumns.value);
8149
+ const rowFromEnd = layoutRows.value - row + 1;
8150
+ const column = position % layoutColumns.value || layoutColumns.value;
8151
+ const columnFromEnd = layoutColumns.value - column + 1;
8146
8152
  const weeknumberPosition = getWeeknumberPosition(column, columnFromEnd);
8147
8153
  pages.push(locale.value.getPage({
8148
8154
  ...newPage,
@@ -8159,6 +8165,12 @@ function createCalendar(props, { slots, emit }) {
8159
8165
  weeknumberPosition
8160
8166
  }));
8161
8167
  }
8168
+ if (isPeriodLayout.value && isMonthly.value) {
8169
+ const weekCount = Math.max(...pages.map((currentPage) => currentPage.viewWeeks.length));
8170
+ pages.forEach((currentPage) => {
8171
+ currentPage.viewWeeks = currentPage.weeks.slice(0, weekCount);
8172
+ });
8173
+ }
8162
8174
  transitionName.value = getPageTransition(_pages.value[0], pages[0], transition);
8163
8175
  _pages.value = pages;
8164
8176
  if (transitionName.value && transitionName.value !== "none") transitionPromise = {
@@ -8216,6 +8228,14 @@ function createCalendar(props, { slots, emit }) {
8216
8228
  const moveNext = () => {
8217
8229
  return moveBy(step.value);
8218
8230
  };
8231
+ const canMovePeriodPrev = (0, vue.computed)(() => canMoveBy(-1));
8232
+ const canMovePeriodNext = (0, vue.computed)(() => canMoveBy(1));
8233
+ const movePeriodPrev = () => {
8234
+ return moveBy(-1);
8235
+ };
8236
+ const movePeriodNext = () => {
8237
+ return moveBy(1);
8238
+ };
8219
8239
  const tryFocusDate = (date) => {
8220
8240
  const inMonth = isMonthly.value ? ".in-month" : "";
8221
8241
  const daySelector = `.id-${locale.value.getDayId(date)}${inMonth}`;
@@ -8317,7 +8337,11 @@ function createCalendar(props, { slots, emit }) {
8317
8337
  (0, vue.watch)(() => locale.value, () => {
8318
8338
  refreshPages();
8319
8339
  });
8320
- (0, vue.watch)(() => count.value, () => refreshPages());
8340
+ (0, vue.watch)([
8341
+ count,
8342
+ layoutRows,
8343
+ layoutColumns
8344
+ ], () => refreshPages());
8321
8345
  (0, vue.watch)(() => props.view, () => _view.value = props.view);
8322
8346
  (0, vue.watch)(() => _view.value, () => {
8323
8347
  handleWatcher("view", () => {
@@ -8358,6 +8382,9 @@ function createCalendar(props, { slots, emit }) {
8358
8382
  dayCells,
8359
8383
  count,
8360
8384
  step,
8385
+ isPeriodLayout,
8386
+ layoutRows,
8387
+ layoutColumns,
8361
8388
  firstPage,
8362
8389
  lastPage,
8363
8390
  canMovePrev,
@@ -8377,6 +8404,10 @@ function createCalendar(props, { slots, emit }) {
8377
8404
  moveBy,
8378
8405
  movePrev,
8379
8406
  moveNext,
8407
+ canMovePeriodPrev,
8408
+ canMovePeriodNext,
8409
+ movePeriodPrev,
8410
+ movePeriodNext,
8380
8411
  onTransitionBeforeEnter,
8381
8412
  onTransitionAfterEnter,
8382
8413
  tryFocusDate,
@@ -8940,11 +8971,16 @@ var CalendarHeader_default = /* @__PURE__ */ (0, vue.defineComponent)({
8940
8971
  isXl: { type: Boolean },
8941
8972
  is2xl: { type: Boolean },
8942
8973
  hideTitle: { type: Boolean },
8943
- hideArrows: { type: Boolean }
8974
+ hideArrows: { type: Boolean },
8975
+ periodNavigation: { type: Boolean }
8944
8976
  },
8945
8977
  setup(__props) {
8946
8978
  const props = __props;
8947
- const { navPopoverId, navVisibility, canMovePrev, movePrev, canMoveNext, moveNext } = useCalendar();
8979
+ const { navPopoverId, navVisibility, canMovePrev, movePrev, canMoveNext, moveNext, canMovePeriodPrev, canMovePeriodNext, movePeriodPrev, movePeriodNext } = useCalendar();
8980
+ const canMovePrev_ = (0, vue.computed)(() => props.periodNavigation ? canMovePeriodPrev.value : canMovePrev.value);
8981
+ const canMoveNext_ = (0, vue.computed)(() => props.periodNavigation ? canMovePeriodNext.value : canMoveNext.value);
8982
+ const movePrev_ = () => props.periodNavigation ? movePeriodPrev() : movePrev();
8983
+ const moveNext_ = () => props.periodNavigation ? movePeriodNext() : moveNext();
8948
8984
  const navPlacement = (0, vue.computed)(() => {
8949
8985
  switch (props.page.titlePosition) {
8950
8986
  case "left": return "bottom-start";
@@ -8982,6 +9018,7 @@ var CalendarHeader_default = /* @__PURE__ */ (0, vue.defineComponent)({
8982
9018
  };
8983
9019
  });
8984
9020
  const gridStyle = (0, vue.computed)(() => {
9021
+ if (props.periodNavigation && !props.layout) return { gridTemplateColumns: "[prev] auto [title] minmax(0, 1fr) [next] auto" };
8985
9022
  return { gridTemplateColumns: layout_.value.split("").map((l) => {
8986
9023
  switch (l) {
8987
9024
  case "p": return "[prev] auto";
@@ -9005,12 +9042,12 @@ var CalendarHeader_default = /* @__PURE__ */ (0, vue.defineComponent)({
9005
9042
  key: 0,
9006
9043
  type: "button",
9007
9044
  class: "vc-arrow vc-prev vc-focus",
9008
- disabled: !(0, vue.unref)(canMovePrev),
9009
- onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(movePrev) && (0, vue.unref)(movePrev)(...args)),
9010
- onKeydown: _cache[1] || (_cache[1] = (0, vue.withKeys)((...args) => (0, vue.unref)(movePrev) && (0, vue.unref)(movePrev)(...args), ["space", "enter"]))
9045
+ disabled: !canMovePrev_.value,
9046
+ onClick: movePrev_,
9047
+ onKeydown: (0, vue.withKeys)(movePrev_, ["space", "enter"])
9011
9048
  }, [(0, vue.createVNode)(CalendarSlot_default, {
9012
9049
  name: "header-prev-button",
9013
- disabled: !(0, vue.unref)(canMovePrev)
9050
+ disabled: !canMovePrev_.value
9014
9051
  }, {
9015
9052
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)(BaseIcon_default, {
9016
9053
  name: "ChevronLeft",
@@ -9032,12 +9069,12 @@ var CalendarHeader_default = /* @__PURE__ */ (0, vue.defineComponent)({
9032
9069
  key: 2,
9033
9070
  type: "button",
9034
9071
  class: "vc-arrow vc-next vc-focus",
9035
- disabled: !(0, vue.unref)(canMoveNext),
9036
- onClick: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(moveNext) && (0, vue.unref)(moveNext)(...args)),
9037
- onKeydown: _cache[3] || (_cache[3] = (0, vue.withKeys)((...args) => (0, vue.unref)(moveNext) && (0, vue.unref)(moveNext)(...args), ["space", "enter"]))
9072
+ disabled: !canMoveNext_.value,
9073
+ onClick: moveNext_,
9074
+ onKeydown: (0, vue.withKeys)(moveNext_, ["space", "enter"])
9038
9075
  }, [(0, vue.createVNode)(CalendarSlot_default, {
9039
9076
  name: "header-next-button",
9040
- disabled: !(0, vue.unref)(canMoveNext)
9077
+ disabled: !canMoveNext_.value
9041
9078
  }, {
9042
9079
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)(BaseIcon_default, {
9043
9080
  name: "ChevronRight",
@@ -9524,7 +9561,7 @@ var CalendarPage_default = /* @__PURE__ */ (0, vue.defineComponent)({
9524
9561
  __name: "CalendarPage",
9525
9562
  setup(__props) {
9526
9563
  const { page } = usePage();
9527
- const { onWeeknumberClick } = useCalendar();
9564
+ const { isPeriodLayout, onWeeknumberClick } = useCalendar();
9528
9565
  return (_ctx, _cache) => {
9529
9566
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
9530
9567
  class: (0, vue.normalizeClass)([
@@ -9538,8 +9575,13 @@ var CalendarPage_default = /* @__PURE__ */ (0, vue.defineComponent)({
9538
9575
  }, [(0, vue.createVNode)(CalendarHeader_default, {
9539
9576
  page: (0, vue.unref)(page),
9540
9577
  "is-lg": "",
9541
- "hide-arrows": ""
9542
- }, null, 8, ["page"]), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(["vc-weeks", { [`vc-show-weeknumbers-${(0, vue.unref)(page).weeknumberPosition}`]: (0, vue.unref)(page).weeknumberPosition }]) }, [(0, vue.createElementVNode)("div", _hoisted_1$3, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(page).weekdays, ({ weekday, label }, i) => {
9578
+ "hide-arrows": !(0, vue.unref)(isPeriodLayout),
9579
+ "period-navigation": (0, vue.unref)(isPeriodLayout)
9580
+ }, null, 8, [
9581
+ "page",
9582
+ "hide-arrows",
9583
+ "period-navigation"
9584
+ ]), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(["vc-weeks", { [`vc-show-weeknumbers-${(0, vue.unref)(page).weeknumberPosition}`]: (0, vue.unref)(page).weeknumberPosition }]) }, [(0, vue.createElementVNode)("div", _hoisted_1$3, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(page).weekdays, ({ weekday, label }, i) => {
9543
9585
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
9544
9586
  key: i,
9545
9587
  class: (0, vue.normalizeClass)(`vc-weekday vc-weekday-${weekday}`)
@@ -9586,7 +9628,10 @@ var Calendar_vue_vue_type_script_lang_default = (0, vue.defineComponent)({
9586
9628
  });
9587
9629
  //#endregion
9588
9630
  //#region src/components/Calendar/Calendar.vue
9589
- var _hoisted_1$2 = { class: "vc-pane-header-wrapper" };
9631
+ var _hoisted_1$2 = {
9632
+ key: 0,
9633
+ class: "vc-pane-header-wrapper"
9634
+ };
9590
9635
  function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
9591
9636
  const _component_CalendarHeader = (0, vue.resolveComponent)("CalendarHeader");
9592
9637
  const _component_CalendarPage = (0, vue.resolveComponent)("CalendarPage");
@@ -9610,12 +9655,12 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
9610
9655
  onMouseup: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["prevent"])),
9611
9656
  ref: "containerRef"
9612
9657
  }), [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(["vc-pane-container", { "in-transition": _ctx.inTransition }]) }, [
9613
- (0, vue.createElementVNode)("div", _hoisted_1$2, [_ctx.firstPage ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_CalendarHeader, {
9658
+ !_ctx.isPeriodLayout ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1$2, [_ctx.firstPage ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_CalendarHeader, {
9614
9659
  key: 0,
9615
9660
  page: _ctx.firstPage,
9616
9661
  "is-lg": "",
9617
9662
  "hide-title": ""
9618
- }, null, 8, ["page"])) : (0, vue.createCommentVNode)("", true)]),
9663
+ }, null, 8, ["page"])) : (0, vue.createCommentVNode)("", true)])) : (0, vue.createCommentVNode)("", true),
9619
9664
  (0, vue.createVNode)(vue.Transition, {
9620
9665
  name: `vc-${_ctx.transitionName}`,
9621
9666
  onBeforeEnter: _ctx.onTransitionBeforeEnter,
@@ -9624,7 +9669,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
9624
9669
  default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
9625
9670
  key: _ctx.pages[0].id,
9626
9671
  class: "vc-pane-layout",
9627
- style: (0, vue.normalizeStyle)({ gridTemplateColumns: `repeat(${_ctx.columns}, 1fr)` })
9672
+ style: (0, vue.normalizeStyle)({ gridTemplateColumns: `repeat(${_ctx.layoutColumns}, 1fr)` })
9628
9673
  }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.pages, (page) => {
9629
9674
  return (0, vue.openBlock)(), (0, vue.createBlock)(_component_CalendarPageProvider, {
9630
9675
  key: page.id,
@@ -9658,6 +9703,7 @@ var Calendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Calendar_
9658
9703
  var contextKey = Symbol("__vc_date_picker_context__");
9659
9704
  var propsDef = {
9660
9705
  ...propsDef$2,
9706
+ ...calendarPropsDef,
9661
9707
  mode: {
9662
9708
  type: String,
9663
9709
  default: "date"
@@ -10639,6 +10685,7 @@ var DatePickerPopover_default = /* @__PURE__ */ (0, vue.defineComponent)({
10639
10685
  });
10640
10686
  //#endregion
10641
10687
  //#region src/components/DatePicker/DatePicker.vue?vue&type=script&lang.ts
10688
+ var forwardedCalendarPropNames = Object.keys(calendarPropsDef).filter((name) => name !== "attributes");
10642
10689
  var DatePicker_vue_vue_type_script_lang_default = (0, vue.defineComponent)({
10643
10690
  inheritAttrs: false,
10644
10691
  emits,
@@ -10650,8 +10697,10 @@ var DatePicker_vue_vue_type_script_lang_default = (0, vue.defineComponent)({
10650
10697
  setup(props, ctx) {
10651
10698
  const datePicker = createDatePicker(props, ctx);
10652
10699
  const slotCtx = (0, vue.reactive)(omit(datePicker, "calendarRef", "popoverRef"));
10700
+ const forwardedCalendarProps = (0, vue.computed)(() => Object.fromEntries(forwardedCalendarPropNames.map((name) => [name, props[name]])));
10653
10701
  return {
10654
10702
  ...datePicker,
10703
+ forwardedCalendarProps,
10655
10704
  slotCtx
10656
10705
  };
10657
10706
  }
@@ -10661,7 +10710,13 @@ var DatePicker_vue_vue_type_script_lang_default = (0, vue.defineComponent)({
10661
10710
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
10662
10711
  const _component_DatePickerPopover = (0, vue.resolveComponent)("DatePickerPopover");
10663
10712
  const _component_DatePickerBase = (0, vue.resolveComponent)("DatePickerBase");
10664
- return _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.renderSlot)(_ctx.$slots, "default", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(_ctx.slotCtx))), (0, vue.createVNode)(_component_DatePickerPopover, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(_ctx.$attrs)), null, 16)], 64)) : ((0, vue.openBlock)(), (0, vue.createBlock)(_component_DatePickerBase, (0, vue.normalizeProps)((0, vue.mergeProps)({ key: 1 }, _ctx.$attrs)), null, 16));
10713
+ return _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.renderSlot)(_ctx.$slots, "default", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(_ctx.slotCtx))), (0, vue.createVNode)(_component_DatePickerPopover, (0, vue.normalizeProps)((0, vue.guardReactiveProps)({
10714
+ ..._ctx.forwardedCalendarProps,
10715
+ ..._ctx.$attrs
10716
+ })), null, 16)], 64)) : ((0, vue.openBlock)(), (0, vue.createBlock)(_component_DatePickerBase, (0, vue.normalizeProps)((0, vue.mergeProps)({ key: 1 }, {
10717
+ ..._ctx.forwardedCalendarProps,
10718
+ ..._ctx.$attrs
10719
+ })), null, 16));
10665
10720
  }
10666
10721
  var DatePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(DatePicker_vue_vue_type_script_lang_default, [["render", _sfc_render]]);
10667
10722
  //#endregion