@bagelink/vue 0.0.360 → 0.0.374

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 (31) hide show
  1. package/dist/components/Alert.vue.d.ts.map +1 -1
  2. package/dist/components/Card.vue.d.ts +2 -0
  3. package/dist/components/Card.vue.d.ts.map +1 -1
  4. package/dist/components/RouterWrapper.vue.d.ts.map +1 -1
  5. package/dist/components/form/BglField.vue.d.ts.map +1 -1
  6. package/dist/components/form/BglForm.vue.d.ts +3 -0
  7. package/dist/components/form/BglForm.vue.d.ts.map +1 -1
  8. package/dist/components/form/inputs/DatePicker.vue.d.ts +4 -2
  9. package/dist/components/form/inputs/DatePicker.vue.d.ts.map +1 -1
  10. package/dist/components/form/inputs/RichText.vue.d.ts.map +1 -1
  11. package/dist/components/form/inputs/TextInput.vue.d.ts.map +1 -1
  12. package/dist/components/layout/SidebarMenu.vue.d.ts.map +1 -1
  13. package/dist/index.cjs +154 -127
  14. package/dist/index.mjs +154 -127
  15. package/dist/style.css +105 -53
  16. package/dist/utils/BagelFormUtils.d.ts +10 -0
  17. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  18. package/package.json +1 -1
  19. package/src/components/Alert.vue +1 -1
  20. package/src/components/Card.vue +51 -23
  21. package/src/components/RouterWrapper.vue +4 -6
  22. package/src/components/form/BglField.vue +65 -36
  23. package/src/components/form/BglForm.vue +64 -60
  24. package/src/components/form/inputs/DatePicker.vue +15 -18
  25. package/src/components/form/inputs/RichText.vue +68 -41
  26. package/src/components/form/inputs/SelectInput.vue +1 -1
  27. package/src/components/form/inputs/TextInput.vue +4 -0
  28. package/src/components/layout/SidebarMenu.vue +39 -20
  29. package/src/styles/text.css +1 -1
  30. package/src/styles/theme.css +1 -0
  31. package/src/utils/BagelFormUtils.ts +14 -0
package/dist/style.css CHANGED
@@ -748,31 +748,43 @@ padding: 0.75rem 0.5rem;
748
748
  color: var(--input-color);
749
749
  }
750
750
 
751
+ .card_label {
752
+ font-size: 0.7rem;
753
+ font-weight: 300;
754
+ background: rgb(255, 255, 255);
755
+ padding: 0px 12px;
756
+ display: block;
757
+ position: absolute;
758
+ border-radius: 100px;
759
+ top: -8px;
760
+ left: 10px;
761
+ }
751
762
  .bgl_card {
752
- border-radius: var(--card-border-radius);
753
- background: var(--bgl-white);
754
- padding: 2rem 2rem;
763
+ border-radius: var(--card-border-radius);
764
+ background: var(--bgl-white);
765
+ padding: 2rem 2rem;
766
+ position: relative;
755
767
  }
756
768
  .bgl_card.gray {
757
- background: var(--bgl-gray-20);
769
+ background: var(--bgl-gray-20);
758
770
  }
759
771
  .bgl_card.border {
760
- border: 1px solid var(--border-color);
761
- background-color: transparent;
772
+ border: 1px solid var(--border-color);
773
+ background-color: transparent;
762
774
  }
763
775
  .bgl_card.thin {
764
- padding: 1rem 1rem;
776
+ padding: 1rem 1rem;
765
777
  }
766
778
  .bgl_card.BagelTable {
767
- height: 100%;
768
- overflow: auto;
769
- padding-top: 0;
779
+ height: 100%;
780
+ overflow: auto;
781
+ padding-top: 0;
770
782
  }
771
783
  .bgl_card.thin .tabs {
772
- margin-bottom: 1rem;
784
+ margin-bottom: 1rem;
773
785
  }
774
786
  .bgl_card .bgl_card.tabs-top {
775
- padding: 0;
787
+ padding: 0;
776
788
  }
777
789
 
778
790
  .avatar[data-v-c38bc02a] {
@@ -795,7 +807,7 @@ padding: 0.75rem 0.5rem;
795
807
  object-fit: cover;
796
808
  }
