@bagelink/vue 0.0.712 → 0.0.714

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 (171) hide show
  1. package/dist/components/Accordion.d.ts +12 -0
  2. package/dist/components/Accordion.d.ts.map +1 -0
  3. package/dist/components/AccordionItem.d.ts +34 -0
  4. package/dist/components/AccordionItem.d.ts.map +1 -0
  5. package/dist/components/Alert.d.ts +34 -0
  6. package/dist/components/Alert.d.ts.map +1 -0
  7. package/dist/components/Avatar.d.ts +36 -0
  8. package/dist/components/Avatar.d.ts.map +1 -0
  9. package/dist/components/Badge.d.ts +22 -0
  10. package/dist/components/Badge.d.ts.map +1 -0
  11. package/dist/components/BglVideo.d.ts +20 -0
  12. package/dist/components/BglVideo.d.ts.map +1 -0
  13. package/dist/components/Btn.d.ts +99 -0
  14. package/dist/components/Btn.d.ts.map +1 -0
  15. package/dist/components/Card.d.ts +39 -0
  16. package/dist/components/Card.d.ts.map +1 -0
  17. package/dist/components/Carousel.d.ts +74 -0
  18. package/dist/components/Carousel.d.ts.map +1 -0
  19. package/dist/components/ComboBox.vue.d.ts +3 -3
  20. package/dist/components/Comments.vue.d.ts +2 -2
  21. package/dist/components/ContactSubmissions.vue.d.ts +2 -2
  22. package/dist/components/DataPreview.d.ts +42 -0
  23. package/dist/components/DataPreview.d.ts.map +1 -0
  24. package/dist/components/Drop.vue.d.ts +34 -0
  25. package/dist/components/Drop.vue.d.ts.map +1 -0
  26. package/dist/components/DropDown.vue.d.ts +3 -3
  27. package/dist/components/FileUploader.vue.d.ts +60 -0
  28. package/dist/components/FileUploader.vue.d.ts.map +1 -0
  29. package/dist/components/Flag.d.ts +20 -0
  30. package/dist/components/Flag.d.ts.map +1 -0
  31. package/dist/components/FormSchema.vue.d.ts +5 -4
  32. package/dist/components/LangText.vue.d.ts +2 -2
  33. package/dist/components/ListItem.d.ts +34 -0
  34. package/dist/components/ListItem.d.ts.map +1 -0
  35. package/dist/components/ListItem.vue.d.ts.map +1 -1
  36. package/dist/components/ListView.d.ts +13 -0
  37. package/dist/components/ListView.d.ts.map +1 -0
  38. package/dist/components/MapEmbed.d.ts +3 -0
  39. package/dist/components/MapEmbed.d.ts.map +1 -0
  40. package/dist/components/MaterialIcon.d.ts +26 -0
  41. package/dist/components/MaterialIcon.d.ts.map +1 -0
  42. package/dist/components/Modal.d.ts +46 -0
  43. package/dist/components/Modal.d.ts.map +1 -0
  44. package/dist/components/ModalBglForm.vue.d.ts +21 -20
  45. package/dist/components/ModalConfirm.d.ts +24 -0
  46. package/dist/components/ModalConfirm.d.ts.map +1 -0
  47. package/dist/components/ModalForm.d.ts +78 -0
  48. package/dist/components/ModalForm.d.ts.map +1 -0
  49. package/dist/components/NavBar.d.ts +64 -0
  50. package/dist/components/NavBar.d.ts.map +1 -0
  51. package/dist/components/PageTitle.d.ts +24 -0
  52. package/dist/components/PageTitle.d.ts.map +1 -0
  53. package/dist/components/PersonPreview.vue.d.ts +5 -4
  54. package/dist/components/PersonPreviewFormkit.vue.d.ts +4 -3
  55. package/dist/components/RTXEditor.vue.d.ts +3 -3
  56. package/dist/components/RouterWrapper.d.ts +3 -0
  57. package/dist/components/RouterWrapper.d.ts.map +1 -0
  58. package/dist/components/TabbedLayout.vue.d.ts +5 -4
  59. package/dist/components/TableSchema.d.ts +35 -0
  60. package/dist/components/TableSchema.d.ts.map +1 -0
  61. package/dist/components/Title.d.ts +42 -0
  62. package/dist/components/Title.d.ts.map +1 -0
  63. package/dist/components/TopBar.d.ts +12 -0
  64. package/dist/components/TopBar.d.ts.map +1 -0
  65. package/dist/components/charts/BarChart.vue.d.ts +2 -2
  66. package/dist/components/dashboard/Lineart.d.ts +20 -0
  67. package/dist/components/dashboard/Lineart.d.ts.map +1 -0
  68. package/dist/components/form/BglField.d.ts +25 -0
  69. package/dist/components/form/BglField.d.ts.map +1 -0
  70. package/dist/components/form/BglForm.d.ts +75 -0
  71. package/dist/components/form/BglForm.d.ts.map +1 -0
  72. package/dist/components/form/ItemRef.vue.d.ts +5 -3
  73. package/dist/components/form/ItemRef.vue.d.ts.map +1 -1
  74. package/dist/components/form/MaterialIcon.vue.d.ts +4 -3
  75. package/dist/components/form/PlainInputField.vue.d.ts +3 -3
  76. package/dist/components/form/inputs/CheckInput.d.ts +56 -0
  77. package/dist/components/form/inputs/CheckInput.d.ts.map +1 -0
  78. package/dist/components/form/inputs/Checkbox.d.ts +16 -0
  79. package/dist/components/form/inputs/Checkbox.d.ts.map +1 -0
  80. package/dist/components/form/inputs/ColorPicker.d.ts +48 -0
  81. package/dist/components/form/inputs/ColorPicker.d.ts.map +1 -0
  82. package/dist/components/form/inputs/CurrencyInput.vue.d.ts +3 -3
  83. package/dist/components/form/inputs/DateInput.d.ts +64 -0
  84. package/dist/components/form/inputs/DateInput.d.ts.map +1 -0
  85. package/dist/components/form/inputs/DatePicker.d.ts +33 -0
  86. package/dist/components/form/inputs/DatePicker.d.ts.map +1 -0
  87. package/dist/components/form/inputs/DatetimeInput.vue.d.ts +3 -3
  88. package/dist/components/form/inputs/DurationInput.vue.d.ts +3 -3
  89. package/dist/components/form/inputs/DynamicLinkField.vue.d.ts +3 -3
  90. package/dist/components/form/inputs/EmailInput.vue.d.ts +3 -3
  91. package/dist/components/form/inputs/FileUpload.d.ts +108 -0
  92. package/dist/components/form/inputs/FileUpload.d.ts.map +1 -0
  93. package/dist/components/form/inputs/FileUpload.vue.d.ts +6 -0
  94. package/dist/components/form/inputs/FileUpload.vue.d.ts.map +1 -1
  95. package/dist/components/form/inputs/FloatInput.vue.d.ts +3 -3
  96. package/dist/components/form/inputs/IntInput.vue.d.ts +3 -3
  97. package/dist/components/form/inputs/JSONInput.d.ts +53 -0
  98. package/dist/components/form/inputs/JSONInput.d.ts.map +1 -0
  99. package/dist/components/form/inputs/LinkField.vue.d.ts +3 -3
  100. package/dist/components/form/inputs/Password.vue.d.ts +3 -3
  101. package/dist/components/form/inputs/PasswordInput.vue.d.ts +3 -3
  102. package/dist/components/form/inputs/PlainText.vue.d.ts +3 -3
  103. package/dist/components/form/inputs/RadioGroup.d.ts +42 -0
  104. package/dist/components/form/inputs/RadioGroup.d.ts.map +1 -0
  105. package/dist/components/form/inputs/RadioPillsInput.d.ts +48 -0
  106. package/dist/components/form/inputs/RadioPillsInput.d.ts.map +1 -0
  107. package/dist/components/form/inputs/ReadOnlyInput.vue.d.ts +2 -2
  108. package/dist/components/form/inputs/RichText.d.ts +20 -0
  109. package/dist/components/form/inputs/RichText.d.ts.map +1 -0
  110. package/dist/components/form/inputs/RichText2/Toolbar.d.ts +22 -0
  111. package/dist/components/form/inputs/RichText2/Toolbar.d.ts.map +1 -0
  112. package/dist/components/form/inputs/RichText2/index.d.ts +24 -0
  113. package/dist/components/form/inputs/RichText2/index.d.ts.map +1 -0
  114. package/dist/components/form/inputs/RichTextEditor.vue.d.ts +3 -3
  115. package/dist/components/form/inputs/SelectField.vue.d.ts +6 -8
  116. package/dist/components/form/inputs/SelectField.vue.d.ts.map +1 -1
  117. package/dist/components/form/inputs/SelectInput.d.ts +55 -0
  118. package/dist/components/form/inputs/SelectInput.d.ts.map +1 -0
  119. package/dist/components/form/inputs/SignaturePad.d.ts +72 -0
  120. package/dist/components/form/inputs/SignaturePad.d.ts.map +1 -0
  121. package/dist/components/form/inputs/TableField.d.ts +45 -0
  122. package/dist/components/form/inputs/TableField.d.ts.map +1 -0
  123. package/dist/components/form/inputs/TelInput.d.ts +241 -0
  124. package/dist/components/form/inputs/TelInput.d.ts.map +1 -0
  125. package/dist/components/form/inputs/TextArea.vue.d.ts +3 -3
  126. package/dist/components/form/inputs/TextInput.d.ts +90 -0
  127. package/dist/components/form/inputs/TextInput.d.ts.map +1 -0
  128. package/dist/components/form/inputs/ToggleInput.d.ts +58 -0
  129. package/dist/components/form/inputs/ToggleInput.d.ts.map +1 -0
  130. package/dist/components/formkit/AddressArray.vue.d.ts +2 -2
  131. package/dist/components/formkit/BankDetailsArray.vue.d.ts +2 -2
  132. package/dist/components/formkit/ContactArrayFormKit.vue.d.ts +2 -2
  133. package/dist/components/formkit/FileUploader.vue.d.ts +2 -2
  134. package/dist/components/formkit/MiscFields.vue.d.ts +2 -2
  135. package/dist/components/formkit/Toggle.vue.d.ts +2 -2
  136. package/dist/components/layout/BottomMenu.d.ts +27 -0
  137. package/dist/components/layout/BottomMenu.d.ts.map +1 -0
  138. package/dist/components/layout/Layout.d.ts +58 -0
  139. package/dist/components/layout/Layout.d.ts.map +1 -0
  140. package/dist/components/layout/SidebarMenu.d.ts +38 -0
  141. package/dist/components/layout/SidebarMenu.d.ts.map +1 -0
  142. package/dist/components/layout/TabbedLayout.d.ts +42 -0
  143. package/dist/components/layout/TabbedLayout.d.ts.map +1 -0
  144. package/dist/components/layout/Tabs.d.ts +31 -0
  145. package/dist/components/layout/Tabs.d.ts.map +1 -0
  146. package/dist/components/layout/TabsBody.d.ts +23 -0
  147. package/dist/components/layout/TabsBody.d.ts.map +1 -0
  148. package/dist/components/layout/TabsNav.d.ts +35 -0
  149. package/dist/components/layout/TabsNav.d.ts.map +1 -0
  150. package/dist/components/whatsapp/form/MsgTemplate.vue.d.ts +4 -3
  151. package/dist/components/whatsapp/form/TextVariableExamples.vue.d.ts +2 -2
  152. package/dist/index.cjs +164 -90
  153. package/dist/index.d.ts +1 -0
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.mjs +164 -90
  156. package/dist/plugins/modal.d.ts.map +1 -1
  157. package/dist/style.css +118 -39
  158. package/dist/utils/constants.d.ts +5 -0
  159. package/dist/utils/constants.d.ts.map +1 -0
  160. package/dist/utils/objects.d.ts +1 -0
  161. package/package.json +13 -13
  162. package/src/components/ListItem.vue +6 -3
  163. package/src/components/form/inputs/FileUpload.vue +185 -64
  164. package/src/index.ts +1 -0
  165. package/src/plugins/modal.ts +48 -16
  166. package/src/utils/constants.ts +4 -0
  167. package/dist/components/Popover.vue.d.ts +0 -10
  168. package/dist/components/Popover.vue.d.ts.map +0 -1
  169. package/dist/types/materialIcon.d.ts +0 -2
  170. package/dist/types/materialIcon.d.ts.map +0 -1
  171. package/src/components/form/inputs/FileUploadURL.vue +0 -300
