@privyid/persona 0.21.0 → 0.22.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 (118) hide show
  1. package/dist/components/accordion/Accordion.vue +1 -1
  2. package/dist/components/accordion/AccordionItem.vue +6 -6
  3. package/dist/components/badge/Badge.vue +21 -3
  4. package/dist/components/banner/Banner.vue +5 -0
  5. package/dist/components/banner/Banner.vue.d.ts +9 -0
  6. package/dist/components/button/Button.vue +18 -18
  7. package/dist/components/calendar/adapter/adapter.d.ts +1 -8
  8. package/dist/components/calendar/adapter/adapter.mjs +0 -10
  9. package/dist/components/calendar/adapter/date.mjs +2 -2
  10. package/dist/components/calendar/adapter/month.mjs +2 -2
  11. package/dist/components/card/CardSection.vue +1 -0
  12. package/dist/components/carousel/Carousel.vue.d.ts +6 -6
  13. package/dist/components/chart/ChartSet.vue.d.ts +2 -2
  14. package/dist/components/chart/ChartVal.vue.d.ts +4 -4
  15. package/dist/components/checkbox/Checkbox.vue +98 -112
  16. package/dist/components/checkbox/icon/IconCheckbox.vue +13 -0
  17. package/dist/components/checkbox/icon/IconInderteminate.vue +12 -0
  18. package/dist/components/contextual-bar/ContextualBar.vue +67 -19
  19. package/dist/components/contextual-bar/ContextualBar.vue.d.ts +3 -3
  20. package/dist/components/contextual-bar/index.d.ts +1 -1
  21. package/dist/components/cropper/Cropper.vue.d.ts +8 -8
  22. package/dist/components/datepicker/Datepicker.vue +2 -0
  23. package/dist/components/datepicker/Datepicker.vue.d.ts +1 -1
  24. package/dist/components/dialog/Dialog.vue +2 -0
  25. package/dist/components/dialog/index.d.ts +2 -0
  26. package/dist/components/divider/Divider.vue +1 -1
  27. package/dist/components/dropdown/Dropdown.vue +303 -222
  28. package/dist/components/dropzone/Dropzone.vue.d.ts +3 -3
  29. package/dist/components/filterbar/pinned/PinnedDate.vue +2 -0
  30. package/dist/components/filterbar/pinned/PinnedDate.vue.d.ts +1 -1
  31. package/dist/components/filterbar/pinned/PinnedMultiselect.vue +10 -6
  32. package/dist/components/filterbar/pinned/PinnedSelect.vue +11 -7
  33. package/dist/components/filterbar/pinned/PinnedSelect.vue.d.ts +3 -3
  34. package/dist/components/filterbar/pinned/PinnedToggle.vue.d.ts +7 -7
  35. package/dist/components/global/store.d.ts +2 -1
  36. package/dist/components/heading/Heading.vue.d.ts +1 -1
  37. package/dist/components/input/Input.vue +16 -5
  38. package/dist/components/input/Input.vue.d.ts +4 -3
  39. package/dist/components/input/index.d.ts +1 -1
  40. package/dist/components/input-file/InputFile.vue.d.ts +3 -3
  41. package/dist/components/input-pin/InputPin.vue.d.ts +2 -2
  42. package/dist/components/input-range/InputRange.vue.d.ts +6 -6
  43. package/dist/components/label/Label.vue +9 -8
  44. package/dist/components/label/Label.vue.d.ts +1 -1
  45. package/dist/components/main/Main.vue +4 -2
  46. package/dist/components/markdown/index.d.ts +6 -1
  47. package/dist/components/markdown/index.mjs +8 -2
  48. package/dist/components/meta.json +135 -0
  49. package/dist/components/modal/Modal.vue +215 -12
  50. package/dist/components/modal/Modal.vue.d.ts +55 -1
  51. package/dist/components/modal/index.d.ts +1 -1
  52. package/dist/components/nav/Nav.vue +5 -1
  53. package/dist/components/nav/NavItemDropdown.vue.d.ts +1 -1
  54. package/dist/components/nav/NavSubItem.vue +6 -6
  55. package/dist/components/navbar/Navbar.vue.d.ts +1 -1
  56. package/dist/components/navbar/NavbarBrand.vue +1 -1
  57. package/dist/components/pdf-helipad/PdfHelipad.vue +101 -85
  58. package/dist/components/pdf-helipad/utils/use-drag.d.ts +2 -7
  59. package/dist/components/pdf-helipad/utils/use-drag.mjs +1 -1
  60. package/dist/components/pdf-object/utils/use-drag.d.ts +1 -0
  61. package/dist/components/pdf-object/utils/use-drag.mjs +1 -1
  62. package/dist/components/pdf-viewer/PdfViewer.vue.d.ts +4 -4
  63. package/dist/components/progress-indicator/ProgressIndicator.vue.d.ts +2 -2
  64. package/dist/components/progressbar/Progressbar.vue.d.ts +7 -7
  65. package/dist/components/radio/Radio.vue.d.ts +4 -4
  66. package/dist/components/ringbar/Ringbar.vue.d.ts +6 -6
  67. package/dist/components/select/Select.vue +396 -214
  68. package/dist/components/select/SelectInput.vue +102 -0
  69. package/dist/components/select/SelectTags.vue +57 -0
  70. package/dist/components/select/adapter/adapter.d.ts +1 -0
  71. package/dist/components/select/adapter/async-adapter.d.ts +13 -1
  72. package/dist/components/select/adapter/async-adapter.mjs +8 -15
  73. package/dist/components/select/index.d.ts +2 -0
  74. package/dist/components/select/index.mjs +4 -1
  75. package/dist/components/sheet/Sheet.vue +2 -3
  76. package/dist/components/sidebar/Sidebar.vue +101 -116
  77. package/dist/components/sidebar/SidebarBrand.vue +1 -1
  78. package/dist/components/sidebar/SidebarContent.vue +27 -0
  79. package/dist/components/sidebar/SidebarNav.vue +60 -84
  80. package/dist/components/sidebar-menu/SidebarMenu.vue +57 -204
  81. package/dist/components/sidebar-menu/SidebarMenuItem.vue +70 -0
  82. package/dist/components/signature-text/SignatureText.vue.d.ts +4 -4
  83. package/dist/components/steps/StepSlider.vue +2 -2
  84. package/dist/components/strengthbar/Strengthbar.vue.d.ts +8 -8
  85. package/dist/components/table-flex/TableFlex.vue +3 -5
  86. package/dist/components/table-static/TableStatic.vue +118 -111
  87. package/dist/components/table-static/TableStaticRoot.vue +42 -0
  88. package/dist/components/tabs/Tab.vue +13 -15
  89. package/dist/components/tabs/TabContent.vue +64 -23
  90. package/dist/components/tabs/Tabs.vue +93 -75
  91. package/dist/components/text/Text.vue +15 -7
  92. package/dist/components/text/Text.vue.d.ts +11 -2
  93. package/dist/components/text/index.d.ts +1 -0
  94. package/dist/components/textarea/Textarea.vue.d.ts +5 -5
  95. package/dist/components/toggle/Toggle.vue +12 -1
  96. package/dist/components/toggle/Toggle.vue.d.ts +16 -7
  97. package/dist/components/tooltip/index.mjs +1 -1
  98. package/dist/components/tooltip/utils/create-handler.mjs +1 -1
  99. package/dist/components/tour/TourDialog.vue +6 -0
  100. package/dist/components/truncate/Truncate.vue +1 -1
  101. package/dist/components/truncate/Truncate.vue.d.ts +2 -2
  102. package/dist/components/utils/date.d.ts +21 -0
  103. package/dist/components/utils/date.mjs +15 -0
  104. package/dist/components/utils/vnode.mjs +1 -1
  105. package/dist/core/index.d.ts +1 -0
  106. package/dist/core/index.mjs +4 -0
  107. package/dist/module.json +1 -1
  108. package/package.json +17 -17
  109. package/dist/components/checkbox/Checkbox.vue.d.ts +0 -84
  110. package/dist/components/dropdown/Dropdown.vue.d.ts +0 -147
  111. package/dist/components/pdf-helipad/PdfHelipad.vue.d.ts +0 -45
  112. package/dist/components/select/Select.vue.d.ts +0 -157
  113. package/dist/components/sidebar/Sidebar.vue.d.ts +0 -80
  114. package/dist/components/sidebar/SidebarNav.vue.d.ts +0 -66
  115. package/dist/components/sidebar-menu/SidebarMenu.vue.d.ts +0 -91
  116. package/dist/components/tabs/Tab.vue.d.ts +0 -23
  117. package/dist/components/tabs/TabContent.vue.d.ts +0 -14
  118. package/dist/components/tabs/Tabs.vue.d.ts +0 -80
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- ref="dropdown"
3
+ ref="root"
4
4
  class="dropdown"