797
809
 
798
- .alert[data-v-94bfcb05] {
810
+ .alert[data-v-4017e821] {
799
811
  padding: var(--btn-padding);
800
812
  border-radius: var(--card-border-radius);
801
813
  background: var(--bgl-primary-light);
@@ -804,25 +816,25 @@ padding: 0.75rem 0.5rem;
804
816
  gap: 1rem;
805
817
  position: relative;
806
818
  }
807
- .alert_icon[data-v-94bfcb05] {
819
+ .alert_icon[data-v-4017e821] {
808
820
  line-height: 1;
809
821
  }
810
- .alert.warning[data-v-94bfcb05] {
822
+ .alert.warning[data-v-4017e821] {
811
823
  background-color: var(--bgl-yellow-light);
812
824
  }
813
- .alert.error[data-v-94bfcb05] {
825
+ .alert.error[data-v-4017e821] {
814
826
  background: var(--bgl-red-tint);
815
827
  }
816
- .alert_close[data-v-94bfcb05]{
828
+ .alert_close[data-v-4017e821]{
817
829
  display: none;
818
830
  position: absolute;
819
831
  inset-inline-end: 1.5rem;
820
832
  top: 2rem;
821
833
  }
822
- .alert[dismissable="true"] .alert_close[data-v-94bfcb05]{
834
+ .alert[dismissable="true"] .alert_close[data-v-4017e821]{
823
835
  display: block;
824
836
  }
825
- .alert[dismissable="true"] p[data-v-94bfcb05]{
837
+ .alert[dismissable="true"] p[data-v-4017e821]{
826
838
  width: calc(100% - 5rem);
827
839
  }
828
840
 
@@ -955,7 +967,7 @@ display: block;
955
967
  }
956
968
 
957
969
  .del-top {
958
- transform: translateY(-2.6rem);
970
+ transform: translateY(-2.6rem);
959
971
  }
960
972
 
961
973
  :root {
@@ -1033,10 +1045,10 @@ display: block;
1033
1045
  }
1034
1046
  .resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}
1035
1047
 
1036
- .selectinput[data-v-70fd5ae7] {
1048
+ .selectinput[data-v-ab376074] {
1037
1049
  width: 100%;
1038
1050
  }
1039
- .selectinput-option[data-v-70fd5ae7] {
1051
+ .selectinput-option[data-v-ab376074] {
1040
1052
  padding: 6px 12px;
1041
1053
  cursor: pointer;
1042
1054
  border-radius: 5px;
@@ -1047,14 +1059,14 @@ display: block;
1047
1059
  width: 100%;
1048
1060
  font-size: var(--input-font-size);
1049
1061
  }
1050
- .selectinput-options[data-v-70fd5ae7] {
1062
+ .selectinput-options[data-v-ab376074] {
1051
1063
  max-height: 300px;
1052
1064
  overflow-y: auto;
1053
1065
  }
1054
- .selectinput-option[data-v-70fd5ae7]:hover {
1066
+ .selectinput-option[data-v-ab376074]:hover {
1055
1067
  background: var(--bgl-gray-20);
1056
1068
  }
1057
- .isEmpty p[data-v-70fd5ae7] {
1069
+ .isEmpty p[data-v-ab376074] {
1058
1070
  opacity: 0.3;
1059
1071
  }
1060
1072
 
@@ -1087,7 +1099,7 @@ display: block;
1087
1099
  }
1088
1100
  .v-popper--theme-dropdown .v-popper__inner {
1089
1101
  border: none;
1090
- background: transparent;
1102
+ /* background: transparent; if anyone is changing this please talk to me first*/
1091
1103
  border-radius: var(--card-border-radius);
1092
1104
  color: var(--input-color);
1093
1105
  }
@@ -1241,64 +1253,68 @@ display: block;
1241
1253
  font-size: var(--label-font-size);
1242
1254
  }
1243
1255
 
1244
- .bagel-input textarea[data-v-cd4c27ad] {
1256
+ .bagel-input textarea[data-v-df718b64] {
1245
1257
  min-height: unset;
1246
1258
  font-size: var(--input-font-size);
1247
1259
  }
1248
- .bagel-input.text-input textarea[data-v-cd4c27ad] {
1260
+ .bagel-input.text-input textarea[data-v-df718b64] {
1249
1261
  resize: none;
1250
1262
  }
1251
- .code textarea[data-v-cd4c27ad] {
1263
+ .code textarea[data-v-df718b64] {
1252
1264
  font-family: 'Inconsolata', monospace;
1253
1265
  background: var(--bgl-black) !important;
1254
1266
  color: var(--bgl-white) !important;
1255
1267
  }
1256
- .bagel-input.toggleEdit[data-v-cd4c27ad]:hover {
1268
+ .code textarea[data-v-df718b64]::placeholder{
1269
+ color: var(--bgl-white) !important;
1270
+ opacity: 0.3;
1271
+ }
1272
+ .bagel-input.toggleEdit[data-v-df718b64]:hover {
1257
1273
  background-color: var(--input-bg);
1258
1274
  }
1259
- .bagel-input.small[data-v-cd4c27ad] {
1275
+ .bagel-input.small[data-v-df718b64] {
1260
1276
  margin-bottom: 0;
1261
1277
  height: 30px;
1262
1278
  }
1263
- .bagel-input.dense label[data-v-cd4c27ad] {
1279
+ .bagel-input.dense label[data-v-df718b64] {
1264
1280
  display: flex;
1265
1281
  align-items: center;
1266
1282
  gap: 0.5rem;
1267
1283
  }
1268
- .bagel-input label[data-v-cd4c27ad] {
1284
+ .bagel-input label[data-v-df718b64] {
1269
1285
  font-size: var(--label-font-size);
1270
1286
  }
1271
- .toggleEditBtn[data-v-cd4c27ad] {
1287
+ .toggleEditBtn[data-v-df718b64] {
1272
1288
  position: absolute;
1273
1289
  right: -24px;
1274
1290
  top: 4;
1275
1291
  opacity: 0;
1276
1292
  }
1277
- .textInputIconWrap[data-v-cd4c27ad] {
1293
+ .textInputIconWrap[data-v-df718b64] {
1278
1294
  position: relative;
1279
1295
  }
1280
- .textInputIconWrap .bgl_icon-font[data-v-cd4c27ad] {
1296
+ .textInputIconWrap .bgl_icon-font[data-v-df718b64] {
1281
1297
  position: absolute;
1282
1298
  inset-inline-end: 0.7rem;
1283
1299
  bottom: 50%;
1284
1300
  line-height: 0;
1285
1301
  color: var(--bgl-gray);
1286
1302
  }
1287
- .txtInputIconStart .iconStart[data-v-cd4c27ad] {
1303
+ .txtInputIconStart .iconStart[data-v-df718b64] {
1288
1304
  position: absolute;
1289
1305
  inset-inline-start: 0.7rem;
1290
1306
  top: 50%;
1291
1307
  line-height: 0;
1292
1308
  color: var(--bgl-gray);
1293
1309
  }
1294
- .txtInputIconStart textarea[data-v-cd4c27ad] {
1310
+ .txtInputIconStart textarea[data-v-df718b64] {
1295
1311
  padding-inline-start: 2rem;
1296
1312
  }
1297
- .bagel-input:hover .toggleEditBtn[data-v-cd4c27ad],
1298
- .bagel-input.editMode .toggleEditBtn[data-v-cd4c27ad] {
1313
+ .bagel-input:hover .toggleEditBtn[data-v-df718b64],
1314
+ .bagel-input.editMode .toggleEditBtn[data-v-df718b64] {
1299
1315
  opacity: 1;
1300
1316
  }
1301
- .bagel-input.small textarea[data-v-cd4c27ad] {
1317
+ .bagel-input.small textarea[data-v-df718b64] {
1302
1318
  height: 30px;
1303
1319
  }
1304
1320
 
@@ -1360,7 +1376,7 @@ display: block;
1360
1376
  color: var(--bgl-primary);
1361
1377
  border: 1px solid var(--bgl-primary);
1362
1378
  }
1363
- .time-wrap input[type="radio"]:checked+label {
1379
+ .time-wrap input[type='radio']:checked + label {
1364
1380
  background: var(--bgl-primary);
1365
1381
  color: var(--bgl-white);
1366
1382
  }
@@ -1404,7 +1420,7 @@ display: block;
1404
1420
  padding: 10px 0 0;
1405
1421
  margin-bottom: -10px;
1406
1422
  }
1407
- .dp__calendar_row>div:last-child {
1423
+ .dp__calendar_row > div:last-child {
1408
1424
  pointer-events: none;
1409
1425
  }
1410
1426
  .dp__outer_menu_wrap.dp--menu-wrapper {
@@ -1630,12 +1646,16 @@ img.preview[data-v-1be8d7b1] {
1630
1646
  padding: 0 1rem;
1631
1647
  }
1632
1648
  .tiptap h1,
1633
- .tiptap h2,
1649
+ .tiptap h2 {
1650
+ line-height: 1;
1651
+ margin-top: 0;
1652
+ }
1634
1653
  .tiptap h3,
1635
1654
  .tiptap h4,
1636
1655
  .tiptap h5,
1637
1656
  .tiptap h6 {
1638
1657
  line-height: 1.1;
1658
+ margin-top: 0;
1639
1659
  }
1640
1660
  .tiptap code {
1641
1661
  background-color: rgba(97, 97, 97, 0.1);
@@ -1665,13 +1685,30 @@ img.preview[data-v-1be8d7b1] {
1665
1685
  .tiptap hr {
1666
1686
  border: none;
1667
1687
  border-top: 2px solid rgba(13, 13, 13, 0.1);
1668
- margin: 2rem 0;
1688
+ margin: 1rem 0;
1669
1689
  }
1670
1690
  .tiptap {
1671
1691
  min-height: 500px;
1672
1692
  background: var(--input-bg);
1673
1693
  overflow: auto;
1674
1694
  max-height: 600px;
1695
+ padding: 0.7rem;
1696
+ color: var(--input-color);
1697
+ border-radius: var(--input-border-radius);
1698
+ font-size: var(--input-font-size);
1699
+ line-height: 1.5;
1700
+ }
1701
+ .tiptap.ProseMirror-focused {
1702
+ outline: none;
1703
+ box-shadow: inset 0 0 10px #00000012;
1704
+ }
1705
+ .RichText {
1706
+ margin-bottom: 0.5rem;
1707
+ }
1708
+ .RichText-tools {
1709
+ background: var(--input-bg);
1710
+ margin-bottom: 0.125rem;
1711
+ border-radius: var(--input-border-radius);
1675
1712
  }
1676
1713
 
1677
1714
  .chart-line {
@@ -1738,7 +1775,7 @@ img.preview[data-v-1be8d7b1] {
1738
1775
  color: var(--bgl-primary);
1739
1776
  }
1740
1777
 
1741
- .bgl_sidebar[data-v-24905642] {
1778
+ .bgl_sidebar[data-v-65bec778] {
1742
1779
  background-color: var(--bgl-primary);
1743
1780
  color: var(--bgl-white);
1744
1781
  overflow: hidden;
@@ -1748,22 +1785,37 @@ img.preview[data-v-1be8d7b1] {
1748
1785
  padding: 0.5rem;
1749
1786
  overflow-y: auto;
1750
1787
  }
1751
- .wideNav .toggleNav[data-v-24905642] {
1788
+ .toggleNav[data-v-65bec778]{
1789
+ height: 22px !important;
1790
+ width: 22px !important;
1791
+ opacity: 0.4;
1792
+ transition: var(--bgl-transition);
1793
+ }
1794
+ .toggleNav[data-v-65bec778]:hover{
1795
+ opacity: 1;
1796
+ }
1797
+ .wideNav .toggleNav[data-v-65bec778] {
1752
1798
  transform: rotate(180deg);
1753
1799
  }
1754
- .wideNav .nav-button[data-v-24905642] {
1800
+ .wideNav .nav-button[data-v-65bec778] {
1755
1801
  padding-inline-start: 1rem !important;
1756
1802
  width: 100%;
1757
1803
  }
1758
- .nav-button.bgl_btn-icon[data-v-24905642] {
1804
+ [dir="rtl"] .toggleNav[data-v-65bec778] {
1805
+ transform: rotate(180deg);
1806
+ }
1807
+ [dir="rtl"] .wideNav .toggleNav[data-v-65bec778] {
1808
+ transform: rotate(0deg);
1809
+ }
1810
+ .nav-button.bgl_btn-icon[data-v-65bec778] {
1759
1811
  border-radius: var(--btn-border-radius) !important;
1760
1812
  }
1761
- .nav-button p[data-v-24905642] {
1813
+ .nav-button p[data-v-65bec778] {
1762
1814
  transition: var(--nav-tran);
1763
- animation: fade-24905642 2s;
1815
+ animation: fade-65bec778 2s;
1764
1816
  animation-duration: 900ms;
1765
1817
  }
1766
- @keyframes fade-24905642 {
1818
+ @keyframes fade-65bec778 {
1767
1819
  0% {
1768
1820
  opacity: 0;
1769
1821
  transform: translateX(-20px);
@@ -5088,7 +5140,7 @@ select {
5088
5140
  text-decoration: none;
5089
5141
  }
5090
5142
  .bgl_icon-font {
5091
- font-family: "Material Symbols Outlined", serif;
5143
+ font-family: "Material Symbols Outlined", serif !important;
5092
5144
  }
5093
5145
  .nowrap {
5094
5146
  white-space: nowrap;
@@ -22,6 +22,16 @@ interface NumFieldOptions extends InputOptions {
22
22
  min?: number;
23
23
  step?: number;
24
24
  }
25
+ type RichTextOptions = InputOptions;
26
+ export declare function richText(id: string, label?: string, options?: RichTextOptions): {
27
+ $el: string;
28
+ class: string | undefined;
29
+ required: boolean | undefined;
30
+ id: string;
31
+ label: string | undefined;
32
+ placeholder: string | undefined;
33
+ attrs: {};
34
+ };
25
35
  export declare function txtField(id: string, label?: string, options?: TextInputOptions): Field;
26
36
  export declare function slctField(id: string, label?: string, options?: Option[] | (() => Option[]), config?: SlctInputOptions): Field;
27
37
  export declare function numField(id: string, label?: string, options?: NumFieldOptions): Field;
@@ -1 +1 @@
1
- {"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEvG,UAAU,YAAY;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAUtF;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAY7H;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,KAAK,CAUrF;AAED,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE;;;;EAM1C"}
1
+ {"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEvG,UAAU,YAAY;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,KAAK,eAAe,GAAG,YAAY,CAAA;AAEnC,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;;;;;;;;EAU7E;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAUtF;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAY7H;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,KAAK,CAUrF;AAED,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE;;;;EAM1C"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.360",
4
+ "version": "0.0.374",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="alert" :class="[type]" v-if="!isDismissed" :dismissable="dismissable" >
3
3
  <Icon class="alert_icon" :icon="type" :size="2" :color="color[type]"/>
4
- <p>
4
+ <p class="m-0">
5
5
  {{ message }}
6
6
  </p>
7
7
  <Btn @click="isDismissed = true" flat thin class="alert_close" icon="close"/>
@@ -1,57 +1,85 @@
1
1
  <template>
2
2
  <div
3
- class="bgl_card" :class="{
4
- thin, border: outline,
3
+ class="bgl_card"
4
+ :class="{
5
+ thin,
6
+ 'border': outline,
5
7
  'h-100': h100,
6
8
  [bg || '']: bg,
7
9
  'overflow-x': overflowX,
8
- 'overflow-y': overflowY
9
- }"
10
- >
10
+ 'overflow-y': overflowY,
11
+ }">
12
+ <span class="card_label">
13
+ {{ label }}
14
+ </span>
11
15
  <slot />
12
16
  </div>
13
17
  </template>
14
18
 
15
19
  <script setup lang="ts">
16
20
  defineProps<{
17
- thin?: boolean;
18
- outline?: boolean;
19
- h100?: boolean;
20
- overflowX?: boolean;
21
- overflowY?: boolean;
22
- bg?: 'gray' | 'light' | 'dark' | 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'white' | 'transparent';
21
+ label?: string;
22
+ thin?: boolean;
23
+ outline?: boolean;
24
+ h100?: boolean;
25
+ overflowX?: boolean;
26
+ overflowY?: boolean;
27
+ bg?:
28
+ | 'gray'
29
+ | 'light'
30
+ | 'dark'
31
+ | 'primary'
32
+ | 'secondary'
33
+ | 'success'
34
+ | 'danger'
35
+ | 'warning'
36
+ | 'info'
37
+ | 'white'
38
+ | 'transparent';
23
39
  }>();
24
40
  </script>
25
41
 
26
42
  <style>
43
+ .card_label {
44
+ font-size: 0.7rem;
45
+ font-weight: 300;
46
+ background: rgb(255, 255, 255);
47
+ padding: 0px 12px;
48
+ display: block;
49
+ position: absolute;
50
+ border-radius: 100px;
51
+ top: -8px;
52
+ left: 10px;
53
+ }
27
54
  .bgl_card {
28
- border-radius: var(--card-border-radius);
29
- background: var(--bgl-white);
30
- padding: 2rem 2rem;
55
+ border-radius: var(--card-border-radius);
56
+ background: var(--bgl-white);
57
+ padding: 2rem 2rem;
58
+ position: relative;
31
59
  }
32
60
 
33
61
  .bgl_card.gray {
34
- background: var(--bgl-gray-20);
62
+ background: var(--bgl-gray-20);
35
63
  }
36
64
 
37
65
  .bgl_card.border {
38
- border: 1px solid var(--border-color);
39
- background-color: transparent;
66
+ border: 1px solid var(--border-color);
67
+ background-color: transparent;
40
68
  }
41
69
 
42
70
  .bgl_card.thin {
43
- padding: 1rem 1rem;
71
+ padding: 1rem 1rem;
44
72
  }
45
73
  .bgl_card.BagelTable {
46
- height: 100%;
47
- overflow: auto;
48
- padding-top: 0;
74
+ height: 100%;
75
+ overflow: auto;
76
+ padding-top: 0;
49
77
  }
50
78
  .bgl_card.thin .tabs {
51
- margin-bottom: 1rem;
79
+ margin-bottom: 1rem;
52
80
  }
53
81
 
54
82
  .bgl_card .bgl_card.tabs-top {
55
- padding: 0;
83
+ padding: 0;
56
84
  }
57
85
  </style>
@@ -6,12 +6,10 @@
6
6
  mode="out-in"
7
7
  appear
8
8
  >
9
- <div class="m_overflow-hidden-x">
10
- <component
11
- :is="Component"
12
- :key="route?.params.itemID"
13
- />
14
- </div>
9
+ <component
10
+ :is="Component"
11
+ :key="route?.params.itemID"
12
+ />
15
13
  </transition>
16
14
  </router-view>
17
15
  </template>
@@ -1,58 +1,87 @@
1
1
  <template>
2
- <component :required="field.required" v-bind="bindAttrs(field?.attrs || {}, fieldData, modelValue)"
3
- :class="classify(fieldData, modelValue, field.class, field.attrs?.class)" v-if="vIf" :is="is" :label="field.label"
4
- :id="field.id" :placeholder="field.placeholder || field.label" v-model="fieldData"
5
- :defaultValue="field.defaultValue" :options="bindAttrs({ options: field.options }, fieldData, modelValue).options"
6
- :helptext="field.helptext" @update:modelValue="($event: any) => field?.onUpdate?.($event, formData)">
7
- {{ field.transform?.(fieldData, modelValue) || fieldData || '' }}
8
- <BglField v-model="formData" v-for="(child, ii) in field.children" :key="child.id || ii" :field="child" />
9
- </component>
2
+ <component
3
+ :required="field.required"
4
+ v-bind="bindAttrs(field?.attrs || {}, fieldData, modelValue)"
5
+ :class="classify(fieldData, modelValue, field.class, field.attrs?.class)"
6
+ v-if="vIf"
7
+ :is="is"
8
+ :label="field.label"
9
+ :id="field.id"
10
+ :placeholder="field.placeholder || field.label"
11
+ v-model="fieldData"
12
+ :defaultValue="field.defaultValue"
13
+ :options="
14
+ bindAttrs({ options: field.options }, fieldData, modelValue).options
15
+ "
16
+ :helptext="field.helptext"
17
+ @update:modelValue="($event: any) => field?.onUpdate?.($event, formData)">
18
+ {{ field.transform?.(fieldData, modelValue) || fieldData || '' }}
19
+ <BglField
20
+ v-model="formData"
21
+ v-for="(child, ii) in field.children"
22
+ :key="child.id || ii"
23
+ :field="child" />
24
+ </component>
10
25
  </template>
11
26
 
12
27
  <script lang="ts" setup>
13
28
  import {
14
- type Field, bindAttrs, classify, SelectInput, TextInput, ToggleInput, CheckInput,
29
+ type Field,
30
+ bindAttrs,
31
+ classify,
32
+ SelectInput,
33
+ TextInput,
34
+ ToggleInput,
35
+ CheckInput,
36
+ RichText,
15
37
  } from '@bagelink/vue';
16
38
 
17
- const props = withDefaults(defineProps<{
18
- field: Field
19
- modelValue: Record<string, any>
20
- }>(), {
21
- modelValue: () => ({}),
22
- });
39
+ const props = withDefaults(
40
+ defineProps<{
41
+ field: Field;
42
+ modelValue: Record<string, any>;
43
+ }>(),
44
+ {
45
+ modelValue: () => ({}),
46
+ }
47
+ );
23
48
 
24
49
  const is = $computed(() => {
25
- if (props.field.$el === 'text') return TextInput;
26
- if (props.field.$el === 'select') return SelectInput;
27
- if (props.field.$el === 'toggle') return ToggleInput;
28
- if (props.field.$el === 'check') return CheckInput;
29
- return props.field.$el || 'div';
50
+ if (props.field.$el === 'text') return TextInput;
51
+ if (props.field.$el === 'select') return SelectInput;
52
+ if (props.field.$el === 'toggle') return ToggleInput;
53
+ if (props.field.$el === 'check') return CheckInput;
54
+ if (props.field.$el === 'richtext') return RichText;
55
+ return props.field.$el || 'div';
30
56
  });
31
57
 
32
58
  const emit = defineEmits(['update:modelValue']);
33
59
 
34
60
  const formData = $computed({
35
- get: () => props.modelValue,
36
- set: (val: any) => emit('update:modelValue', val),
61
+ get: () => props.modelValue,
62
+ set: (val: any) => emit('update:modelValue', val),
37
63
  });
38
64
 
39
65
  const fieldData = $computed({
40
- set: (val: any) => {
41
- if (!props.field.id) return;
42
- const data = { ...props.modelValue } || {};
43
- data[props.field.id] = val;
44
- emit('update:modelValue', data);
45
- },
46
- get: () => (props.field.id ? props.modelValue[props.field.id] : props.field.defaultValue || ''),
66
+ set: (val: any) => {
67
+ if (!props.field.id) return;
68
+ const data = { ...props.modelValue } || {};
69
+ data[props.field.id] = val;
70
+ emit('update:modelValue', data);
71
+ },
72
+ get: () => {
73
+ if (props.field.id) return props.modelValue[props.field.id];
74
+ return props.field.defaultValue || '';
75
+ },
47
76
  });
48
77
 
49
78
  const vIf = $computed(() => {
50
- if (props.field['v-if'] === undefined) return true;
51
- if (typeof props.field['v-if'] === 'boolean') return props.field['v-if'];
52
- if (typeof props.field['v-if'] === 'string') return true;
53
- if (typeof props.field['v-if'] === 'function') {
54
- return props.field['v-if']?.(fieldData, formData);
55
- }
56
- return true;
79
+ if (props.field['v-if'] === undefined) return true;
80
+ if (typeof props.field['v-if'] === 'boolean') return props.field['v-if'];
81
+ if (typeof props.field['v-if'] === 'string') return true;
82
+ if (typeof props.field['v-if'] === 'function') {
83
+ return props.field['v-if']?.(fieldData, formData);
84
+ }
85
+ return true;
57
86
  });
58
87
  </script>