@coreui/vue-pro 5.14.0 → 5.16.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 (127) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/calendar/CCalendar.js +67 -65
  3. package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
  4. package/dist/cjs/components/calendar/utils.d.ts +53 -2
  5. package/dist/cjs/components/calendar/utils.js +466 -43
  6. package/dist/cjs/components/calendar/utils.js.map +1 -1
  7. package/dist/cjs/components/date-range-picker/CDateRangePicker.js +86 -57
  8. package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
  9. package/dist/cjs/components/date-range-picker/utils.d.ts +0 -9
  10. package/dist/cjs/components/date-range-picker/utils.js +0 -38
  11. package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
  12. package/dist/cjs/components/dropdown/CDropdown.d.ts +32 -7
  13. package/dist/cjs/components/dropdown/CDropdown.js +67 -29
  14. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  15. package/dist/cjs/components/dropdown/CDropdownToggle.d.ts +19 -0
  16. package/dist/cjs/components/dropdown/CDropdownToggle.js +17 -2
  17. package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
  18. package/dist/cjs/components/dropdown/utils.d.ts +2 -0
  19. package/dist/cjs/components/dropdown/utils.js +13 -0
  20. package/dist/cjs/components/dropdown/utils.js.map +1 -1
  21. package/dist/cjs/components/focus-trap/CFocusTrap.d.ts +108 -0
  22. package/dist/cjs/components/focus-trap/CFocusTrap.js +254 -0
  23. package/dist/cjs/components/focus-trap/CFocusTrap.js.map +1 -0
  24. package/dist/cjs/components/focus-trap/index.d.ts +6 -0
  25. package/dist/cjs/components/focus-trap/index.js +13 -0
  26. package/dist/cjs/components/focus-trap/index.js.map +1 -0
  27. package/dist/cjs/components/focus-trap/utils.d.ts +28 -0
  28. package/dist/cjs/components/focus-trap/utils.js +83 -0
  29. package/dist/cjs/components/focus-trap/utils.js.map +1 -0
  30. package/dist/cjs/components/index.d.ts +1 -0
  31. package/dist/cjs/components/index.js +70 -66
  32. package/dist/cjs/components/index.js.map +1 -1
  33. package/dist/cjs/components/modal/CModal.d.ts +2 -2
  34. package/dist/cjs/components/modal/CModal.js +19 -27
  35. package/dist/cjs/components/modal/CModal.js.map +1 -1
  36. package/dist/cjs/components/modal/CModalHeader.js +4 -2
  37. package/dist/cjs/components/modal/CModalHeader.js.map +1 -1
  38. package/dist/cjs/components/nav/CNavItem.d.ts +2 -2
  39. package/dist/cjs/components/offcanvas/COffcanvas.js +3 -2
  40. package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
  41. package/dist/cjs/components/picker/CPicker.js +3 -2
  42. package/dist/cjs/components/picker/CPicker.js.map +1 -1
  43. package/dist/cjs/components/time-picker/CTimePicker.d.ts +45 -1
  44. package/dist/cjs/components/time-picker/CTimePicker.js +64 -8
  45. package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
  46. package/dist/cjs/components/time-picker/CTimePickerRollCol.d.ts +19 -7
  47. package/dist/cjs/components/time-picker/CTimePickerRollCol.js +80 -8
  48. package/dist/cjs/components/time-picker/CTimePickerRollCol.js.map +1 -1
  49. package/dist/cjs/components/time-picker/utils.d.ts +1 -1
  50. package/dist/cjs/composables/useDebouncedCallback.d.ts +1 -1
  51. package/dist/cjs/composables/useDebouncedCallback.js +1 -1
  52. package/dist/cjs/composables/useDebouncedCallback.js.map +1 -1
  53. package/dist/cjs/index.js +76 -72
  54. package/dist/cjs/index.js.map +1 -1
  55. package/dist/esm/components/calendar/CCalendar.js +67 -65
  56. package/dist/esm/components/calendar/CCalendar.js.map +1 -1
  57. package/dist/esm/components/calendar/utils.d.ts +53 -2
  58. package/dist/esm/components/calendar/utils.js +464 -44
  59. package/dist/esm/components/calendar/utils.js.map +1 -1
  60. package/dist/esm/components/date-range-picker/CDateRangePicker.js +86 -57
  61. package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
  62. package/dist/esm/components/date-range-picker/utils.d.ts +0 -9
  63. package/dist/esm/components/date-range-picker/utils.js +1 -38
  64. package/dist/esm/components/date-range-picker/utils.js.map +1 -1
  65. package/dist/esm/components/dropdown/CDropdown.d.ts +32 -7
  66. package/dist/esm/components/dropdown/CDropdown.js +69 -31
  67. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  68. package/dist/esm/components/dropdown/CDropdownToggle.d.ts +19 -0
  69. package/dist/esm/components/dropdown/CDropdownToggle.js +17 -2
  70. package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
  71. package/dist/esm/components/dropdown/utils.d.ts +2 -0
  72. package/dist/esm/components/dropdown/utils.js +13 -1
  73. package/dist/esm/components/dropdown/utils.js.map +1 -1
  74. package/dist/esm/components/focus-trap/CFocusTrap.d.ts +108 -0
  75. package/dist/esm/components/focus-trap/CFocusTrap.js +252 -0
  76. package/dist/esm/components/focus-trap/CFocusTrap.js.map +1 -0
  77. package/dist/esm/components/focus-trap/index.d.ts +6 -0
  78. package/dist/esm/components/focus-trap/index.js +10 -0
  79. package/dist/esm/components/focus-trap/index.js.map +1 -0
  80. package/dist/esm/components/focus-trap/utils.d.ts +28 -0
  81. package/dist/esm/components/focus-trap/utils.js +78 -0
  82. package/dist/esm/components/focus-trap/utils.js.map +1 -0
  83. package/dist/esm/components/index.d.ts +1 -0
  84. package/dist/esm/components/index.js +2 -0
  85. package/dist/esm/components/index.js.map +1 -1
  86. package/dist/esm/components/modal/CModal.d.ts +2 -2
  87. package/dist/esm/components/modal/CModal.js +19 -27
  88. package/dist/esm/components/modal/CModal.js.map +1 -1
  89. package/dist/esm/components/modal/CModalHeader.js +4 -2
  90. package/dist/esm/components/modal/CModalHeader.js.map +1 -1
  91. package/dist/esm/components/nav/CNavItem.d.ts +2 -2
  92. package/dist/esm/components/offcanvas/COffcanvas.js +3 -2
  93. package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
  94. package/dist/esm/components/picker/CPicker.js +3 -2
  95. package/dist/esm/components/picker/CPicker.js.map +1 -1
  96. package/dist/esm/components/time-picker/CTimePicker.d.ts +45 -1
  97. package/dist/esm/components/time-picker/CTimePicker.js +64 -8
  98. package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
  99. package/dist/esm/components/time-picker/CTimePickerRollCol.d.ts +19 -7
  100. package/dist/esm/components/time-picker/CTimePickerRollCol.js +80 -8
  101. package/dist/esm/components/time-picker/CTimePickerRollCol.js.map +1 -1
  102. package/dist/esm/components/time-picker/utils.d.ts +1 -1
  103. package/dist/esm/composables/useDebouncedCallback.d.ts +1 -1
  104. package/dist/esm/composables/useDebouncedCallback.js +1 -1
  105. package/dist/esm/composables/useDebouncedCallback.js.map +1 -1
  106. package/dist/esm/index.js +2 -0
  107. package/dist/esm/index.js.map +1 -1
  108. package/package.json +5 -5
  109. package/src/components/calendar/CCalendar.ts +61 -70
  110. package/src/components/calendar/utils.ts +595 -47
  111. package/src/components/date-range-picker/CDateRangePicker.ts +131 -82
  112. package/src/components/date-range-picker/utils.ts +0 -58
  113. package/src/components/dropdown/CDropdown.ts +119 -52
  114. package/src/components/dropdown/CDropdownToggle.ts +18 -3
  115. package/src/components/dropdown/utils.ts +21 -0
  116. package/src/components/focus-trap/CFocusTrap.ts +303 -0
  117. package/src/components/focus-trap/index.ts +10 -0
  118. package/src/components/focus-trap/utils.ts +90 -0
  119. package/src/components/index.ts +1 -0
  120. package/src/components/modal/CModal.ts +32 -37
  121. package/src/components/modal/CModalHeader.ts +5 -3
  122. package/src/components/nav/CNavItem.ts +1 -1
  123. package/src/components/offcanvas/COffcanvas.ts +40 -36
  124. package/src/components/picker/CPicker.ts +58 -52
  125. package/src/components/time-picker/CTimePicker.ts +80 -22
  126. package/src/components/time-picker/CTimePickerRollCol.ts +87 -9
  127. package/src/composables/useDebouncedCallback.ts +1 -1
