@quidgest/ui 0.14.4 → 0.14.6

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 (52) hide show
  1. package/README.md +4 -4
  2. package/dist/manifest/components.json +3 -0
  3. package/dist/ui.css +294 -19
  4. package/dist/ui.esm.js +1413 -1168
  5. package/dist/ui.js +6 -6
  6. package/dist/ui.min.css +1 -1
  7. package/dist/ui.min.js +198 -184
  8. package/dist/ui.scss +313 -21
  9. package/esm/components/QAccordion/QAccordion.d.ts +26 -0
  10. package/esm/components/QAccordion/QAccordion.d.ts.map +1 -0
  11. package/esm/components/QAccordion/QAccordion.vue.js +27 -0
  12. package/esm/components/QAccordion/QAccordion.vue2.js +4 -0
  13. package/esm/components/QAccordion/index.d.ts +4 -0
  14. package/esm/components/QAccordion/index.d.ts.map +1 -0
  15. package/esm/components/QAccordion/index.js +6 -0
  16. package/esm/components/QAccordion/types.d.ts +7 -0
  17. package/esm/components/QAccordion/types.d.ts.map +1 -0
  18. package/esm/components/QCard/QCard.d.ts +34 -0
  19. package/esm/components/QCard/QCard.d.ts.map +1 -0
  20. package/esm/components/QCard/QCard.vue.js +132 -0
  21. package/esm/components/QCard/QCard.vue2.js +4 -0
  22. package/esm/components/QCard/index.d.ts +6 -0
  23. package/esm/components/QCard/index.d.ts.map +1 -0
  24. package/esm/components/QCard/index.js +6 -0
  25. package/esm/components/QCard/types.d.ts +44 -0
  26. package/esm/components/QCard/types.d.ts.map +1 -0
  27. package/esm/components/QCollapsible/QCollapsible.d.ts +35 -0
  28. package/esm/components/QCollapsible/QCollapsible.d.ts.map +1 -0
  29. package/esm/components/QCollapsible/QCollapsible.vue.js +143 -0
  30. package/esm/components/QCollapsible/QCollapsible.vue2.js +4 -0
  31. package/esm/components/QCollapsible/index.d.ts +6 -0
  32. package/esm/components/QCollapsible/index.d.ts.map +1 -0
  33. package/esm/components/QCollapsible/index.js +6 -0
  34. package/esm/components/QCollapsible/types.d.ts +43 -0
  35. package/esm/components/QCollapsible/types.d.ts.map +1 -0
  36. package/esm/components/QCollapsible/types.js +8 -0
  37. package/esm/components/QCombobox/QCombobox.d.ts +9 -9
  38. package/esm/components/QCombobox/QCombobox.d.ts.map +1 -1
  39. package/esm/components/QIcon/QIconFont.d.ts +1 -1
  40. package/esm/components/QSelect/QSelect.d.ts.map +1 -1
  41. package/esm/components/QSkeletonLoader/QSkeletonLoader.d.ts +1 -1
  42. package/esm/components/QTextField/QTextField.d.ts +1 -1
  43. package/esm/components/QTextField/QTextField.d.ts.map +1 -1
  44. package/esm/components/QTooltip/QTooltip.d.ts +1 -1
  45. package/esm/components/index.d.ts +3 -0
  46. package/esm/components/index.d.ts.map +1 -1
  47. package/esm/components/index.js +56 -50
  48. package/esm/composables/group.d.ts +16 -0
  49. package/esm/composables/group.d.ts.map +1 -0
  50. package/esm/composables/group.js +34 -0
  51. package/esm/index.d.ts +3 -0
  52. package/package.json +30 -27
package/README.md CHANGED
@@ -4,10 +4,10 @@ Quidgest's UI framework.
4
4
 
5
5
  ## Features
6
6
 
7
- - A collection of customizable and reusable Vue 3 components.
8
- - Written in TypeScript for type safety and better developer experience.
9
- - Easily style components using SCSS.
10
- - Documentation and examples.
7
+ - A collection of customizable and reusable Vue 3 components.
8
+ - Written in TypeScript for type safety and better developer experience.
9
+ - Easily style components using SCSS.
10
+ - Documentation and examples.
11
11
 
12
12
  ## Install
13
13
 
