@pequity/squirrel 6.0.3 → 6.0.5

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 (29) hide show
  1. package/dist/cjs/chunks/p-date-picker.js +1 -0
  2. package/dist/cjs/chunks/p-icon.js +20 -220
  3. package/dist/cjs/chunks/p-inline-date-picker.js +1 -0
  4. package/dist/cjs/chunks/p-select-btn.js +3 -3
  5. package/dist/cjs/p-loading.js +2 -2
  6. package/dist/cjs/p-modal.js +3 -3
  7. package/dist/es/chunks/p-date-picker.js +1 -0
  8. package/dist/es/chunks/p-icon.js +20 -220
  9. package/dist/es/chunks/p-inline-date-picker.js +1 -0
  10. package/dist/es/chunks/p-select-btn.js +3 -3
  11. package/dist/es/p-loading.js +2 -2
  12. package/dist/es/p-modal.js +3 -3
  13. package/dist/squirrel/components/p-checkbox/p-checkbox.vue.d.ts +1 -1
  14. package/dist/squirrel/components/p-date-picker/p-date-picker.vue.d.ts +1 -0
  15. package/dist/squirrel/components/p-drawer/p-drawer.vue.d.ts +1 -1
  16. package/dist/squirrel/components/p-dropdown-select/p-dropdown-select.vue.d.ts +192 -1
  17. package/dist/squirrel/components/p-file-upload/p-file-upload.vue.d.ts +3 -1
  18. package/dist/squirrel/components/p-loading/p-loading.vue.d.ts +3 -1
  19. package/dist/squirrel/components/p-modal/p-modal.vue.d.ts +7 -4
  20. package/dist/squirrel/components/p-pagination-info/p-pagination-info.vue.d.ts +1 -1
  21. package/dist/squirrel/components/p-select-list/p-select-list.vue.d.ts +191 -1
  22. package/dist/squirrel/components/p-table/p-table.vue.d.ts +4 -1
  23. package/dist/squirrel.css +20 -20
  24. package/package.json +19 -19
  25. package/squirrel/components/p-dropdown/p-dropdown.vue +1 -0
  26. package/squirrel/components/p-loading/p-loading.vue +1 -1
  27. package/squirrel/components/p-modal/p-modal.vue +1 -1
  28. package/squirrel/components/p-select-btn/p-select-btn.spec.js +18 -0
  29. package/squirrel/components/p-select-btn/p-select-btn.vue +3 -3
@@ -488,7 +488,197 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
488
488
  topSectionClass: string;
489
489
  closePopperOnSelect: boolean;
490
490
  focusSearchOnMount: boolean;