@@ -5,6 +5,7 @@ var usePopper = require('../../composables/usePopper.js');
5
5
  var getNextActiveElement = require('../../utils/getNextActiveElement.js');
6
6
  var isRTL = require('../../utils/isRTL.js');
7
7
  var utils = require('./utils.js');
8
+ var CFocusTrap = require('../focus-trap/CFocusTrap.js');
8
9
 
9
10
  const CDropdown = vue.defineComponent({
10
11
  name: 'CDropdown',
@@ -111,6 +112,19 @@ const CDropdown = vue.defineComponent({
111
112
  type: Boolean,
112
113
  default: true,
113
114
  },
115
+ /**
116
+ * Sets the reference element for positioning the Vue Dropdown Menu.
117
+ * - `toggle` - The Vue Dropdown Toggle button (default).
118
+ * - `parent` - The Vue Dropdown wrapper element.
119
+ * - `HTMLElement` - A custom HTML element.
120
+ * - `Ref` - A custom reference element.
121
+ *
122
+ * @since 5.7.0
123
+ */
124
+ reference: {
125
+ type: [String, Object],
126
+ default: 'toggle',
127
+ },
114
128
  /**
115
129
  * Generates dropdown menu using Teleport.
116
130
  *
@@ -155,12 +169,14 @@ const CDropdown = vue.defineComponent({
155
169
  'show',
156
170
  ],
157
171
  setup(props, { slots, emit }) {
158
- const dropdownToggleRef = vue.ref();
159
- const dropdownMenuRef = vue.ref();
172
+ const dropdownRef = vue.ref(null);
173
+ const dropdownMenuRef = vue.ref(null);
174
+ const dropdownToggleRef = vue.ref(null);
175
+ const pendingKeyDownEventRef = vue.ref(null);
160
176
  const popper = vue.ref(typeof props.alignment === 'object' ? false : props.popper);
161
177
  const visible = vue.ref(props.visible);
162
178
  const { initPopper, destroyPopper } = usePopper.usePopper();
163
- const popperConfig = {
179
+ const popperConfig = vue.computed(() => ({
164
180
  modifiers: [
165
181
  {
166
182
  name: 'offset',
@@ -170,28 +186,44 @@ const CDropdown = vue.defineComponent({
170
186
  },
171
187
  ],
172
188
  placement: utils.getPlacement(props.placement, props.direction, props.alignment, isRTL.default(dropdownMenuRef.value)),
173
- };
189
+ }));
174
190
  vue.watch(() => props.visible, () => {
175
191
  visible.value = props.visible;
176
192
  });
177
193
  vue.watch(visible, () => {
178
194
  if (visible.value && dropdownToggleRef.value && dropdownMenuRef.value) {
179
- popper.value && initPopper(dropdownToggleRef.value, dropdownMenuRef.value, popperConfig);
180
- window.addEventListener('mouseup', handleMouseUp);
195
+ const referenceElement = utils.getReferenceElement(props.reference, dropdownToggleRef, dropdownRef);
196
+ if (referenceElement && popper.value) {
197
+ initPopper(referenceElement, dropdownMenuRef.value, popperConfig.value);
198
+ }
199
+ window.addEventListener('click', handleClick);
181
200
  window.addEventListener('keyup', handleKeyup);
182
201
  dropdownToggleRef.value.addEventListener('keydown', handleKeydown);
183
202
  dropdownMenuRef.value.addEventListener('keydown', handleKeydown);
203
+ if (pendingKeyDownEventRef.value) {
204
+ vue.nextTick(() => {
205
+ handleKeydown(pendingKeyDownEventRef.value);
206
+ pendingKeyDownEventRef.value = null;
207
+ });
208
+ }
184
209
  emit('show');
185
210
  return;
186
211
  }
187
- popper.value && destroyPopper();
188
- window.removeEventListener('mouseup', handleMouseUp);
212
+ if (popper.value) {
213
+ destroyPopper();
214
+ }
215
+ window.removeEventListener('click', handleClick);
189
216
  window.removeEventListener('keyup', handleKeyup);
217
+ dropdownMenuRef.value && dropdownMenuRef.value.removeEventListener('keydown', handleKeydown);
190
218
  dropdownToggleRef.value &&
191
219
  dropdownToggleRef.value.removeEventListener('keydown', handleKeydown);
192
- dropdownMenuRef.value && dropdownMenuRef.value.removeEventListener('keydown', handleKeydown);
193
220
  emit('hide');
194
221
  });
222
+ vue.onUnmounted(() => {
223
+ dropdownToggleRef.value &&
224
+ dropdownToggleRef.value.removeEventListener('keydown', handleKeydown);
225
+ dropdownMenuRef.value && dropdownMenuRef.value.removeEventListener('keydown', handleKeydown);
226
+ });
195
227
  vue.provide('config', {
196
228
  alignment: props.alignment,
197
229
  container: props.container,
@@ -203,13 +235,11 @@ const CDropdown = vue.defineComponent({
203
235
  vue.provide('visible', visible);
204
236
  vue.provide('dropdownToggleRef', dropdownToggleRef);
205
237
  vue.provide('dropdownMenuRef', dropdownMenuRef);
238
+ vue.provide('pendingKeyDownEventRef', pendingKeyDownEventRef);
206
239
  const handleKeydown = (event) => {
207
- if (visible.value &&
208
- dropdownMenuRef.value &&
209
- (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {
240
+ if (dropdownMenuRef.value && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {
210
241
  event.preventDefault();
211
242
  const target = event.target;
212
- // eslint-disable-next-line unicorn/prefer-spread
213
243
  const items = Array.from(dropdownMenuRef.value.querySelectorAll('.dropdown-item:not(.disabled):not(:disabled)'));
214
244
  getNextActiveElement.default(items, target, event.key === 'ArrowDown', true).focus();
215
245
  }
@@ -220,40 +250,47 @@ const CDropdown = vue.defineComponent({
220
250
  }
221
251
  if (event.key === 'Escape') {
222
252
  setVisible(false);
253
+ dropdownToggleRef.value?.focus();
223
254
  }
224
255
  };
225
- const handleMouseUp = (event) => {
256
+ const handleClick = (event) => {
226
257
  if (!dropdownToggleRef.value || !dropdownMenuRef.value) {
227
258
  return;
228
259
  }
229
- if (dropdownToggleRef.value.contains(event.target)) {
260
+ if (event.button === 2) {
261
+ return;
262
+ }
263
+ const composedPath = event.composedPath();
264
+ const isOnToggle = composedPath.includes(dropdownToggleRef.value);
265
+ const isOnMenu = composedPath.includes(dropdownMenuRef.value);
266
+ if (isOnToggle) {
267
+ return;
268
+ }
269
+ const target = event.target;
270
+ const FORM_TAG_RE = /^(input|select|option|textarea|form|button|label)$/i;
271
+ if (isOnMenu && target && FORM_TAG_RE.test(target.tagName)) {
230
272
  return;
231
273
  }
232
274
  if (props.autoClose === true ||
233
- (props.autoClose === 'inside' &&
234
- dropdownMenuRef.value.contains(event.target)) ||
235
- (props.autoClose === 'outside' &&
236
- !dropdownMenuRef.value.contains(event.target))) {
275
+ (props.autoClose === 'inside' && isOnMenu) ||
276
+ (props.autoClose === 'outside' && !isOnMenu)) {
237
277
  setVisible(false);
238
- return;
239
278
  }
240
279
  };
241
- const setVisible = (_visible) => {
280
+ const setVisible = (_visible, event) => {
242
281
  if (props.disabled) {
243
282
  return;
244
283
  }
245
- if (typeof _visible == 'boolean') {
284
+ if (typeof _visible === 'boolean') {
285
+ if (event) {
286
+ pendingKeyDownEventRef.value = event || null;
287
+ }
246
288
  visible.value = _visible;
247
289
  return;
248
290
  }
249
- if (visible.value === true) {
250
- visible.value = false;
251
- return;
252
- }
253
- visible.value = true;
254
291
  };
255
292
  vue.provide('setVisible', setVisible);
256
- return () => props.variant === 'input-group'
293
+ return () => vue.h(CFocusTrap.CFocusTrap, { active: props.teleport && visible.value, additionalContainer: dropdownMenuRef }, () => props.variant === 'input-group'
257
294
  ? [slots.default && slots.default()]
258
295
  : vue.h('div', {
259
296
  class: [
@@ -264,7 +301,8 @@ const CDropdown = vue.defineComponent({
264
301
  ? 'dropup dropup-center'
265
302
  : props.direction,
266
303
  ],
267
- }, slots.default && slots.default());
304
+ ref: dropdownRef,
305
+ }, slots.default && slots.default()));
268
306
  },
269
307
  });
270
308
 
@@ -1 +1 @@
1
- {"version":3,"file":"CDropdown.js","sources":["../../../../src/components/dropdown/CDropdown.ts"],"sourcesContent":[null],"names":["defineComponent","ref","usePopper","getPlacement","isRTL","watch","provide","getNextActiveElement","h"],"mappings":"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"}
1
+ {"version":3,"file":"CDropdown.js","sources":["../../../../src/components/dropdown/CDropdown.ts"],"sourcesContent":[null],"names":["defineComponent","ref","usePopper","computed","getPlacement","isRTL","watch","getReferenceElement","nextTick","onUnmounted","provide","getNextActiveElement","h","CFocusTrap"],"mappings":"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"}
@@ -61,6 +61,15 @@ declare const CDropdownToggle: import("vue").DefineComponent<import("vue").Extra
61
61
  * Similarly, create split button dropdowns with virtually the same markup as single button dropdowns, but with the addition of `.dropdown-toggle-split` className for proper spacing around the dropdown caret.
62
62
  */
63
63
  split: BooleanConstructor;
64
+ /**
65
+ * Screen reader label for split button dropdown toggle.
66
+ *
67
+ * @since 5.7.0
68
+ */
69
+ splitLabel: {
70
+ type: StringConstructor;
71
+ default: string;
72
+ };
64
73
  /**
65
74
  * Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them.
66
75
  *
@@ -144,6 +153,15 @@ declare const CDropdownToggle: import("vue").DefineComponent<import("vue").Extra
144
153
  * Similarly, create split button dropdowns with virtually the same markup as single button dropdowns, but with the addition of `.dropdown-toggle-split` className for proper spacing around the dropdown caret.
145
154
  */
146
155
  split: BooleanConstructor;
156
+ /**
157
+ * Screen reader label for split button dropdown toggle.
158
+ *
159
+ * @since 5.7.0
160
+ */
161
+ splitLabel: {
162
+ type: StringConstructor;
163
+ default: string;
164
+ };
147
165
  /**
148
166
  * Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them.
149
167
  *
@@ -170,5 +188,6 @@ declare const CDropdownToggle: import("vue").DefineComponent<import("vue").Extra
170
188
  trigger: Triggers;
171
189
  caret: boolean;
172
190
  navLink: boolean;
191
+ splitLabel: string;
173
192
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
174
193
  export { CDropdownToggle };
@@ -63,6 +63,15 @@ const CDropdownToggle = vue.defineComponent({
63
63
  * Similarly, create split button dropdowns with virtually the same markup as single button dropdowns, but with the addition of `.dropdown-toggle-split` className for proper spacing around the dropdown caret.
64
64
  */
65
65
  split: Boolean,
66
+ /**
67
+ * Screen reader label for split button dropdown toggle.
68
+ *
69
+ * @since 5.7.0
70
+ */
71
+ splitLabel: {
72
+ type: String,
73
+ default: 'Toggle Dropdown',
74
+ },
66
75
  /**
67
76
  * Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them.
68
77
  *
@@ -97,7 +106,7 @@ const CDropdownToggle = vue.defineComponent({
97
106
  if (props.disabled) {
98
107
  return;
99
108
  }
100
- setVisible();
109
+ setVisible(!visible.value);
101
110
  },
102
111
  }),
103
112
  ...((props.trigger === 'focus' || props.trigger.includes('focus')) && {
@@ -114,6 +123,12 @@ const CDropdownToggle = vue.defineComponent({
114
123
  setVisible(false);
115
124
  },
116
125
  }),
126
+ onkeydown: (event) => {
127
+ if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
128
+ event.preventDefault();
129
+ setVisible(true, event);
130
+ }
131
+ }
117
132
  };
118
133
  const togglerProps = vue.computed(() => {
119
134
  return {
@@ -160,7 +175,7 @@ const CDropdownToggle = vue.defineComponent({
160
175
  togglerRef.value = el;
161
176
  },
162
177
  }, () => props.split
163
- ? vue.h('span', { class: 'visually-hidden' }, 'Toggle Dropdown')
178
+ ? vue.h('span', { class: 'visually-hidden' }, props.splitLabel)
164
179
  : slots.default && slots.default());
165
180
  },
166
181
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CDropdownToggle.js","sources":["../../../../src/components/dropdown/CDropdownToggle.ts"],"sourcesContent":[null],"names":["defineComponent","Color","Shape","ref","inject","computed","onMounted","cloneVNode","h","CButton"],"mappings":";;;;;;AAiBA,MAAM,eAAe,GAAGA,mBAAe,CAAC;AACtC,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,KAAK,EAAE;AACL;;AAEG;AACH,QAAA,EAAE,EAAE;AACF,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA;AACD;;;;AAIG;AACH,QAAA,KAAK,EAAEC,WAAK;AACZ;;AAEG;AACH,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,IAAI;AACd,SAAA;AACD;;AAEG;AACH,QAAA,MAAM,EAAE,OAAO;AACf;;AAEG;AACH,QAAA,QAAQ,EAAE,OAAO;AACjB;;;;AAIG;AACH,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,IAAI;AACd,SAAA;AACD;;AAEG;AACH,QAAA,KAAK,EAAEC,WAAK;AACZ;;;;AAIG;AACH,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,SAAS,EAAE,CAAC,KAAa,KAAI;gBAC3B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrC,CAAC;AACF,SAAA;AACD;;AAEG;AACH,QAAA,KAAK,EAAE,OAAO;AACd;;;;AAIG;AACH,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,MAA4B;AAClC,YAAA,OAAO,EAAE,OAAO;AACjB,SAAA;AACD;;;;AAIG;AACH,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,SAAS,EAAE,CAAC,KAAa,KAAI;gBAC3B,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7C,CAAC;AACF,SAAA;AACF,KAAA;AACD,IAAA,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAA;AACpB,QAAA,MAAM,UAAU,GAAGC,OAAG,EAAE;AACxB,QAAA,MAAM,iBAAiB,GAAGC,UAAM,CAAC,mBAAmB,CAAqB;AACzE,QAAA,MAAM,eAAe,GAAGA,UAAM,CAAC,SAAS,CAAW;AACnD,QAAA,MAAM,OAAO,GAAGA,UAAM,CAAC,SAAS,CAAiB;AACjD,QAAA,MAAM,UAAU,GAAGA,UAAM,CAAC,YAAY,CAAiC;AAEvE,QAAA,MAAM,QAAQ,GAAG;AACf,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;AACpE,gBAAA,OAAO,EAAE,CAAC,KAAY,KAAI;oBACxB,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAClB;oBACF;AAEA,oBAAA,UAAU,EAAE;gBACd,CAAC;aACF,CAAC;AACF,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;gBACpE,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAClB;oBACF;oBAEA,UAAU,CAAC,IAAI,CAAC;gBAClB,CAAC;gBACD,MAAM,EAAE,MAAK;AACX,oBAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAClB;oBACF;oBACA,UAAU,CAAC,KAAK,CAAC;gBACnB,CAAC;aACF,CAAC;SACH;AAED,QAAA,MAAM,YAAY,GAAGC,YAAQ,CAAC,MAAK;YACjC,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,UAAU,EAAE,eAAe,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO;oBAC3D,iBAAiB,EAAE,KAAK,CAAC,KAAK;oBAC9B,uBAAuB,EAAE,KAAK,CAAC,KAAK;oBACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,OAAO,CAAC,KAAK;AACpB,iBAAA;gBACD,eAAe,EAAE,OAAO,CAAC,KAAK;gBAC9B,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;aACxC;AACH,QAAA,CAAC,CAAC;QAEFC,aAAS,CAAC,MAAK;AACb,YAAA,IAAI,UAAU,CAAC,KAAK,EAAE;gBACpB,iBAAiB,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG;YAChD;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,MACL,KAAK,CAAC;cACF,KAAK,CAAC,OAAO;AACb,gBAAA,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KACvBC,cAAU,CAAC,IAAI,EAAE;AACf,oBAAA,GAAG,EAAE,CAAC,EAAE,KAAI;AACV,wBAAA,UAAU,CAAC,KAAK,GAAG,EAAE;oBACvB,CAAC;AACD,oBAAA,GAAG,QAAQ;AACZ,iBAAA,CAAC;AAEN,cAAE,eAAe,KAAK,UAAU,IAAI,KAAK,CAAC;AACxC,kBAAEC,KAAC,CACC,GAAG,EACH;AACE,oBAAA,IAAI,EAAE,GAAG;oBACT,GAAG,YAAY,CAAC,KAAK;AACrB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,GAAG,EAAE,iBAAiB;AACvB,iBAAA,EACD,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;AAEvD,kBAAEA,KAAC,CACCC,eAAO,EACP;oBACE,GAAG,YAAY,CAAC,KAAK;oBACrB,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,oBAAA,GAAG,EAAE,CAAC,EAAE,KAAI;AACV,wBAAA,UAAU,CAAC,KAAK,GAAG,EAAE;oBACvB,CAAC;AACF,iBAAA,EACD,MACE,KAAK,CAAC;AACJ,sBAAED,KAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,iBAAiB;sBACzD,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CACvC;IACX,CAAC;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"CDropdownToggle.js","sources":["../../../../src/components/dropdown/CDropdownToggle.ts"],"sourcesContent":[null],"names":["defineComponent","Color","Shape","ref","inject","computed","onMounted","cloneVNode","h","CButton"],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { Ref } from 'vue';
1
2
  import type { Placement } from '@popperjs/core';
2
3
  import type { Placements } from '../../types';
3
4
  import type { Alignments } from './types';
4
5
  export declare const getAlignmentClassNames: (alignment: Alignments) => string[];
5
6
  export declare const getPlacement: (placement: Placement, direction: string | undefined, alignment: Alignments | string | undefined, isRTL: boolean) => Placements;
7
+ export declare const getReferenceElement: (reference: "parent" | "toggle" | Ref<HTMLElement | null> | HTMLElement, dropdownToggleRef: Ref<HTMLElement | null>, dropdownRef: Ref<HTMLElement | null>) => HTMLElement | null;
@@ -31,7 +31,20 @@ const getPlacement = (placement, direction, alignment, isRTL) => {
31
31
  }
32
32
  return _placement;
33
33
  };
34
+ const getReferenceElement = (reference, dropdownToggleRef, dropdownRef) => {
35
+ if (reference === 'parent') {
36
+ return dropdownRef.value;
37
+ }
38
+ if (reference instanceof HTMLElement) {
39
+ return reference;
40
+ }
41
+ if (reference instanceof Object && 'value' in reference) {
42
+ return reference.value;
43
+ }
44
+ return dropdownToggleRef.value;
45
+ };
34
46
 
35
47
  exports.getAlignmentClassNames = getAlignmentClassNames;
36
48
  exports.getPlacement = getPlacement;
49
+ exports.getReferenceElement = getReferenceElement;
37
50
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/components/dropdown/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIO,MAAM,sBAAsB,GAAG,CAAC,SAAqB,KAAI;IAC9D,MAAM,UAAU,GAAa,EAAE;AAC/B,IAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,QAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YAC3B,UAAU,CAAC,IAAI,CACb,CAAA,aAAA,EAAgB,GAAG,KAAK,IAAI,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAA,CAAA,EAAI,SAAS,CAAC,GAAwB,CAAC,CAAA,CAAE,CACvF;QACH;IACF;AAEA,IAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,QAAA,UAAU,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAA,CAAE,CAAC;IAC/C;AAEA,IAAA,OAAO,UAAU;AACnB;AAEO,MAAM,YAAY,GAAG,CAC1B,SAAoB,EACpB,SAA6B,EAC7B,SAA0C,EAC1C,KAAc,KACA;IACd,IAAI,UAAU,GAAG,SAAS;AAE1B,IAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC1B,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW;IAC9C;AAEA,IAAA,IAAI,SAAS,KAAK,eAAe,EAAE;QACjC,UAAU,GAAG,KAAK;IACpB;AAEA,IAAA,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,aAAa;IACnD;AAEA,IAAA,IAAI,SAAS,KAAK,WAAW,EAAE;QAC7B,UAAU,GAAG,KAAK,GAAG,aAAa,GAAG,YAAY;IACnD;AAEA,IAAA,IAAI,SAAS,KAAK,KAAK,EAAE;QACvB,UAAU,GAAG,KAAK,GAAG,cAAc,GAAG,YAAY;IACpD;AAEA,IAAA,OAAO,UAAU;AACnB;;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/components/dropdown/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKO,MAAM,sBAAsB,GAAG,CAAC,SAAqB,KAAI;IAC9D,MAAM,UAAU,GAAa,EAAE;AAC/B,IAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,QAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YAC3B,UAAU,CAAC,IAAI,CACb,CAAA,aAAA,EAAgB,GAAG,KAAK,IAAI,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAA,CAAA,EAAI,SAAS,CAAC,GAAwB,CAAC,CAAA,CAAE,CACvF;QACH;IACF;AAEA,IAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,QAAA,UAAU,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAA,CAAE,CAAC;IAC/C;AAEA,IAAA,OAAO,UAAU;AACnB;AAEO,MAAM,YAAY,GAAG,CAC1B,SAAoB,EACpB,SAA6B,EAC7B,SAA0C,EAC1C,KAAc,KACA;IACd,IAAI,UAAU,GAAG,SAAS;AAE1B,IAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC1B,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW;IAC9C;AAEA,IAAA,IAAI,SAAS,KAAK,eAAe,EAAE;QACjC,UAAU,GAAG,KAAK;IACpB;AAEA,IAAA,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,aAAa;IACnD;AAEA,IAAA,IAAI,SAAS,KAAK,WAAW,EAAE;QAC7B,UAAU,GAAG,KAAK,GAAG,aAAa,GAAG,YAAY;IACnD;AAEA,IAAA,IAAI,SAAS,KAAK,KAAK,EAAE;QACvB,UAAU,GAAG,KAAK,GAAG,cAAc,GAAG,YAAY;IACpD;AAEA,IAAA,OAAO,UAAU;AACnB;AAEO,MAAM,mBAAmB,GAAG,CACjC,SAAsE,EACtE,iBAA0C,EAC1C,WAAoC,KACd;AACtB,IAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC1B,OAAO,WAAW,CAAC,KAAK;IAC1B;AAEA,IAAA,IAAI,SAAS,YAAY,WAAW,EAAE;AACpC,QAAA,OAAO,SAAS;IAClB;IAEA,IAAI,SAAS,YAAY,MAAM,IAAI,OAAO,IAAI,SAAS,EAAE;QACvD,OAAO,SAAS,CAAC,KAAK;IACxB;IAEA,OAAO,iBAAiB,CAAC,KAAK;AAChC;;;;;;"}
@@ -0,0 +1,108 @@
1
+ import { type Ref, type PropType } from 'vue';
2
+ declare const CFocusTrap: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3
+ /**
4
+ * Controls whether the focus trap is active or inactive.
5
+ * When `true`, focus will be trapped within the child element.
6
+ * When `false`, normal focus behavior is restored.
7
+ */
8
+ active: {
9
+ type: BooleanConstructor;
10
+ default: boolean;
11
+ };
12
+ /**
13
+ * Additional container elements to include in the focus trap.
14
+ * Useful for floating elements like tooltips or popovers that are
15
+ * rendered outside the main container but should be part of the trap.
16
+ */
17
+ additionalContainer: {
18
+ type: PropType<Ref<HTMLElement | null>>;
19
+ default: undefined;
20
+ };
21
+ /**
22
+ * Controls whether to focus the first selectable element or the container itself.
23
+ * When `true`, focuses the first tabbable element within the container.
24
+ * When `false`, focuses the container element directly.
25
+ *
26
+ * This is useful for containers that should receive focus themselves,
27
+ * such as scrollable regions or custom interactive components.
28
+ */
29
+ focusFirstElement: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
33
+ /**
34
+ * Automatically restores focus to the previously focused element when the trap is deactivated.
35
+ * This is crucial for accessibility as it maintains the user's place in the document
36
+ * when returning from modal dialogs or overlay components.
37
+ *
38
+ * Recommended to be `true` for modal dialogs and popover components.
39
+ */
40
+ restoreFocus: {
41
+ type: BooleanConstructor;
42
+ default: boolean;
43
+ };
44
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
45
+ [key: string]: any;
46
+ }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
47
+ /**
48
+ * Emitted when the focus trap becomes active.
49
+ * Useful for triggering additional accessibility announcements or analytics.
50
+ */
51
+ activate: () => true;
52
+ /**
53
+ * Emitted when the focus trap is deactivated.
54
+ * Can be used for cleanup, analytics, or triggering state changes.
55
+ */
56
+ deactivate: () => true;
57
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
58
+ /**
59
+ * Controls whether the focus trap is active or inactive.
60
+ * When `true`, focus will be trapped within the child element.
61
+ * When `false`, normal focus behavior is restored.
62
+ */
63
+ active: {
64
+ type: BooleanConstructor;
65
+ default: boolean;
66
+ };
67
+ /**
68
+ * Additional container elements to include in the focus trap.
69
+ * Useful for floating elements like tooltips or popovers that are
70
+ * rendered outside the main container but should be part of the trap.
71
+ */
72
+ additionalContainer: {
73
+ type: PropType<Ref<HTMLElement | null>>;
74
+ default: undefined;
75
+ };
76
+ /**
77
+ * Controls whether to focus the first selectable element or the container itself.
78
+ * When `true`, focuses the first tabbable element within the container.
79
+ * When `false`, focuses the container element directly.
80
+ *
81
+ * This is useful for containers that should receive focus themselves,
82
+ * such as scrollable regions or custom interactive components.
83
+ */
84
+ focusFirstElement: {
85
+ type: BooleanConstructor;
86
+ default: boolean;
87
+ };
88
+ /**
89
+ * Automatically restores focus to the previously focused element when the trap is deactivated.
90
+ * This is crucial for accessibility as it maintains the user's place in the document
91
+ * when returning from modal dialogs or overlay components.
92
+ *
93
+ * Recommended to be `true` for modal dialogs and popover components.
94
+ */
95
+ restoreFocus: {
96
+ type: BooleanConstructor;
97
+ default: boolean;
98
+ };
99
+ }>> & Readonly<{
100
+ onActivate?: (() => any) | undefined;
101
+ onDeactivate?: (() => any) | undefined;
102
+ }>, {
103
+ active: boolean;
104
+ additionalContainer: Ref<HTMLElement | null, HTMLElement | null>;
105
+ focusFirstElement: boolean;
106
+ restoreFocus: boolean;
107
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
108
+ export { CFocusTrap };