5
5
  :class="[{ 'dropdown--open': isOpen, 'dropdown--no-caret' : noCaret }, classNames]"
6
6
  data-testid="dropdown">
@@ -31,254 +31,322 @@
31
31
  </Button>
32
32
  </slot>
33
33
 
34
- <Transition name="fade">
34
+ <Transition
35
+ name="fade"
36
+ :css="!noAnimation"
37
+ @after-enter="$emit('show')"
38
+ @after-leave="$emit('hide')">
35
39
  <div
36
40
  v-show="isOpen && !isHidden"
37
41
  ref="menu"
38
42
  data-testid="dropdown-menu"
39
43
  class="dropdown__menu"
40
44
  :class="[menuClass, containerSize]">
41
- <DropdownGroup
42
- ref="wizard"
43
- class="dropdown__menu__container">
44
- <slot />
45
- </DropdownGroup>
45
+ <div
46
+ v-if="$slots.prepend"
47
+ class="drowdown__menu__prepend">
48
+ <slot name="prepend" />
49
+ </div>
50
+ <div
51
+ ref="menuBody"
52
+ class="dropdown__menu__body">
53
+ <DropdownGroup
54
+ ref="wizard"
55
+ class="dropdown__menu__container">
56
+ <slot />
57
+ </DropdownGroup>
58
+ </div>
59
+ <div
60
+ v-if="$slots.append"
61
+ class="drowdown__menu__append">
62
+ <slot name="append" />
63
+ </div>
46
64
  </div>