491
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
491
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {
492
+ formControl: HTMLDivElement;
493
+ actionsContainer: HTMLDivElement;
494
+ inputSearch: import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
495
+ modelValue: {
496
+ type: StringConstructor;
497
+ default: string;
498
+ };
499
+ size: {
500
+ type: PropType<import("../..").InputSize>;
501
+ default: string;
502
+ validator(value: import("../..").InputSize): boolean;
503
+ };
504
+ showEnterIcon: {
505
+ type: BooleanConstructor;
506
+ default: boolean;
507
+ };
508
+ }>> & Readonly<{
509
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
510
+ onEnter?: ((...args: any[]) => any) | undefined;
511
+ }>, {}, {
512
+ query: string;
513
+ showEnterIconOnFocus: boolean;
514
+ }, {
515
+ searchIconClasses(): string;
516
+ enterIconClasses(): string;
517
+ clearIconClasses(): string;
518
+ }, {
519
+ clearSearch(): void;
520
+ keydownEnter(): void;
521
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "enter")[], import("vue").PublicProps, {
522
+ size: "sm" | "md" | "lg";
523
+ modelValue: string;
524
+ showEnterIcon: boolean;
525
+ }, true, {}, {}, {
526
+ PInput: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
527
+ modelValue: {
528
+ type: (StringConstructor | NumberConstructor)[];
529
+ default: string;
530
+ };
531
+ type: {
532
+ type: PropType<string>;
533
+ default: string;
534
+ validator(value: string): boolean;
535
+ };
536
+ label: {
537
+ type: StringConstructor;
538
+ default: string;
539
+ };
540
+ errorMsg: {
541
+ type: StringConstructor;
542
+ default: string;
543
+ };
544
+ required: {
545
+ type: BooleanConstructor;
546
+ default: boolean;
547
+ };
548
+ rounded: {
549
+ type: BooleanConstructor;
550
+ default: boolean;
551
+ };
552
+ }>, {}, {}, {
553
+ attrs(): {
554
+ [x: string]: unknown;
555
+ };
556
+ style(): StyleValue;
557
+ }, {}, import("vue").DefineComponent<import("vue").ExtractPropTypes<{
558
+ size: {
559
+ type: PropType<import("../..").InputSize>;
560
+ default: string;
561
+ validator(value: import("../..").InputSize): boolean;
562
+ };
563
+ errorMsg: {
564
+ type: StringConstructor;
565
+ default: string;
566
+ };
567
+ required: {
568
+ type: BooleanConstructor;
569
+ default: boolean;
570
+ };
571
+ rounded: {
572
+ type: BooleanConstructor;
573
+ default: boolean;
574
+ };
575
+ }>, {}, {
576
+ errorMsgClasses: string;
577
+ }, {
578
+ inputClasses(): string;
579
+ labelClasses(): string;
580
+ selectClasses(): string;
581
+ textareaClasses(): string;
582
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
583
+ size: {
584
+ type: PropType<import("../..").InputSize>;
585
+ default: string;
586
+ validator(value: import("../..").InputSize): boolean;
587
+ };
588
+ errorMsg: {
589
+ type: StringConstructor;
590
+ default: string;
591
+ };
592
+ required: {
593
+ type: BooleanConstructor;
594
+ default: boolean;
595
+ };
596
+ rounded: {
597
+ type: BooleanConstructor;
598
+ default: boolean;
599
+ };
600
+ }>> & Readonly<{}>, {
601
+ size: "sm" | "md" | "lg";
602
+ rounded: boolean;
603
+ required: boolean;
604
+ errorMsg: string;
605
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
606
+ modelValue: {
607
+ type: (StringConstructor | NumberConstructor)[];
608
+ default: string;
609
+ };
610
+ type: {
611
+ type: PropType<string>;
612
+ default: string;
613
+ validator(value: string): boolean;
614
+ };
615
+ label: {
616
+ type: StringConstructor;
617
+ default: string;
618
+ };
619
+ errorMsg: {
620
+ type: StringConstructor;
621
+ default: string;
622
+ };
623
+ required: {
624
+ type: BooleanConstructor;
625
+ default: boolean;
626
+ };
627
+ rounded: {
628
+ type: BooleanConstructor;
629
+ default: boolean;
630
+ };
631
+ }>> & Readonly<{
632
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
633
+ }>, {
634
+ type: string;
635
+ label: string;
636
+ rounded: boolean;
637
+ required: boolean;
638
+ modelValue: string | number;
639
+ errorMsg: string;
640
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
641
+ } & import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
642
+ P: {};
643
+ B: {};
644
+ D: {};
645
+ C: {};
646
+ M: {};
647
+ Defaults: {};
648
+ }, Readonly<import("vue").ExtractPropTypes<{
649
+ modelValue: {
650
+ type: StringConstructor;
651
+ default: string;
652
+ };
653
+ size: {
654
+ type: PropType<import("../..").InputSize>;
655
+ default: string;
656
+ validator(value: import("../..").InputSize): boolean;
657
+ };
658
+ showEnterIcon: {
659
+ type: BooleanConstructor;
660
+ default: boolean;
661
+ };
662
+ }>> & Readonly<{
663
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
664
+ onEnter?: ((...args: any[]) => any) | undefined;
665
+ }>, {}, {
666
+ query: string;
667
+ showEnterIconOnFocus: boolean;
668
+ }, {
669
+ searchIconClasses(): string;
670
+ enterIconClasses(): string;
671
+ clearIconClasses(): string;
672
+ }, {
673
+ clearSearch(): void;
674
+ keydownEnter(): void;
675
+ }, {
676
+ size: "sm" | "md" | "lg";
677
+ modelValue: string;
678
+ showEnterIcon: boolean;
679
+ }> | null;
680
+ virtualizerRef: HTMLDivElement;
681
+ }, any>;
492
682
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
493
683
  export default _default;
494
684
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -45,7 +45,10 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
45
45
  paddingTop: number;
46
46
  paddingBottom: number;
47
47
  };
48
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, HTMLDivElement>;
48
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
49
+ scrollWrapper: HTMLDivElement;
50
+ tbodyElement: HTMLTableSectionElement;
51
+ }, HTMLDivElement>;
49
52
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
50
53
  export default _default;