@@ -1,9 +1,12 @@
1
1
  [
2
+ "QAccordion",
2
3
  "QBadge",
3
4
  "QButton",
4
5
  "QButtonGroup",
5
6
  "QButtonToggle",
7
+ "QCard",
6
8
  "QCheckbox",
9
+ "QCollapsible",
7
10
  "QCombobox",
8
11
  "QDialog",
9
12
  "QField",
package/dist/ui.css CHANGED
@@ -231,6 +231,10 @@ summary {
231
231
  }
232
232
 
233
233
  /* global settings */
234
+ :root {
235
+ --border-radius: 0.25rem;
236
+ }
237
+
234
238
  *,
235
239
  ::after,
236
240
  ::before {
@@ -253,11 +257,11 @@ body *::-webkit-scrollbar {
253
257
  }
254
258
  body *::-webkit-scrollbar-thumb {
255
259
  background-color: var(--q-theme-neutral-light);
256
- border-radius: 0.25rem;
260
+ border-radius: var(--border-radius);
257
261
  }
258
262
  body *::-webkit-scrollbar-track {
259
263
  background-color: rgb(var(--q-theme-neutral-light-rgb)/0.25);
260
- border-radius: 0.25rem;
264
+ border-radius: var(--border-radius);
261
265
  }
262
266
 
263
267
  .fade-enter-from,
@@ -276,11 +280,17 @@ body *::-webkit-scrollbar-track {
276
280
  }
277
281
 
278
282
  /* Components */
283
+ .q-accordion {
284
+ display: flex;
285
+ flex-direction: column;
286
+ gap: 0.25rem;
287
+ }
288
+
279
289
  .q-badge {
280
290
  display: inline-flex;
281
291
  border-width: 1px;
282
292
  border-color: transparent;
283
- border-radius: 0.25rem;
293
+ border-radius: var(--border-radius);
284
294
  padding: 0.25em 0.5em;
285
295
  line-height: 1rem;
286
296
  font-size: 0.75rem;
@@ -402,7 +412,7 @@ body *::-webkit-scrollbar-track {
402
412
  user-select: none;
403
413
  -webkit-user-select: none;
404
414
  -moz-user-select: none;
405
- border-radius: 0.25rem;
415
+ border-radius: var(--border-radius);
406
416
  transition-property: color, background-color, border-color, box-shadow, text-decoration-color, fill, stroke;
407
417
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
408
418
  transition-duration: 0.15s;
@@ -524,7 +534,7 @@ body *::-webkit-scrollbar-track {
524
534
  --box-shadow-tint: 0 0 0;
525
535
  position: relative;
526
536
  display: inline-flex;
527
- border-radius: 0.25rem;
537
+ border-radius: var(--border-radius);
528
538
  }
529
539
  .q-btn-group--elevated {
530
540
  --box-shadow-tint: var(--q-theme-primary-rgb);
@@ -547,6 +557,138 @@ body *::-webkit-scrollbar-track {
547
557
  z-index: 3;
548
558
  }
549
559
 
560
+ .q-card {
561
+ --card-base-padding: 1rem;
562
+ --card-padding: 1rem;
563
+ --card-border: 1px solid var(--q-theme-neutral-light);
564
+ --card-width: fit-content;
565
+ --card-hover: 0 5px 15px rgb(var(--q-theme-neutral-rgb) / 0.25);
566
+ --card-scale: 1;
567
+ --card-shadow: none;
568
+ --card-background: var(--q-theme-container);
569
+ min-height: 5rem;
570
+ min-width: 7rem;
571
+ border: var(--card-border);
572
+ border-radius: var(--border-radius);
573
+ background-color: var(--card-background);
574
+ width: var(--card-width);
575
+ overflow: hidden;
576
+ display: flex;
577
+ flex-direction: column;
578
+ box-shadow: var(--card-shadow);
579
+ transform: scale(var(--card-scale));
580
+ transition: box-shadow 0.2s ease-in-out, transform 0.2s cubic-bezier(0.155, 1.105, 0.295, 1.12);
581
+ }
582
+ .q-card__header {
583
+ display: flex;
584
+ flex: 1;
585
+ flex-direction: column;
586
+ padding-bottom: var(--card-base-padding);
587
+ }
588
+ .q-card__header-content {
589
+ display: flex;
590
+ gap: 0.5rem;
591
+ padding: var(--card-padding);
592
+ padding-top: var(--card-base-padding);
593
+ padding-bottom: 0;
594
+ }
595
+ .q-card__header-text {
596
+ display: flex;
597
+ flex-direction: column;
598
+ flex: 1;
599
+ }
600
+ .q-card__title {
601
+ width: 100%;
602
+ margin: 0;
603
+ font-size: 1.05rem;
604
+ line-height: 1rem;
605
+ letter-spacing: 0.02rem;
606
+ font-weight: 600;
607
+ }
608
+ .q-card__subtitle {
609
+ width: 100%;
610
+ margin: 0;
611
+ font-size: 0.75rem;
612
+ color: var(--q-theme-neutral);
613
+ padding-top: 0.3rem;
614
+ }
615
+ .q-card__content {
616
+ padding: var(--card-padding);
617
+ padding-top: 0;
618
+ padding-bottom: var(--card-base-padding);
619
+ display: flex;
620
+ }
621
+ .q-card--elevation-low {
622
+ --card-shadow: 0 4px 6px rgb(var(--q-theme-neutral-dark-rgb) / 0.15);
623
+ }
624
+ .q-card--elevation-medium {
625
+ --card-shadow: 0 6px 9px rgb(var(--q-theme-neutral-dark-rgb) / 0.2);
626
+ }
627
+ .q-card--elevation-high {
628
+ --card-shadow: 0 8px 12px rgb(var(--q-theme-neutral-dark-rgb) / 0.25);
629
+ }
630
+ .q-card--background {
631
+ --card-background: rgb(var(--q-theme-primary-light-rgb) / 0.5);
632
+ }
633
+ .q-card--background .q-field__control {
634
+ background-color: var(--q-theme-container);
635
+ }
636
+ .q-card--title-background .q-card__header-content {
637
+ background-color: rgb(var(--q-theme-neutral-light-rgb)/0.25);
638
+ padding-bottom: 0.75rem;
639
+ }
640
+ .q-card--title-background .q-card__title {
641
+ color: var(--q-theme-neutral-dark);
642
+ font-size: 1.1rem;
643
+ letter-spacing: unset;
644
+ text-transform: unset;
645
+ font-weight: 700;
646
+ }
647
+ .q-card--minor .q-card__title {
648
+ font-size: 0.9rem;
649
+ text-transform: unset;
650
+ font-weight: 600;
651
+ color: var(--q-theme-neutral);
652
+ }
653
+ .q-card--minor .q-card__subtitle {
654
+ font-size: 0.75rem;
655
+ color: rgb(var(--q-theme-neutral-rgb)/0.8);
656
+ }
657
+ .q-card--borderless {
658
+ --card-border: 1px solid transparent;
659
+ }
660
+ .q-card--clickable {
661
+ text-decoration: none;
662
+ color: inherit;
663
+ }
664
+ .q-card--clickable:not(.q-card--disabled) {
665
+ cursor: pointer;
666
+ }
667
+ .q-card--clickable:not(.q-card--disabled):hover {
668
+ --card-scale: 1.01;
669
+ --card-shadow: var(--card-hover);
670
+ }
671
+ .q-card--loading {
672
+ padding: 3rem 5rem;
673
+ justify-content: center;
674
+ align-items: center;
675
+ }
676
+ .q-card--medium {
677
+ --card-width: calc(3 * 5em + 2 * 0.25rem);
678
+ }
679
+ .q-card--large {
680
+ --card-width: calc(4 * 5em + 3 * 0.25rem);
681
+ }
682
+ .q-card--xlarge {
683
+ --card-width: calc(6 * 5em + 5 * 0.25rem);
684
+ }
685
+ .q-card--xxlarge {
686
+ --card-width: calc(8 * 5em + 7 * 0.25rem);
687
+ }
688
+ .q-card--block {
689
+ --card-width: 100%;
690
+ }
691
+
550
692
  .q-checkbox {
551
693
  --box-size: 1.15rem;
552
694
  --icon-color: var(--q-theme-on-primary);
@@ -566,7 +708,7 @@ body *::-webkit-scrollbar-track {
566
708
  width: var(--box-size);
567
709
  height: var(--box-size);
568
710
  border: 1px solid var(--q-theme-neutral-light);
569
- border-radius: 0.25rem;
711
+ border-radius: var(--border-radius);
570
712
  padding: 0;
571
713
  transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
572
714
  background-color: transparent;
@@ -649,6 +791,139 @@ body *::-webkit-scrollbar-track {
649
791
  transition: none;
650
792
  }
651
793
  }
794
+ .q-collapsible {
795
+ display: flex;
796
+ flex-direction: column;
797
+ word-wrap: break-word;
798
+ background-color: var(--q-theme-container);
799
+ border-width: 1px;
800
+ border-radius: var(--border-radius);
801
+ position: relative;
802
+ max-width: 100%;
803
+ min-height: 0;
804
+ }
805
+ .q-collapsible .q-collapsible__chevron {
806
+ transition: all 0.2s;
807
+ font-weight: 600;
808
+ }
809
+ .q-collapsible .q-collapsible__chevron:hover, .q-collapsible .q-collapsible__chevron:focus {
810
+ cursor: pointer;
811
+ opacity: 1;
812
+ }
813
+ .q-collapsible:not(.q-collapsible--borderless) .q-collapsible__chevron-right {
814
+ position: absolute;
815
+ right: 0;
816
+ }
817
+ .q-collapsible--expanded .q-collapsible__chevron {
818
+ transform: rotate(-180deg);
819
+ }
820
+ .q-collapsible .q-card__content {
821
+ padding: 0;
822
+ }
823
+ .q-collapsible .q-card__header {
824
+ padding-bottom: 0;
825
+ }
826
+ .q-collapsible__header {
827
+ display: flex;
828
+ position: relative;
829
+ width: 100%;
830
+ margin: 0;
831
+ border-bottom: 1px solid var(--q-theme-neutral-light);
832
+ overflow: hidden;
833
+ gap: 0;
834
+ justify-content: start;
835
+ align-items: flex-start;
836
+ flex-direction: column;
837
+ padding: 0.55rem;
838
+ }
839
+ .q-collapsible__btn {
840
+ width: 100%;
841
+ margin: 0;
842
+ padding: 0;
843
+ }
844
+ .q-collapsible__btn .q-btn__content {
845
+ width: 100%;
846
+ gap: 0;
847
+ padding: 0.2rem;
848
+ display: flex;
849
+ flex-direction: column;
850
+ align-items: start;
851
+ letter-spacing: 0.02rem;
852
+ color: var(--q-theme-on-background);
853
+ }
854
+ .q-collapsible__btn .q-btn__content h4 {
855
+ margin: 0;
856
+ }
857
+ .q-collapsible__title {
858
+ display: flex;
859
+ width: 100%;
860
+ gap: 0.2rem;
861
+ position: relative;
862
+ text-align: start;
863
+ align-items: center;
864
+ padding: 0;
865
+ }
866
+ .q-collapsible__title-text {
867
+ font-weight: 600;
868
+ }
869
+ .q-collapsible__subtitle {
870
+ margin-left: 1.25rem;
871
+ text-align: start;
872
+ line-height: 0.75rem;
873
+ font-size: 0.75rem;
874
+ text-decoration: none;
875
+ white-space: nowrap;
876
+ color: var(--q-theme-neutral);
877
+ padding: 0;
878
+ padding-top: 0.3rem;
879
+ }
880
+ .q-collapsible__content {
881
+ padding: 1rem;
882
+ padding-top: 0.75rem;
883
+ }
884
+ .q-collapsible__content-wrapper {
885
+ display: grid;
886
+ grid-template-rows: 0fr;
887
+ transition: 0.5s;
888
+ }
889
+ .q-collapsible__content-wrapper:not(.q-collapsible__content-show) {
890
+ pointer-events: none;
891
+ visibility: hidden;
892
+ }
893
+ .q-collapsible__content-inner {
894
+ overflow: hidden;
895
+ overflow-x: inherit;
896
+ }
897
+ .q-collapsible__content-show {
898
+ grid-template-rows: 1fr;
899
+ }
900
+ .q-collapsible--border-bottom {
901
+ border-radius: 0;
902
+ border: 0;
903
+ border-bottom: 1px solid var(--q-theme-neutral-light);
904
+ }
905
+ .q-collapsible--border-bottom .q-collapsible__header {
906
+ border: 0;
907
+ }
908
+ .q-collapsible--required {
909
+ margin-top: -0.3rem;
910
+ margin-left: 0.1rem;
911
+ font-weight: 700;
912
+ color: var(--q-theme-danger);
913
+ }
914
+ .q-collapsible--icon-right:not(.q-collapsible--borderless) .q-collapsible__title .q-icon {
915
+ margin: 0 0 0 auto;
916
+ }
917
+ .q-collapsible--icon-right .q-collapsible__subtitle {
918
+ margin-left: 0;
919
+ }
920
+ .q-collapsible--loose .q-collapsible__header {
921
+ padding: calc(0.55rem + 0.25rem);
922
+ }
923
+ .q-collapsible--compact .q-collapsible__header {
924
+ padding: calc(0.55rem + -0.25rem);
925
+ }
926
+
652
927
  .q-combobox:not(.q-combobox--disabled) .q-combobox__clear:hover, .q-combobox:not(.q-combobox--disabled) .q-combobox__clear:focus,
653
928
  .q-combobox:not(.q-combobox--disabled) .q-combobox__chevron:hover,
654
929
  .q-combobox:not(.q-combobox--disabled) .q-combobox__chevron:focus {
@@ -727,7 +1002,7 @@ body *::-webkit-scrollbar-track {
727
1002
  .q-field {
728
1003
  display: flex;
729
1004
  flex-direction: column;
730
- border-radius: 0.25rem;
1005
+ border-radius: var(--border-radius);
731
1006
  width: -moz-fit-content;
732
1007
  width: fit-content;
733
1008
  }
@@ -822,12 +1097,12 @@ body *::-webkit-scrollbar-track {
822
1097
  }
823
1098
 
824
1099
  .q-input-group__prepend > :first-child {
825
- border-top-left-radius: 0.25rem;
826
- border-bottom-left-radius: 0.25rem;
1100
+ border-top-left-radius: var(--border-radius);
1101
+ border-bottom-left-radius: var(--border-radius);
827
1102
  }
828
1103
  .q-input-group__append > :last-child {
829
- border-top-right-radius: 0.25rem;
830
- border-bottom-right-radius: 0.25rem;
1104
+ border-top-right-radius: var(--border-radius);
1105
+ border-bottom-right-radius: var(--border-radius);
831
1106
  }
832
1107
  .q-input-group__prepend, .q-input-group__append {
833
1108
  display: flex;
@@ -870,12 +1145,12 @@ body *::-webkit-scrollbar-track {
870
1145
  z-index: 2;
871
1146
  }
872
1147
  .q-input-group > .q-field__control > :first-child {
873
- border-top-left-radius: 0.25rem;
874
- border-bottom-left-radius: 0.25rem;
1148
+ border-top-left-radius: var(--border-radius);
1149
+ border-bottom-left-radius: var(--border-radius);
875
1150
  }
876
1151
  .q-input-group > .q-field__control > :last-child {
877
- border-top-right-radius: 0.25rem;
878
- border-bottom-right-radius: 0.25rem;
1152
+ border-top-right-radius: var(--border-radius);
1153
+ border-bottom-right-radius: var(--border-radius);
879
1154
  }
880
1155
  .q-input-group > .q-field__control > * + * {
881
1156
  margin-left: -1px;
@@ -924,7 +1199,7 @@ body *::-webkit-scrollbar-track {
924
1199
  padding: 0;
925
1200
  -webkit-overflow-scrolling: touch;
926
1201
  width: 100%;
927
- border-radius: 0.25rem;
1202
+ border-radius: var(--border-radius);
928
1203
  }
929
1204
 
930
1205
  .q-list-item-group {
@@ -959,7 +1234,7 @@ body *::-webkit-scrollbar-track {
959
1234
  word-wrap: break-word;
960
1235
  -webkit-touch-callout: none;
961
1236
  width: inherit;
962
- border-radius: 0.25rem;
1237
+ border-radius: var(--border-radius);
963
1238
  outline: none;
964
1239
  }
965
1240
  .q-list-item:hover {
@@ -1039,7 +1314,7 @@ body *::-webkit-scrollbar-track {
1039
1314
  background-color: var(--q-overlay-bg);
1040
1315
  color: var(--q-overlay-color);
1041
1316
  border: 1px solid var(--q-overlay-border-color);
1042
- border-radius: 0.25rem;
1317
+ border-radius: var(--border-radius);
1043
1318
  outline: none;
1044
1319
  box-shadow: 0 0 rgba(0, 0, 0, 0), 0 0 rgba(0, 0, 0, 0), 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
1045
1320
  }
@@ -1281,7 +1556,7 @@ body *::-webkit-scrollbar-track {
1281
1556
  overflow: hidden;
1282
1557
  background-color: var(--q-theme-neutral-light);
1283
1558
  animation: fadeIn 1s;
1284
- border-radius: 0.25rem;
1559
+ border-radius: var(--border-radius);
1285
1560
  }
1286
1561
  .q-skeleton-loader__bone::after {
1287
1562
  position: absolute;