package/dist/style.css CHANGED
@@ -626,6 +626,10 @@ a[data-v-895cf824] {
626
626
  .list-item.router-link-active {
627
627
  background-color: var(--bgl-primary-light);
628
628
  }
629
+ .notClickable:hover{
630
+ background-color:unset;
631
+ cursor: default;
632
+ }
629
633
  .list-item:active {
630
634
  -webkit-filter: var(--bgl-hover-filter);
631
635
  filter: var(--bgl-hover-filter);
@@ -1724,71 +1728,146 @@ display: block;
1724
1728
  color: var(--bgl-white);
1725
1729
  }
1726
1730
 
1727
- .bagel-input .fileUploadWrap[data-v-4c71cd49] {
1728
- --width: 320px;
1731
+ .fileUploadWrap[data-v-5911e10d] {
1729
1732
  outline: 1px solid var(--border-color);
1730
1733
  border-radius: var(--input-border-radius);
1731
1734
  text-align: center;
1732
1735
  cursor: pointer;
1733
1736
  transition: var(--bgl-transition);
1734
1737
  position: relative;
1735
- height: calc(var(--width) / 1.5);
1736
1738
  font-size: var(--input-font-size);
1737
1739
  overflow-y: auto;
1738
1740
  background: var(--input-bg);
1741
+ height: 215px;
1739
1742
  }
1740
- .previewName[data-v-4c71cd49] {
1741
- padding: 0.5rem;
1743
+ .bagel-input .fileUploadWrap.fileDropZone[data-v-5911e10d] {
1744
+ background: var(--input-bg);
1745
+ display: flex;
1746
+ align-items: center;
1747
+ justify-content: center;
1748
+ color: var(--bgl-gray);
1749
+ flex-direction: column;
1750
+ }
1751
+ .fileUploadWrap.dragover[data-v-5911e10d],
1752
+ .fileUploadWrap[data-v-5911e10d]:hover {
1753
+ box-shadow: inset 0 0 10px #00000012;
1754
+ }
1755
+ .fileUploadWrap[style*="height: auto;"][data-v-5911e10d] {
1756
+ min-height: 215px;
1757
+ }
1758
+ .multi-image-item-preview[data-v-5911e10d] {
1759
+ border: 1px solid var(--border-color) !important;
1760
+ border-radius: var(--input-border-radius);
1761
+ margin: 0.5rem !important;
1762
+ background: var(--bgl-white);
1763
+ padding: 0;
1764
+ padding-inline-end: 0.75rem;
1742
1765
  text-align: start;
1743
1766
  color: var(--input-color);
1744
1767
  display: grid;
1745
1768
  grid-template-columns: auto 1fr 22px;
1746
1769
  gap: 1rem;
1747
1770
  align-items: center;
1748
- padding-inline: 14px;
1749
1771
  }
1750
- .previewName p[data-v-4c71cd49] {
1772
+ .multi-image-item-preview p[data-v-5911e10d] {
1751
1773
  overflow: hidden;
1752
1774
  text-overflow: ellipsis;
1753
1775
  white-space: nowrap;
1754
1776
  }
1755
- .imagePreviewWrap[data-v-4c71cd49] {
1756
- background: var(--input-bg);
1757
- border-radius: var(--input-border-radius);
1758
- padding: 5px;
1759
- min-height: 90px;
1760
- }
1761
- img.preview[data-v-4c71cd49] {
1762
- /* max-height: calc(var(--width) / 2); */
1763
- /* max-width: calc(var(--width) * 2); */
1777
+ .multi-preview[data-v-5911e10d]{
1764
1778
  width: 40px;
1765
1779
  height: 40px;
1766
1780
  border-radius: var(--input-border-radius);
1767
1781
  object-fit: cover;
1768
1782
  background: var(--bgl-gray-light);
1769
- box-shadow: 0 0 10px #00000012;
1783
+ text-align: center !important;
1784
+ justify-content: center;
1785
+ align-items: center;
1786
+ display: flex;
1770
1787
  }
1771
- img.preview.single[data-v-4c71cd49] {
1772
- max-width: var(--width);
1773
- width: calc(100% - 2.75rem);
1774
- object-fit: contain;
1775
- height: auto;
1776
- max-height: calc(var(--width) / 2);
1777
- margin: 1rem;
1788
+ .bgl-single-preview[data-v-5911e10d]{
1789
+ height: 100%;
1790
+ position: relative;
1778
1791
  }
1779
- .fileUploadWrap.dragover[data-v-4c71cd49],
1780
- .fileUploadWrap[data-v-4c71cd49]:hover {
1781
- box-shadow: inset 0 0 10px #00000012;
1792
+ .bgl-single-preview + .fileUploadPlaceHolder[data-v-5911e10d]{
1793
+ position: absolute;
1794
+ inset: 0;
1795
+ margin: auto;
1796
+ top: calc(50% - 2rem);
1782
1797
  }
1783
- .bagel-input .fileUploadWrap.fileDropZone[data-v-4c71cd49] {
1784
- background: var(--input-bg);
1798
+ .single-image-item-preview[data-v-5911e10d] {
1799
+ height: 100%;
1800
+ min-height: 100%;
1801
+ position: relative;
1785
1802
  display: flex;
1786
1803
  align-items: center;
1787
1804
  justify-content: center;
1788
- color: var(--bgl-gray);
1789
- flex-direction: column;
1790
1805
  }
1791
- .pie[data-v-4c71cd49] {
1806
+ .fileUploadWrap[style*="height: auto"] .single-image-item-preview[data-v-5911e10d] {
1807
+ min-height: 215px;
1808
+ }
1809
+ .fileUploadWrap[style*="height: auto"] .single-preview[data-v-5911e10d] {
1810
+ margin: 0rem !important;
1811
+ }
1812
+ .single-preview[data-v-5911e10d]{
1813
+ border-radius: var(--input-border-radius);
1814
+ margin: 1rem;
1815
+ padding: 0px;
1816
+ min-height: calc(100% - 2rem);
1817
+ height: calc(100% - 2rem);
1818
+ object-fit: cover;
1819
+ background: var(--bgl-gray-light);
1820
+ box-shadow: 0 0 10px #00000012;
1821
+ }
1822
+ .bgl_fill-image.single-image-item-preview[data-v-5911e10d] {
1823
+ height: 100%;
1824
+ }
1825
+ .bgl_fill-image.single-image-item-preview .single-preview[data-v-5911e10d]{
1826
+ border-radius: unset;
1827
+ object-fit: cover;
1828
+ box-shadow: unset;
1829
+ width: 100%;
1830
+ height: auto;
1831
+ }
1832
+ .single-image-item-preview .pie[data-v-5911e10d] {
1833
+ transform-origin: top;
1834
+ transform: scale(1.4);
1835
+ position: absolute;
1836
+ text-align: center;
1837
+ inset: 0;
1838
+ margin: auto;
1839
+ display: flex;
1840
+ justify-content: center;
1841
+ align-items: center;
1842
+ background: transparent;
1843
+ border: none !important;
1844
+ padding: 0 !important;
1845
+ }
1846
+ .bgl_oval-upload[data-v-5911e10d] {
1847
+ border-radius: 100% !important;
1848
+ overflow: hidden;
1849
+ }
1850
+ .bgl_oval-upload p[data-v-5911e10d] {
1851
+ padding: 0.75rem !important;
1852
+ font-size: 12px
1853
+ }
1854
+ .bgl_oval-upload .fileUploadPlaceHolder[data-v-5911e10d]{
1855
+ top: 0;
1856
+ }
1857
+ .bgl_oval-upload .pie[data-v-5911e10d] {
1858
+ transform: scale(1);
1859
+ }
1860
+ .bgl_oval-upload span.bgl_icon-font.color-primary[data-v-5911e10d] {
1861
+ transform: scale(0.4) !important;
1862
+ }
1863
+ .bgl_oval-upload .single-image-item-preview[data-v-5911e10d]{
1864
+ height: 100%;
1865
+ }
1866
+ .bgl_oval-upload .single-preview[data-v-5911e10d] {
1867
+ margin: 0;
1868
+ height: 100% !important;
1869
+ }
1870
+ .pie[data-v-5911e10d] {
1792
1871
  width: 30px;
1793
1872
  height: 30px;
1794
1873
  position: relative;
@@ -1796,7 +1875,7 @@ img.preview.single[data-v-4c71cd49] {
1796
1875
  align-items: center;
1797
1876
  justify-content: center;
1798
1877
  }
1799
- .pie[data-v-4c71cd49]:before {
1878
+ .pie[data-v-5911e10d]:before {
1800
1879
  content: '';
1801
1880
  position: absolute;
1802
1881
  border-radius: 50%;
@@ -1814,26 +1893,26 @@ img.preview.single[data-v-4c71cd49] {
1814
1893
  #000 calc(100% - var(--b))
1815
1894
  );
1816
1895
  }
1817
- .pie .success[data-v-4c71cd49] {
1896
+ .pie .success[data-v-5911e10d] {
1818
1897
  transform: scale(0);
1819
1898
  opacity: 0;
1820
1899
  transition: all 0.3s ease-in-out;
1821
1900
  }
1822
- .pie .progress[data-v-4c71cd49] {
1901
+ .pie .progress[data-v-5911e10d] {
1823
1902
  position: absolute;
1824
1903
  font-size: 10px;
1825
1904
  }
1826
- .pie.complete .progress[data-v-4c71cd49] {
1905
+ .pie.complete .progress[data-v-5911e10d] {
1827
1906
  display: none;
1828
1907
  }
1829
- .pie.complete .success[data-v-4c71cd49] {
1908
+ .pie.complete .success[data-v-5911e10d] {
1830
1909
  transform: scale(1.3);
1831
1910
  opacity: 1;
1832
1911
  }
1833
- .pie.complete[data-v-4c71cd49]:before {
1912
+ .pie.complete[data-v-5911e10d]:before {
1834
1913
  background: conic-gradient(var(--bgl-green) calc(var(--p) * 1%), #0000 0);
1835
1914
  }
1836
- .pie.complete[data-v-4c71cd49] {
1915
+ .pie.complete[data-v-5911e10d] {
1837
1916
  color: var(--bgl-green);
1838
1917
  }
1839
1918
 
@@ -0,0 +1,5 @@
1
+ export declare const IMAGE_FORMATS: string[];
2
+ export declare const IMAGE_FORMATS_REGEXP: RegExp;
3
+ export declare const VIDEO_FORMATS: string[];
4
+ export declare const VIDEO_FORMATS_REGEXP: RegExp;
5
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,UAA+E,CAAA;AACzG,eAAO,MAAM,oBAAoB,QAAmD,CAAA;AACpF,eAAO,MAAM,aAAa,UAA0E,CAAA;AACpG,eAAO,MAAM,oBAAoB,QAAmD,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { BagelField } from '..';
2
+
2
3
  export declare function getPropByPath(obj: Record<string, any>, propPath?: string, bagelField?: BagelField): {};
3
4
  export declare function setPropByPath(obj: Record<string, any>, path?: string, value?: any): void;
4
5
  //# sourceMappingURL=objects.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.712",
4
+ "version": "0.0.714",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -104,21 +104,21 @@
104
104
  "access": "public"
105
105
  },
106
106
  "dependencies": {
107
- "@tiptap/extension-image": "^2.6.5",
108
- "@tiptap/extension-table": "^2.6.5",
109
- "@tiptap/extension-table-cell": "^2.6.5",
110
- "@tiptap/extension-table-header": "^2.6.5",
111
- "@tiptap/extension-table-row": "^2.6.5",
112
- "@tiptap/extension-youtube": "^2.6.5",
113
- "@tiptap/pm": "^2.6.5",
114
- "@tiptap/starter-kit": "^2.6.5",
115
- "@tiptap/vue-3": "^2.6.5",
107
+ "@tiptap/extension-image": "^2.6.6",
108
+ "@tiptap/extension-table": "^2.6.6",
109
+ "@tiptap/extension-table-cell": "^2.6.6",
110
+ "@tiptap/extension-table-header": "^2.6.6",
111
+ "@tiptap/extension-table-row": "^2.6.6",
112
+ "@tiptap/extension-youtube": "^2.6.6",
113
+ "@tiptap/pm": "^2.6.6",
114
+ "@tiptap/starter-kit": "^2.6.6",
115
+ "@tiptap/vue-3": "^2.6.6",
116
116
  "@vuepic/vue-datepicker": "^8.8.1",
117
- "@vueuse/core": "^11.0.1",
118
- "axios": "^1.7.4",
117
+ "@vueuse/core": "^11.0.3",
118
+ "axios": "^1.7.5",
119
119
  "floating-vue": "^5.2.2",
120
120
  "libphonenumber-js": "1.11.7",
121
- "signature_pad": "^5.0.2",
121
+ "signature_pad": "^5.0.3",
122
122
  "type-fest": "^4.25.0"
123
123
  },
124
124
  "scripts": {
@@ -17,8 +17,8 @@ defineProps<{
17
17
  <component
18
18
  :is="to ? 'RouterLink' : 'div'"
19
19
  :to="to"
20
- class="flex gap-1"
21
- :class="{ 'list-item': to || onClick, 'no-border-list': flat }"
20
+ class="flex gap-1 list-item"
21
+ :class="{ 'notClickable': !(to || onClick), 'no-border-list': flat }"
22
22
  >
23
23
  <Avatar v-if="src || showAvatar" style="flex-basis: 1;" :name="title" :src="src" :size="40" />
24
24
  <Icon v-if="icon" size="1.2" class="color-primary" :icon="icon" />
@@ -63,7 +63,10 @@ defineProps<{
63
63
  .list-item.router-link-active {
64
64
  background-color: var(--bgl-primary-light);
65
65
  }
66
-
66
+ .notClickable:hover{
67
+ background-color:unset;
68
+ cursor: default;
69
+ }
67
70
  .list-item:active {
68
71
  -webkit-filter: var(--bgl-hover-filter);
69
72
  filter: var(--bgl-hover-filter);
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { onMounted, watch } from 'vue'
3
- import { Btn, Icon, type StorageFile, useBagel } from '@bagelink/vue'
3
+ import { Btn, IMAGE_FORMATS, IMAGE_FORMATS_REGEXP, Icon, type StorageFile, useBagel } from '@bagelink/vue'
4
4
 
5
5
  const props = defineProps<{
6
6
  label?: string
@@ -9,7 +9,10 @@ const props = defineProps<{
9
9
  bindkey?: StrKey
10
10
  modelValue?: FSValue
11
11
  width?: string
12
+ height?: string | 'auto'
12
13
  topic?: string
14
+ fill?: boolean
15
+ oval?: boolean
13
16
  }>()
14
17
 
15
18
  const emit = defineEmits(['update:modelValue', 'addFileStart'])
@@ -30,6 +33,8 @@ type FSValue = string[] | string | number
30
33
 
31
34
  const bindKey: StrKey = props.bindkey || 'id'
32
35
 
36
+ const isImage = (str: string) => IMAGE_FORMATS_REGEXP.test(str)
37
+
33
38
  let file_bindkeys = $ref<FSValue>(props.modelValue || [])
34
39
  const storageFiles = $ref<StorageFile[]>([])
35
40
 
@@ -174,25 +179,26 @@ function drop(e: DragEvent) {
174
179
  <div
175
180
  class="fileUploadWrap"
176
181
  :class="{
177
- fileDropZone: !storageFiles.length && !fileQueue.length,
178
- dragover: isDragOver,
182
+ 'fileDropZone': !storageFiles.length && !fileQueue.length,
183
+ 'dragover': isDragOver,
184
+ 'bgl_oval-upload': oval,
179
185
  }"
186
+ :style="{ width: props.width, height: props.height || '215px' }"
180
187
  @click="browse"
181
188
  @dragover="dragover"
182
189
  @drop="drop"
183
190
  @dragleave="dragleave"
184
191
  >
185
192
  <slot name="files" :files="storageFiles" :fileQueue>
186
- <template v-for="file in storageFiles" :key="file.id">
187
- <div v-if="!multiple" class="single-image">
188
- <img class="single preview" :src="file.url" alt="">
189
- <!-- <p class="no-margin">
190
- {{ file.name }}
191
- </p> -->
192
- </div>
193
- <div v-if="multiple" class="multi-image-item previewName">
194
- <img class="preview" :src="file.url" alt="">
195
- <p class="no-margin">
193
+ <div v-if="multiple" class="bgl-multi-preview">
194
+ <div
195
+ v-for="file in storageFiles"
196
+ :key="file.id"
197
+ class="multi-image-item-preview"
198
+ >
199
+ <img v-if="isImage(file.extension || file.url)" class="multi-preview" :src="file.url" alt="">
200
+ <Icon v-else icon="draft" class="multi-preview" />
201
+ <p class="m-0">
196
202
  {{ file.name }}
197
203
  </p>
198
204
  <Btn
@@ -203,20 +209,24 @@ function drop(e: DragEvent) {
203
209
  @click.stop="removeFile(file)"
204
210
  />
205
211
  </div>
206
- </template>
207
- <template v-for="fileQ in fileQueue" :key="fileQ.file">
208
- <div v-if="!multiple" class="imagePreviewWrap">
209
- <img class="preview" :src="fileToUrl(fileQ.file)" alt="">
210
- </div>
211
- <div class="previewName">
212
- <img
213
- v-if="multiple"
214
- :width="width || '220'"
215
- class="preview"
216
- :src="fileToUrl(fileQ.file)"
217
- alt=""
218
- >
219
- <p class="no-margin">
212
+ <div
213
+ v-for="fileQ in fileQueue"
214
+ :key="fileQ.file.name"
215
+ class="multi-image-item-preview"
216
+ >
217
+ <template v-if="isImage(fileQ.file.type)">
218
+ <img
219
+ v-if="multiple"
220
+ :width="width || '220'"
221
+ class="multi-preview"
222
+ :src="fileToUrl(fileQ.file)"
223
+ alt=""
224
+ >
225
+ </template>
226
+
227
+ <Icon v-else icon="draft" class="multi-preview" />
228
+
229
+ <p class="no-margin multi-preview-txt">
220
230
  {{ fileQ.name }}
221
231
  </p>
222
232
  <div
@@ -231,7 +241,40 @@ function drop(e: DragEvent) {
231
241
  <Icon class="success" icon="check" />
232
242
  </div>
233
243
  </div>
234
- </template>
244
+ </div>
245
+
246
+ <div v-if="!multiple" class="bgl-single-preview">
247
+ <div
248
+ v-for="file in storageFiles"
249
+ :key="file.id"
250
+ class="single-image-item-preview"
251
+ :class="{ 'bgl_fill-image': fill }"
252
+ >
253
+ <img v-if="isImage(file.extension || file.url)" class="single-preview" :src="file.url" alt="">
254
+ <Icon v-else :size="4" weight="2" icon="draft" class="color-primary w-100" />
255
+ </div>
256
+
257
+ <div
258
+ v-for="fileQ in fileQueue"
259
+ :key="fileQ.file.name"
260
+ class="single-image-item-preview"
261
+ :class="{ 'bgl_fill-image': fill }"
262
+ >
263
+ <div
264
+ class="pie"
265
+ :style="`--p:${fileQ.progress}`"
266
+ style="--b: 2px"
267
+ :class="{ complete: fileQ.progress === 100 }"
268
+ >
269
+ <span v-if="fileQ.progress < 100" class="progress">
270
+ {{ `${fileQ.progress.toFixed(0)}` }}
271
+ </span>
272
+ <Icon class="success" icon="check" />
273
+ </div>
274
+ <img v-if="isImage(fileQ.file.type)" class="single-preview" :src="fileToUrl(fileQ.file)" alt="">
275
+ <!-- <Icon v-else :size="8" weight="2" icon="draft" class="color-primary" /> -->
276
+ </div>
277
+ </div>
235
278
  </slot>
236
279
  <slot
237
280
  v-if="(!storageFiles.length && !fileQueue.length) || multiple"
@@ -240,85 +283,163 @@ function drop(e: DragEvent) {
240
283
  :fileQueue
241
284
  :browse
242
285
  >
243
- <p>Drop files here or click to upload</p>
286
+ <p class="p-1 flex column hover fileUploadPlaceHolder">
287
+ <Icon icon="upload_2" />
288
+ Drop files here or click to upload
289
+ </p>
244
290
  </slot>
245
291
  </div>
246
292
  </div>
247
293
  </template>
248
294
 
249
295
  <style scoped>
250
- .bagel-input .fileUploadWrap {
251
- --width: 320px;
296
+ .fileUploadWrap {
252
297
  outline: 1px solid var(--border-color);
253
298
  border-radius: var(--input-border-radius);
254
299
  text-align: center;
255
300
  cursor: pointer;
256
301
  transition: var(--bgl-transition);
257
302
  position: relative;
258
- height: calc(var(--width) / 1.5);
259
303
  font-size: var(--input-font-size);
260
304
  overflow-y: auto;
261
305
  background: var(--input-bg);
306
+ height: 215px;
307
+ }
308
+ .bagel-input .fileUploadWrap.fileDropZone {
309
+ background: var(--input-bg);
310
+ display: flex;
311
+ align-items: center;
312
+ justify-content: center;
313
+ color: var(--bgl-gray);
314
+ flex-direction: column;
315
+ }
316
+
317
+ .fileUploadWrap.dragover,
318
+ .fileUploadWrap:hover {
319
+ box-shadow: inset 0 0 10px #00000012;
320
+ }
321
+
322
+ .fileUploadWrap[style*="height: auto;"] {
323
+ min-height: 215px;
262
324
  }
263
325
 
264
- .previewName {
265
- padding: 0.5rem;
326
+ .multi-image-item-preview {
327
+ border: 1px solid var(--border-color) !important;
328
+ border-radius: var(--input-border-radius);
329
+ margin: 0.5rem !important;
330
+ background: var(--bgl-white);
331
+ padding: 0;
332
+ padding-inline-end: 0.75rem;
266
333
  text-align: start;
267
334
  color: var(--input-color);
268
335
  display: grid;
269
336
  grid-template-columns: auto 1fr 22px;
270
337
  gap: 1rem;
271
338
  align-items: center;
272
- padding-inline: 14px;
273
339
  }
274
-
275
- .previewName p {
340
+ .multi-image-item-preview p {
276
341
  overflow: hidden;
277
342
  text-overflow: ellipsis;
278
343
  white-space: nowrap;
279
344
  }
280
-
281
- .imagePreviewWrap {
282
- background: var(--input-bg);
283
- border-radius: var(--input-border-radius);
284
- padding: 5px;
285
- min-height: 90px;
286
- }
287
-
288
- img.preview {
289
- /* max-height: calc(var(--width) / 2); */
290
- /* max-width: calc(var(--width) * 2); */
345
+ .multi-preview{
291
346
  width: 40px;
292
347
  height: 40px;
293
348
  border-radius: var(--input-border-radius);
294
349
  object-fit: cover;
295
350
  background: var(--bgl-gray-light);
296
- box-shadow: 0 0 10px #00000012;
351
+ text-align: center !important;
352
+ justify-content: center;
353
+ align-items: center;
354
+ display: flex;
355
+ }
356
+ .bgl-single-preview{
357
+ height: 100%;
358
+ position: relative;
359
+ }
360
+ .bgl-single-preview + .fileUploadPlaceHolder{
361
+ position: absolute;
362
+ inset: 0;
363
+ margin: auto;
364
+ top: calc(50% - 2rem);
365
+ }
366
+ .single-image-item-preview {
367
+ height: 100%;
368
+ min-height: 100%;
369
+ position: relative;
370
+ display: flex;
371
+ align-items: center;
372
+ justify-content: center;
373
+ }
374
+ .fileUploadWrap[style*="height: auto"] .single-image-item-preview {
375
+ min-height: 215px;
297
376
  }
298
377
 
299
- img.preview.single {
300
- max-width: var(--width);
301
- width: calc(100% - 2.75rem);
302
- object-fit: contain;
303
- height: auto;
304
- max-height: calc(var(--width) / 2);
378
+ .fileUploadWrap[style*="height: auto"] .single-preview {
379
+ margin: 0rem !important;
380
+
381
+ }
382
+ .single-preview{
383
+ border-radius: var(--input-border-radius);
305
384
  margin: 1rem;
385
+ padding: 0px;
386
+ min-height: calc(100% - 2rem);
387
+ height: calc(100% - 2rem);
388
+ object-fit: cover;
389
+ background: var(--bgl-gray-light);
390
+ box-shadow: 0 0 10px #00000012;
306
391
  }
307
-
308
- .fileUploadWrap.dragover,
309
- .fileUploadWrap:hover {
310
- box-shadow: inset 0 0 10px #00000012;
392
+ .bgl_fill-image.single-image-item-preview {
393
+ height: 100%;
394
+ }
395
+ .bgl_fill-image.single-image-item-preview .single-preview{
396
+ border-radius: unset;
397
+ object-fit: cover;
398
+ box-shadow: unset;
399
+ width: 100%;
400
+ height: auto;
311
401
  }
312
402
 
313
- .bagel-input .fileUploadWrap.fileDropZone {
314
- background: var(--input-bg);
403
+ .single-image-item-preview .pie {
404
+ transform-origin: top;
405
+ transform: scale(1.4);
406
+ position: absolute;
407
+ text-align: center;
408
+ inset: 0;
409
+ margin: auto;
315
410
  display: flex;
316
- align-items: center;
317
411
  justify-content: center;
318
- color: var(--bgl-gray);
319
- flex-direction: column;
412
+ align-items: center;
413
+ background: transparent;
414
+ border: none !important;
415
+ padding: 0 !important;
320
416
  }
321
417
 
418
+ .bgl_oval-upload {
419
+ border-radius: 100% !important;
420
+ overflow: hidden;
421
+ }
422
+ .bgl_oval-upload p {
423
+ padding: 0.75rem !important;
424
+ font-size: 12px
425
+ }
426
+ .bgl_oval-upload .fileUploadPlaceHolder{
427
+ top: 0;
428
+ }
429
+ .bgl_oval-upload .pie {
430
+ transform: scale(1);
431
+ }
432
+ .bgl_oval-upload span.bgl_icon-font.color-primary {
433
+ transform: scale(0.4) !important;
434
+ }
435
+ .bgl_oval-upload .single-image-item-preview{
436
+ height: 100%;
437
+ }
438
+ .bgl_oval-upload .single-preview {
439
+ margin: 0;
440
+ height: 100% !important;
441
+ }
442
+
322
443
  .pie {
323
444
  width: 30px;
324
445
  height: 30px;
package/src/index.ts CHANGED
@@ -12,4 +12,5 @@ export * from './types'
12
12
  export * from './composables'
13
13
  export * from './components'
14
14
  export * from './utils/allCountries'
15
+ export * from './utils/constants'
15
16
  import './styles/bagel.css'