47
65
  </Transition>
48
66
  </div>
49
67
  </template>
50
68
 
51
- <script>
69
+ <script lang="ts" setup>
52
70
  import {
53
- defineComponent,
71
+ PropType,
54
72
  provide,
55
73
  watch,
56
74
  toRef,
57
75
  watchEffect,
58
76
  computed,
59
- ref
60
- } from "vue-demi";
77
+ ref,
78
+ VNode,
79
+ } from 'vue-demi'
61
80
  import {
62
- templateRef,
63
81
  onClickOutside,
64
- onKeyStroke
65
- } from "@vueuse/core";
66
- import Button from "../button/Button.vue";
67
- import DropdownGroup from "../dropdown-subitem/DropdownSubitem.vue";
68
- import { useFocus } from "./utils/use-focus";
82
+ onKeyStroke,
83
+ } from '@vueuse/core'
84
+ import Button from '../button/Button.vue'
85
+ import DropdownGroup from '../dropdown-subitem/DropdownSubitem.vue'
86
+ import { useFocus } from './utils/use-focus'
69
87
  import {
88
+ Placement,
70
89
  autoUpdate,
71
90
  computePosition,
72
91
  offset,
73
92
  flip,
74
93
  shift,
75
- hide
76
- } from "@floating-ui/dom";
77
- import { useVModel } from "../input";
78
- import IconArrow from "@privyid/persona-icon/vue/chevron-down/16.vue";
79
- import { DROPDOWN_CONTEXT } from ".";
80
- export default defineComponent({
81
- components: {
82
- Button,
83
- DropdownGroup,
84
- IconArrow
94
+ hide,
95
+ } from '@floating-ui/dom'
96
+ import { useVModel } from '../input'
97
+ import IconArrow from '@privyid/persona-icon/vue/chevron-down/20.vue'
98
+ import type {
99
+ StyleVariant,
100
+ ColorVariant,
101
+ SizeVariant,
102
+ } from '../button'
103
+ import type {
104
+ MenuSizeVariant,
105
+ } from '.'
106
+ import { DROPDOWN_CONTEXT } from '.'
107
+
108
+ type DropdownSubitemElement = InstanceType<typeof DropdownGroup> & HTMLDivElement
109
+
110
+ defineOptions({
111
+ models: {
112
+ prop : 'modelValue',
113
+ event: 'update:modelValue',
85
114
  },
86
- props: {
87
- modelValue: {
88
- type: Boolean,
89
- default: false
90
- },
91
- text: {
92
- type: String,
93
- default: ""
94
- },
95
- placement: {
96
- type: String,
97
- default: "bottom-start"
98
- },
99
- variant: {
100
- type: String,
101
- default: "solid"
102
- },
103
- color: {
104
- type: String,
105
- default: "default"
106
- },
107
- size: {
108
- type: String,
109
- default: "md"
110
- },
111
- icon: {
112
- type: Boolean,
113
- default: false
114
- },
115
- pill: {
116
- type: Boolean,
117
- default: false
118
- },
119
- disabled: {
120
- type: Boolean,
121
- default: false
122
- },
123
- noCaret: {
124
- type: Boolean,
125
- default: false
126
- },
127
- divider: {
128
- type: Boolean,
129
- default: false
130
- },
131
- menuClass: {
132
- type: [
133
- String,
134
- Array,
135
- Object
136
- ],
137
- default: void 0
138
- },
139
- buttonClass: {
140
- type: [
141
- String,
142
- Array,
143
- Object
144
- ],
145
- default: void 0
146
- },
147
- menuSize: {
148
- type: String,
149
- default: "sm"
150
- }
115
+ })
116
+
117
+ const props = defineProps({
118
+ modelValue: {
119
+ type : Boolean,
120
+ default: false,
151
121
  },
152
- models: {
153
- prop: "modelValue",
154
- event: "update:modelValue"
122
+ text: {
123
+ type : String,
124
+ default: '',
155
125
  },
156
- emits: [
157
- "show",
158
- "hide",
159
- "update:modelValue"
160
- ],
161
- setup(props, { emit }) {
162
- const target = templateRef("dropdown");
163
- const menu = templateRef("menu");
164
- const wizard = templateRef("wizard");
165
- const placement = toRef(props, "placement");
166
- const isOpen = useVModel(props);
167
- const isHidden = ref(false);
168
- const { next: nextFocus, prev: prevFocus } = useFocus(menu);
169
- const classNames = computed(() => {
170
- const result = [""];
171
- if (props.divider)
172
- result.push("dropdown--divider");
173
- return result;
174
- });
175
- const containerSize = computed(() => {
176
- const result = [""];
177
- if (props.menuSize)
178
- result.push(`dropdown__menu--${props.menuSize}`);
179
- return result;
180
- });
181
- function toggle() {
182
- if (!props.disabled) {
183
- if (isOpen.value)
184
- close();
185
- else
186
- open();
187
- }
188
- }
189
- function open() {
190
- if (!props.disabled) {
191
- isOpen.value = true;
192
- emit("show");
193
- }
194
- }
195
- function close() {
196
- if (!props.disabled) {
197
- isOpen.value = false;
198
- emit("hide");
199
- }
200
- }
201
- onClickOutside(menu, () => {
202
- if (isOpen.value) {
203
- setTimeout(() => {
204
- close();
205
- });
206
- }
207
- }, { ignore: [target] });
208
- onKeyStroke("Escape", (event) => {
209
- const target2 = event.target;
210
- if (isOpen.value) {
211
- close();
212
- if (typeof target2.blur === "function")
213
- target2.blur();
214
- }
215
- });
216
- onKeyStroke(["ArrowUp"], (event) => {
217
- if (isOpen.value) {
218
- event.preventDefault();
219
- prevFocus();
220
- }
221
- });
222
- onKeyStroke(["ArrowDown"], (event) => {
223
- if (isOpen.value) {
224
- event.preventDefault();
225
- nextFocus();
226
- }
227
- });
228
- onKeyStroke(["Tab"], (event) => {
229
- if (isOpen.value) {
230
- event.preventDefault();
231
- if (event.shiftKey)
232
- prevFocus();
233
- else
234
- nextFocus();
235
- }
236
- });
237
- watchEffect((onCleanup) => {
238
- if (target.value && menu.value) {
239
- const cleanup = autoUpdate(target.value, menu.value, () => {
240
- computePosition(target.value, menu.value, {
241
- strategy: "absolute",
242
- placement: placement.value,
243
- middleware: [
244
- flip(),
245
- shift(),
246
- offset(8),
247
- hide()
248
- ]
249
- }).then(({ x, y, placement: placement2, middlewareData }) => {
250
- if (menu.value) {
251
- menu.value.dataset.popperPlacement = placement2;
252
- menu.value.style.left = `${x || 0}px`;
253
- menu.value.style.top = `${y || 0}px`;
254
- isHidden.value = middlewareData.hide.referenceHidden;
255
- }
256
- });
257
- });
258
- onCleanup(cleanup);
259
- }
260
- }, { flush: "post" });
261
- watch(isOpen, (value) => {
262
- if (!value && wizard.value)
263
- wizard.value.reset();
264
- }, { immediate: true });
265
- provide(DROPDOWN_CONTEXT, {
266
- isOpen,
267
- toggle,
268
- open,
269
- close
270
- });
271
- return {
272
- isOpen,
273
- isHidden,
274
- classNames,
275
- containerSize,
276
- toggle,
277
- open,
278
- close
279
- };
126
+ placement: {
127
+ type : String as PropType<Placement>,
128
+ default: 'bottom-start',
129
+ },
130
+ variant: {
131
+ type : String as PropType<StyleVariant>,
132
+ default: 'solid',
133
+ },
134
+ color: {
135
+ type : String as PropType<ColorVariant>,
136
+ default: 'default',
137
+ },
138
+ size: {
139
+ type : String as PropType<SizeVariant>,
140
+ default: 'md',
141
+ },
142
+ icon: {
143
+ type : Boolean,
144
+ default: false,
145
+ },
146
+ pill: {
147
+ type : Boolean,
148
+ default: false,
149
+ },
150
+ disabled: {
151
+ type : Boolean,
152
+ default: false,
153
+ },
154
+ noCaret: {
155
+ type : Boolean,
156
+ default: false,
157
+ },
158
+ divider: {
159
+ type : Boolean,
160
+ default: false,
161
+ },
162
+ menuClass: {
163
+ type: [
164
+ String,
165
+ Array,
166
+ Object,
167
+ ],
168
+ default: undefined,
169
+ },
170
+ buttonClass: {
171
+ type: [
172
+ String,
173
+ Array,
174
+ Object,
175
+ ],
176
+ default: undefined,
177
+ },
178
+ menuSize: {
179
+ type : String as PropType<MenuSizeVariant>,
180
+ default: 'sm',
181
+ },
182
+ /**
183
+ * For testing only
184
+ */
185
+ noAnimation: {
186
+ type : Boolean,
187
+ default: false,
188
+ },
189
+ })
190
+
191
+ defineEmits<{
192
+ 'show': [],
193
+ 'hide': [],
194
+ 'update:modelValue': [boolean],
195
+ }>()
196
+
197
+ const slots = defineSlots<{
198
+ prepend(): VNode[],
199
+ append(): VNode[],
200
+ }>()
201
+
202
+ const root = ref<HTMLDivElement>()
203
+ const menu = ref<HTMLDivElement>()
204
+ const menuBody = ref<HTMLDivElement>()
205
+ const wizard = ref<DropdownSubitemElement>()
206
+
207
+ const placement = toRef(props, 'placement')
208
+ const isOpen = useVModel(props)
209
+ const isHidden = ref(false)
210
+
211
+ const { next: nextFocus, prev: prevFocus } = useFocus(menuBody)
212
+
213
+ const classNames = computed(() => {
214
+ const result: string[] = ['']
215
+
216
+ if (props.divider)
217
+ result.push('dropdown--divider')
218
+
219
+ return result
220
+ })
221
+
222
+ const containerSize = computed(() => {
223
+ const result: string[] = ['']
224
+
225
+ if (props.menuSize)
226
+ result.push(`dropdown__menu--${props.menuSize}`)
227
+
228
+ if (slots.prepend)
229
+ result.push('dropdown__menu--has-prepend')
230
+
231
+ if (slots.append)
232
+ result.push('dropdown__menu--has-append')
233
+
234
+ return result
235
+ })
236
+
237
+ function toggle () {
238
+ if (!props.disabled) {
239
+ if (isOpen.value)
240
+ close()
241
+ else
242
+ open()
243
+ }
244
+ }
245
+
246
+ function open () {
247
+ if (!props.disabled)
248
+ isOpen.value = true
249
+ }
250
+
251
+ function close () {
252
+ if (!props.disabled)
253
+ isOpen.value = false
254
+ }
255
+
256
+ onClickOutside(menu, () => {
257
+ if (isOpen.value) {
258
+ // Add little delay too prevent race condition with v-model changing
259
+ setTimeout(() => {
260
+ close()
261
+ })
262
+ }
263
+ }, { ignore: [root] })
264
+
265
+ onKeyStroke('Escape', (event) => {
266
+ const target = event.target as HTMLElement
267
+
268
+ if (isOpen.value) {
269
+ close()
270
+
271
+ /* In HappyDOM, blur() is undefined, which shouldn't happen in Real Browser */
272
+ /* c8 ignore next 2 */
273
+ if (typeof target.blur === 'function')
274
+ target.blur()
275
+ }
276
+ })
277
+
278
+ onKeyStroke(['ArrowUp'], (event) => {
279
+ if (isOpen.value) {
280
+ event.preventDefault()
281
+
282
+ prevFocus()
283
+ }
284
+ })
285
+
286
+ onKeyStroke(['ArrowDown'], (event) => {
287
+ if (isOpen.value) {
288
+ event.preventDefault()
289
+
290
+ nextFocus()
291
+ }
292
+ })
293
+
294
+ onKeyStroke(['Tab'], (event) => {
295
+ if (isOpen.value) {
296
+ event.preventDefault()
297
+
298
+ if (event.shiftKey)
299
+ prevFocus()
300
+ else
301
+ nextFocus()
302
+ }
303
+ })
304
+
305
+ watchEffect((onCleanup) => {
306
+ if (root.value && menu.value) {
307
+ const cleanup = autoUpdate(root.value, menu.value, () => {
308
+ computePosition(root.value, menu.value, {
309
+ strategy : 'absolute',
310
+ placement : placement.value,
311
+ middleware: [
312
+ flip(),
313
+ shift(),
314
+ offset(8),
315
+ hide(),
316
+ ],
317
+ }).then(({ x, y, placement, middlewareData }) => {
318
+ if (menu.value) {
319
+ menu.value.dataset.popperPlacement = placement
320
+
321
+ menu.value.style.left = `${x || 0}px`
322
+ menu.value.style.top = `${y || 0}px`
323
+
324
+ isHidden.value = middlewareData.hide.referenceHidden
325
+ }
326
+ })
327
+ })
328
+
329
+ onCleanup(cleanup)
280
330
  }
281
- });
331
+ }, { flush: 'post' })
332
+
333
+ watch(isOpen, (value) => {
334
+ if (!value && wizard.value)
335
+ wizard.value.reset()
336
+ }, { immediate: true })
337
+
338
+ provide(DROPDOWN_CONTEXT, {
339
+ isOpen,
340
+ toggle,
341
+ open,
342
+ close,
343
+ })
344
+
345
+ defineExpose({
346
+ menuBody,
347
+ menu,
348
+ root,
349
+ })
282
350
  </script>
283
351
 
284
352
  <style lang="postcss">
@@ -293,16 +361,29 @@ export default defineComponent({
293
361
  @apply inline-flex;
294
362
 
295
363
  &__menu {
296
- @apply max-h-[var(--p-dropdown-max-height)] border rounded bg-default z-[var(--p-dropdown-z-index)] border-default shadow-xl overflow-x-hidden overflow-y-auto absolute;
364
+ @apply border rounded bg-default z-[var(--p-dropdown-z-index)] border-default shadow-xl absolute flex flex-col overflow-hidden;
297
365
  @apply dark:bg-dark-default dark:border-dark-default;
298
366
 
299
- &__container {
367
+ &__prepend,
368
+ &__append {
369
+ @apply shrink-0;
370
+ }
371
+
372
+ &__body {
373
+ @apply max-h-[var(--p-dropdown-max-height)] overflow-x-hidden overflow-y-auto flex-grow;
374
+ }
375
+
376
+ &:not(&--has-prepend) &__container {
300
377
  > .dropdown__item {
301
378
  &:first-child,
302
379
  .dropdown__subitem:first-child & {
303
380
  @apply rounded-t-sm;
304
381
  }
382
+ }
383
+ }
305
384
 
385
+ &:not(&--has-append) &__container {
386
+ > .dropdown__item {
306
387
  &:last-child,
307
388
  .dropdown__subitem:last-child & {
308
389
  @apply rounded-b-sm;
@@ -14,7 +14,7 @@ declare const _default: import("vue-demi").DefineComponent<{
14
14
  default: boolean;
15
15
  };
16
16
  maxlength: {
17
- type: (NumberConstructor | StringConstructor)[];
17
+ type: (StringConstructor | NumberConstructor)[];
18
18
  default: undefined;
19
19
  };
20
20
  accept: {
@@ -39,7 +39,7 @@ declare const _default: import("vue-demi").DefineComponent<{
39
39
  clear: () => void;
40
40
  isDragover: import("vue-demi").Ref<boolean>;
41
41
  isHovered: import("vue-demi").Ref<boolean>;
42
- model: import("vue-demi").Ref<string | string[] | File | File[] | undefined>;
42
+ model: import("vue-demi").Ref<string | string[] | File | File[]>;
43
43
  rawModel: import("vue-demi").Ref<File | File[] | undefined>;
44
44
  onDrop: (event: DragEvent) => void;
45
45
  onChange: (event: Event) => void;
@@ -57,7 +57,7 @@ declare const _default: import("vue-demi").DefineComponent<{
57
57
  default: boolean;
58
58
  };
59
59
  maxlength: {
60
- type: (NumberConstructor | StringConstructor)[];
60
+ type: (StringConstructor | NumberConstructor)[];
61
61
  default: undefined;
62
62
  };
63
63
  accept: {
@@ -92,6 +92,8 @@ export default defineComponent({
92
92
  <style lang="postcss">
93
93
  .filterbar__date {
94
94
  > .dropdown__menu {
95
+ --p-dropdown-max-height: 100%;
96
+
95
97
  @apply min-w-max max-h-min;
96
98
  }
97
99
  }
@@ -26,7 +26,7 @@ declare const _default: import("vue-demi").DefineComponent<{
26
26
  default: string;
27
27
  };
28
28
  }, {
29
- model: import("vue-demi").Ref<Date | undefined>;
29
+ model: import("vue-demi").Ref<Date>;
30
30
  value: import("vue-demi").ComputedRef<string>;
31
31
  isOpen: import("vue-demi").Ref<boolean>;
32
32
  close: () => void;
@@ -28,12 +28,14 @@
28
28
  <template
29
29
  v-for="(item, i) in items"
30
30
  :key="i">
31
- <Checkbox
32
- v-model="model"
33
- appearance="option"
34
- :value="item.value">
35
- {{ item.text }}
36
- </Checkbox>
31
+ <DropdownItem>
32
+ <Checkbox
33
+ v-model="model"
34
+ appearance="option"
35
+ :value="item.value">
36
+ {{ item.text }}
37
+ </Checkbox>
38
+ </DropdownItem>
37
39
  </template>
38
40
  </Dropdown>
39
41
  </template>
@@ -47,6 +49,7 @@ import {
47
49
  import Badge from "../../badge/Badge.vue";
48
50
  import Dropdown from "../../dropdown/Dropdown.vue";
49
51
  import DropdownHeader from "../../dropdown/DropdownHeader.vue";
52
+ import DropdownItem from "../../dropdown/DropdownItem.vue";
50
53
  import Checkbox from "../../checkbox/Checkbox.vue";
51
54
  import { useOptionsProp } from "../../select/adapter/adapter";
52
55
  import { useVModel } from "../../input";
@@ -55,6 +58,7 @@ export default defineComponent({
55
58
  components: {
56
59
  Badge,
57
60
  Dropdown,
61
+ DropdownItem,
58
62
  DropdownHeader,
59
63
  Checkbox
60
64
  },