51
54
  type __VLS_WithTemplateSlots<T, S> = T & {
package/dist/squirrel.css CHANGED
@@ -339,12 +339,12 @@ to {
339
339
  .bg-info-circle-icon[data-v-804e74f5] {
340
340
  background-image: url("data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_4002_33291)'%3e%3cpath%20d='M0.5%206C0.5%207.45869%201.07946%208.85764%202.11091%209.88909C3.14236%2010.9205%204.54131%2011.5%206%2011.5C7.45869%2011.5%208.85764%2010.9205%209.88909%209.88909C10.9205%208.85764%2011.5%207.45869%2011.5%206C11.5%204.54131%2010.9205%203.14236%209.88909%202.11091C8.85764%201.07946%207.45869%200.5%206%200.5C4.54131%200.5%203.14236%201.07946%202.11091%202.11091C1.07946%203.14236%200.5%204.54131%200.5%206Z'%20stroke='%231A123B'%20stroke-miterlimit='10'/%3e%3cpath%20d='M6.5%203.5H5.5V2.5H6.5V3.5Z'%20fill='%231A123B'/%3e%3cpath%20d='M4.5%205H6V9M4.5%208.5H7.5'%20stroke='%231A123B'%20stroke-miterlimit='10'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_4002_33291'%3e%3crect%20width='12'%20height='12'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
341
341
  }
342
- .fadeInDown[data-v-b4ee3729] {
342
+ .fadeInDown[data-v-245e3308] {
343
343
  animation-duration: 0.4s;
344
344
  animation-fill-mode: both;
345
- animation-name: fadeInDown-b4ee3729;
345
+ animation-name: fadeInDown-245e3308;
346
346
  }
347
- @keyframes fadeInDown-b4ee3729 {
347
+ @keyframes fadeInDown-245e3308 {
348
348
  0% {
349
349
  opacity: 0;
350
350
  transform: translate3d(0, -100%, 0);
@@ -354,12 +354,12 @@ to {
354
354
  transform: none;
355
355
  }
356
356
  }
357
- .fadeOutUp[data-v-b4ee3729] {
357
+ .fadeOutUp[data-v-245e3308] {
358
358
  animation-duration: 0.25s;
359
359
  animation-fill-mode: both;
360
- animation-name: fadeOutUp-b4ee3729;
360
+ animation-name: fadeOutUp-245e3308;
361
361
  }
362
- @keyframes fadeOutUp-b4ee3729 {
362
+ @keyframes fadeOutUp-245e3308 {
363
363
  0% {
364
364
  opacity: 1;
365
365
  }
@@ -367,33 +367,33 @@ to {
367
367
  opacity: 0;
368
368
  transform: translate3d(0, -100%, 0);
369
369
  }
370
- }.pm[data-v-5fd440a3] {
370
+ }.pm[data-v-c3379c94] {
371
371
  width: calc(100% - 32px);
372
372
  min-width: 110px;
373
- max-width: var(--4895a587);
373
+ max-width: var(--9a05239e);
374
374
  max-height: calc(100vh - 32px);
375
375
  }
376
- .fadeIn[data-v-5fd440a3] {
376
+ .fadeIn[data-v-c3379c94] {
377
377
  animation-duration: 0.4s;
378
- animation-name: fadeInFrames-5fd440a3;
378
+ animation-name: fadeInFrames-c3379c94;
379
379
  animation-fill-mode: both;
380
380
  }
381
- .fadeOut[data-v-5fd440a3] {
381
+ .fadeOut[data-v-c3379c94] {
382
382
  animation-duration: 0.2s;
383
- animation-name: fadeOutFrames-5fd440a3;
383
+ animation-name: fadeOutFrames-c3379c94;
384
384
  animation-fill-mode: both;
385
385
  }
386
- .slideInTop[data-v-5fd440a3] {
386
+ .slideInTop[data-v-c3379c94] {
387
387
  animation-duration: 0.4s;
388
- animation-name: fadeInFrames-5fd440a3,slideInTopFrames-5fd440a3;
388
+ animation-name: fadeInFrames-c3379c94,slideInTopFrames-c3379c94;
389
389
  animation-fill-mode: both;
390
390
  }
391
- .slideOutTop[data-v-5fd440a3] {
391
+ .slideOutTop[data-v-c3379c94] {
392
392
  animation-duration: 0.2s;
393
- animation-name: fadeOutFrames-5fd440a3,slideOutTopFrames-5fd440a3;
393
+ animation-name: fadeOutFrames-c3379c94,slideOutTopFrames-c3379c94;
394
394
  animation-fill-mode: both;
395
395
  }
396
- @keyframes slideInTopFrames-5fd440a3 {
396
+ @keyframes slideInTopFrames-c3379c94 {
397
397
  from {
398
398
  transform: translate(0, -12px);
399
399
  animation-timing-function: cubic-bezier(0, 0, 0, 1);
@@ -402,7 +402,7 @@ to {
402
402
  transform: translate(0, 0);
403
403
  }
404
404
  }
405
- @keyframes slideOutTopFrames-5fd440a3 {
405
+ @keyframes slideOutTopFrames-c3379c94 {
406
406
  from {
407
407
  transform: translate(0, 0);
408
408
  animation-timing-function: cubic-bezier(0.33, 0, 0.67, 1);
@@ -411,7 +411,7 @@ to {
411
411
  transform: translate(0, -12px);
412
412
  }
413
413
  }
414
- @keyframes fadeInFrames-5fd440a3 {
414
+ @keyframes fadeInFrames-c3379c94 {
415
415
  from {
416
416
  opacity: 0;
417
417
  animation-timing-function: cubic-bezier(0, 0, 1, 1);
@@ -420,7 +420,7 @@ to {
420
420
  opacity: 1;
421
421
  }
422
422
  }
423
- @keyframes fadeOutFrames-5fd440a3 {
423
+ @keyframes fadeOutFrames-c3379c94 {
424
424
  from {
425
425
  opacity: 1;
426
426
  animation-timing-function: cubic-bezier(0.33, 0, 0.67, 1);
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@pequity/squirrel",
3
3
  "description": "Squirrel component library",
4
- "version": "6.0.3",
5
- "packageManager": "pnpm@9.15.0",
4
+ "version": "6.0.5",
5
+ "packageManager": "pnpm@9.15.3",
6
6
  "type": "module",
7
7
  "scripts": {
8
8
  "preinstall": "npx only-allow pnpm",
@@ -37,7 +37,7 @@
37
37
  "module": "./dist/es/index.js",
38
38
  "peerDependencies": {
39
39
  "@tanstack/vue-virtual": "^3.8.3",
40
- "@vuepic/vue-datepicker": "^10.0.0",
40
+ "@vuepic/vue-datepicker": "^11.0.1",
41
41
  "dayjs": "^1.11.12",
42
42
  "floating-vue": "^5.2.2",
43
43
  "lodash-es": "^4.17.21",
@@ -49,7 +49,7 @@
49
49
  "devDependencies": {
50
50
  "@commitlint/cli": "^19.6.1",
51
51
  "@commitlint/config-conventional": "^19.6.0",
52
- "@pequity/eslint-config": "^1.0.3",
52
+ "@pequity/eslint-config": "^1.0.4",
53
53
  "@playwright/test": "^1.49.1",
54
54
  "@semantic-release/changelog": "^6.0.3",
55
55
  "@semantic-release/git": "^10.0.1",
@@ -61,48 +61,48 @@
61
61
  "@storybook/blocks": "^8.4.7",
62
62
  "@storybook/manager-api": "^8.4.7",
63
63
  "@storybook/test": "^8.4.7",
64
- "@storybook/test-runner": "^0.20.1",
64
+ "@storybook/test-runner": "^0.21.0",
65
65
  "@storybook/theming": "^8.4.7",
66
66
  "@storybook/vue3": "^8.4.7",
67
67
  "@storybook/vue3-vite": "^8.4.7",
68
68
  "@tanstack/vue-virtual": "3.11.2",
69
69
  "@types/jsdom": "^21.1.7",
70
70
  "@types/lodash-es": "^4.17.12",
71
- "@types/node": "^22.10.2",
71
+ "@types/node": "^22.10.5",
72
72
  "@vitejs/plugin-vue": "^5.2.1",
73
73
  "@vitest/coverage-v8": "^2.1.8",
74
74
  "@vue/compiler-sfc": "3.5.13",
75
75
  "@vue/test-utils": "^2.4.6",
76
- "@vuepic/vue-datepicker": "10.0.0",
76
+ "@vuepic/vue-datepicker": "11.0.1",
77
77
  "autoprefixer": "^10.4.20",
78
78
  "dayjs": "1.11.13",
79
79
  "eslint": "^9.17.0",
80
- "eslint-plugin-storybook": "^0.11.1",
80
+ "eslint-plugin-storybook": "^0.11.2",
81
81
  "floating-vue": "5.2.2",
82
- "glob": "^11.0.0",
82
+ "glob": "^11.0.1",
83
83
  "husky": "^9.1.7",
84
- "iconify-icon": "^2.2.0",
85
- "jsdom": "^25.0.1",
86
- "lint-staged": "^15.2.11",
84
+ "iconify-icon": "^2.3.0",
85
+ "jsdom": "^26.0.0",
86
+ "lint-staged": "^15.3.0",
87
87
  "lodash-es": "4.17.21",
88
88
  "make-coverage-badge": "^1.2.0",
89
89
  "postcss": "^8.4.49",
90
- "prettier": "^3.3.3",
90
+ "prettier": "^3.4.2",
91
91
  "prettier-plugin-tailwindcss": "^0.6.9",
92
92
  "resolve-tspaths": "^0.8.23",
93
93
  "rimraf": "^6.0.1",
94
- "sass": "^1.83.0",
95
- "semantic-release": "^24.2.0",
94
+ "sass": "^1.83.1",
95
+ "semantic-release": "^24.2.1",
96
96
  "storybook": "^8.4.7",
97
97
  "svgo": "^3.3.2",
98
- "tailwindcss": "^3.4.16",
99
- "typescript": "5.6.3",
100
- "vite": "^6.0.3",
98
+ "tailwindcss": "^3.4.17",
99
+ "typescript": "5.7.3",
100
+ "vite": "^6.0.7",
101
101
  "vitest": "^2.1.8",
102
102
  "vue": "3.5.13",
103
103
  "vue-currency-input": "3.1.0",
104
104
  "vue-router": "4.5.0",
105
105
  "vue-toastification": "2.0.0-rc.5",
106
- "vue-tsc": "2.1.10"
106
+ "vue-tsc": "2.2.0"
107
107
  }
108
108
  }
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <VDropdown ref="vPopper" v-bind="{ ...defaultAttrs, ...$attrs }" @show="onShow" @hide="destroy">
3
+ <!-- @vue-expect-error -->
3
4
  <template v-for="(_, slot) in $slots" #[slot]="scope">
4
5
  <slot :name="slot" v-bind="scope || {}" />
5
6
  </template>
@@ -3,7 +3,7 @@
3
3
  <Transition name="pm-backdrop-transition" enter-active-class="fadeInDown" leave-active-class="fadeOutUp">
4
4
  <div
5
5
  v-if="show"
6
- class="fixed left-0 top-0 z-[120] flex w-full justify-center"
6
+ class="fixed left-0 top-0 z-[9999] flex w-full justify-center"
7
7
  aria-live="polite"
8
8
  aria-busy="true"
9
9
  >
@@ -60,7 +60,7 @@
60
60
  </div>
61
61
  </slot>
62
62
  <slot name="footer-wrapper">
63
- <div v-if="$slots['footer']" class="px-8 pt-6">
63
+ <div v-if="$slots.footer" class="px-8 pt-6">
64
64
  <slot name="footer"></slot>
65
65
  </div>
66
66
  </slot>
@@ -176,6 +176,24 @@ describe('PSelectBtn.vue', () => {
176
176
  });
177
177
  });
178
178
 
179
+ it('does not add rounded classes when there is only one item', async () => {
180
+ const singleItem = [{ textCustom: 'Option 1', valueCustom: 1 }];
181
+ const wrapper = createWrapperFor(PSelectBtn, {
182
+ props: {
183
+ items: singleItem,
184
+ itemValue: 'valueCustom',
185
+ itemText: 'textCustom',
186
+ modelValue: 1,
187
+ },
188
+ });
189
+
190
+ const button = await wrapper.find('button');
191
+ const roundedClasses = ['rounded-none', 'rounded-br-none', 'rounded-tr-none', 'rounded-bl-none', 'rounded-tl-none'];
192
+ roundedClasses.forEach((className) => {
193
+ expect(button.classes()).not.toContain(className);
194
+ });
195
+ });
196
+
179
197
  it('renders full-width buttons', async () => {
180
198
  const wrapper = createWrapperFor(PSelectBtn, {
181
199
  props: {
@@ -11,9 +11,9 @@
11
11
  type="secondary-outline-blue"
12
12
  :disabled="item.disabled"
13
13
  :class="{
14
- 'rounded-none': index !== 0 && index !== items.length - 1,
15
- 'rounded-br-none rounded-tr-none': index === 0,
16
- 'rounded-bl-none rounded-tl-none': index === items.length - 1,
14
+ 'rounded-none': index !== 0 && index !== items.length - 1 && items.length > 1,
15
+ 'rounded-br-none rounded-tr-none': index === 0 && items.length > 1,
16
+ 'rounded-bl-none rounded-tl-none': index === items.length - 1 && items.length > 1,
17
17
  '-mr-0.5': index !== items.length - 1,
18
18
  'flex-1': grow,
19
19
  }"