@7pmlabs/design-system 1.0.10 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -6
- package/dist/design-system.css +1 -1
- package/dist/design-system.js +66 -60
- package/dist/design-system100.js +4 -5
- package/dist/design-system100.js.map +1 -1
- package/dist/design-system101.js +53 -506
- package/dist/design-system101.js.map +1 -1
- package/dist/{design-system93.js → design-system102.js} +1 -1
- package/dist/design-system102.js.map +1 -0
- package/dist/design-system103.js +13 -5
- package/dist/design-system103.js.map +1 -1
- package/dist/design-system104.js +109 -7
- package/dist/design-system104.js.map +1 -1
- package/dist/design-system106.js +9 -0
- package/dist/design-system106.js.map +1 -0
- package/dist/design-system107.js +206 -6
- package/dist/design-system107.js.map +1 -1
- package/dist/design-system109.js +9 -0
- package/dist/design-system109.js.map +1 -0
- package/dist/design-system110.js +507 -6
- package/dist/design-system110.js.map +1 -1
- package/dist/design-system112.js +8 -0
- package/dist/design-system112.js.map +1 -0
- package/dist/design-system113.js +7 -5
- package/dist/design-system113.js.map +1 -1
- package/dist/design-system114.js +209 -9
- package/dist/design-system114.js.map +1 -1
- package/dist/design-system116.js +9 -0
- package/dist/design-system116.js.map +1 -0
- package/dist/design-system117.js +224 -6
- package/dist/design-system117.js.map +1 -1
- package/dist/design-system119.js +9 -0
- package/dist/design-system119.js.map +1 -0
- package/dist/design-system12.js.map +1 -1
- package/dist/design-system120.js +163 -5
- package/dist/design-system120.js.map +1 -1
- package/dist/design-system122.js +5 -90
- package/dist/design-system122.js.map +1 -1
- package/dist/design-system123.js +12 -0
- package/dist/design-system123.js.map +1 -0
- package/dist/design-system124.js +274 -5
- package/dist/design-system124.js.map +1 -1
- package/dist/design-system126.js +9 -0
- package/dist/design-system126.js.map +1 -0
- package/dist/design-system127.js +16 -5
- package/dist/design-system127.js.map +1 -1
- package/dist/design-system129.js +8 -0
- package/dist/design-system129.js.map +1 -0
- package/dist/design-system130.js +12 -5
- package/dist/design-system130.js.map +1 -1
- package/dist/design-system131.js +76 -137
- package/dist/design-system131.js.map +1 -1
- package/dist/design-system133.js +1 -1
- package/dist/design-system133.js.map +1 -1
- package/dist/design-system134.js +37 -90
- package/dist/design-system134.js.map +1 -1
- package/dist/design-system136.js +1 -1
- package/dist/design-system136.js.map +1 -1
- package/dist/design-system137.js +226 -20
- package/dist/design-system137.js.map +1 -1
- package/dist/design-system139.js +4 -5
- package/dist/design-system139.js.map +1 -1
- package/dist/design-system140.js +151 -9
- package/dist/design-system140.js.map +1 -1
- package/dist/design-system142.js +3 -2
- package/dist/design-system142.js.map +1 -1
- package/dist/design-system143.js +93 -19
- package/dist/design-system143.js.map +1 -1
- package/dist/design-system145.js +5 -158
- package/dist/design-system145.js.map +1 -1
- package/dist/design-system146.js +12 -0
- package/dist/design-system146.js.map +1 -0
- package/dist/design-system147.js +37 -5
- package/dist/design-system147.js.map +1 -1
- package/dist/design-system148.js +4 -307
- package/dist/design-system148.js.map +1 -1
- package/dist/design-system149.js +24 -0
- package/dist/{design-system144.js.map → design-system149.js.map} +1 -1
- package/dist/design-system150.js +2 -3
- package/dist/design-system150.js.map +1 -1
- package/dist/design-system151.js +131 -213
- package/dist/design-system151.js.map +1 -1
- package/dist/design-system153.js +1 -1
- package/dist/design-system153.js.map +1 -1
- package/dist/design-system154.js +278 -160
- package/dist/design-system154.js.map +1 -1
- package/dist/design-system156.js +1 -1
- package/dist/design-system156.js.map +1 -1
- package/dist/design-system157.js +240 -3
- package/dist/design-system157.js.map +1 -1
- package/dist/design-system159.js +8 -0
- package/dist/design-system159.js.map +1 -0
- package/dist/design-system16.js.map +1 -1
- package/dist/design-system160.js +189 -6
- package/dist/design-system160.js.map +1 -1
- package/dist/design-system162.js +8 -0
- package/dist/design-system162.js.map +1 -0
- package/dist/design-system163.js +3 -6
- package/dist/design-system163.js.map +1 -1
- package/dist/design-system164.js +46 -57
- package/dist/design-system164.js.map +1 -1
- package/dist/design-system166.js +2 -2
- package/dist/design-system166.js.map +1 -1
- package/dist/design-system167.js +44 -170
- package/dist/design-system167.js.map +1 -1
- package/dist/design-system169.js +2 -2
- package/dist/design-system169.js.map +1 -1
- package/dist/design-system170.js +55 -101
- package/dist/design-system170.js.map +1 -1
- package/dist/design-system172.js +5 -4
- package/dist/design-system172.js.map +1 -1
- package/dist/design-system173.js +182 -11
- package/dist/design-system173.js.map +1 -1
- package/dist/design-system175.js +9 -0
- package/dist/design-system175.js.map +1 -0
- package/dist/design-system176.js +115 -6
- package/dist/design-system176.js.map +1 -1
- package/dist/design-system178.js +8 -0
- package/dist/design-system178.js.map +1 -0
- package/dist/design-system179.js +11 -5
- package/dist/design-system179.js.map +1 -1
- package/dist/design-system180.js +444 -70
- package/dist/design-system180.js.map +1 -1
- package/dist/design-system182.js +5 -4
- package/dist/design-system182.js.map +1 -1
- package/dist/design-system183.js +21 -21
- package/dist/design-system183.js.map +1 -1
- package/dist/design-system185.js +1 -1
- package/dist/design-system185.js.map +1 -1
- package/dist/design-system186.js +85 -25
- package/dist/design-system186.js.map +1 -1
- package/dist/design-system188.js +1 -1
- package/dist/design-system188.js.map +1 -1
- package/dist/design-system189.js +7 -5
- package/dist/design-system189.js.map +1 -1
- package/dist/design-system19.js.map +1 -1
- package/dist/design-system191.js +1 -1
- package/dist/design-system191.js.map +1 -1
- package/dist/design-system192.js +20 -23
- package/dist/design-system192.js.map +1 -1
- package/dist/design-system194.js +1 -1
- package/dist/design-system194.js.map +1 -1
- package/dist/design-system195.js +24 -323
- package/dist/design-system195.js.map +1 -1
- package/dist/design-system197.js +1 -1
- package/dist/design-system197.js.map +1 -1
- package/dist/design-system198.js +19 -88
- package/dist/design-system198.js.map +1 -1
- package/dist/design-system200.js +1 -1
- package/dist/design-system200.js.map +1 -1
- package/dist/design-system201.js +330 -17
- package/dist/design-system201.js.map +1 -1
- package/dist/design-system203.js +5 -3
- package/dist/design-system203.js.map +1 -1
- package/dist/design-system204.js +88 -407
- package/dist/design-system204.js.map +1 -1
- package/dist/design-system206.js +1 -1
- package/dist/design-system206.js.map +1 -1
- package/dist/design-system207.js +17 -106
- package/dist/design-system207.js.map +1 -1
- package/dist/{design-system202.js → design-system208.js} +2 -2
- package/dist/{design-system202.js.map → design-system208.js.map} +1 -1
- package/dist/design-system209.js +3 -6
- package/dist/design-system209.js.map +1 -1
- package/dist/design-system210.js +403 -90
- package/dist/design-system210.js.map +1 -1
- package/dist/design-system212.js +4 -5
- package/dist/design-system212.js.map +1 -1
- package/dist/design-system213.js +45 -723
- package/dist/design-system213.js.map +1 -1
- package/dist/design-system215.js +1 -1
- package/dist/design-system215.js.map +1 -1
- package/dist/design-system216.js +88 -11
- package/dist/design-system216.js.map +1 -1
- package/dist/design-system217.js +4 -525
- package/dist/design-system217.js.map +1 -1
- package/dist/design-system218.js +111 -0
- package/dist/design-system218.js.map +1 -0
- package/dist/design-system22.js.map +1 -1
- package/dist/design-system220.js +6 -3
- package/dist/design-system220.js.map +1 -1
- package/dist/design-system221.js +103 -43
- package/dist/design-system221.js.map +1 -1
- package/dist/design-system223.js +6 -283
- package/dist/design-system223.js.map +1 -1
- package/dist/design-system224.js +740 -0
- package/dist/design-system224.js.map +1 -0
- package/dist/design-system226.js +5 -119
- package/dist/design-system226.js.map +1 -1
- package/dist/{design-system60.js → design-system227.js} +6 -8
- package/dist/design-system227.js.map +1 -0
- package/dist/design-system228.js +525 -5
- package/dist/design-system228.js.map +1 -1
- package/dist/{design-system219.js → design-system230.js} +2 -2
- package/dist/{design-system219.js.map → design-system230.js.map} +1 -1
- package/dist/design-system231.js +3 -5
- package/dist/design-system231.js.map +1 -1
- package/dist/design-system232.js +42 -50
- package/dist/design-system232.js.map +1 -1
- package/dist/design-system233.js +1 -1
- package/dist/design-system233.js.map +1 -1
- package/dist/design-system234.js +254 -141
- package/dist/design-system234.js.map +1 -1
- package/dist/design-system236.js +1 -1
- package/dist/design-system236.js.map +1 -1
- package/dist/design-system237.js +119 -7
- package/dist/design-system237.js.map +1 -1
- package/dist/design-system239.js +8 -0
- package/dist/design-system239.js.map +1 -0
- package/dist/design-system240.js +112 -5
- package/dist/design-system240.js.map +1 -1
- package/dist/design-system242.js +8 -0
- package/dist/design-system242.js.map +1 -0
- package/dist/design-system243.js +54 -6
- package/dist/design-system243.js.map +1 -1
- package/dist/design-system244.js +4 -7
- package/dist/design-system244.js.map +1 -1
- package/dist/design-system245.js +139 -343
- package/dist/design-system245.js.map +1 -1
- package/dist/design-system247.js +4 -5
- package/dist/design-system247.js.map +1 -1
- package/dist/design-system248.js +10 -0
- package/dist/design-system248.js.map +1 -0
- package/dist/{design-system238.js → design-system249.js} +2 -2
- package/dist/design-system249.js.map +1 -0
- package/dist/design-system25.js.map +1 -1
- package/dist/design-system251.js +8 -0
- package/dist/design-system251.js.map +1 -0
- package/dist/{design-system241.js → design-system252.js} +1 -1
- package/dist/design-system252.js.map +1 -0
- package/dist/design-system254.js +9 -0
- package/dist/design-system254.js.map +1 -0
- package/dist/design-system255.js +12 -0
- package/dist/design-system255.js.map +1 -0
- package/dist/design-system256.js +769 -0
- package/dist/design-system256.js.map +1 -0
- package/dist/design-system258.js +9 -0
- package/dist/design-system258.js.map +1 -0
- package/dist/design-system259.js +10 -0
- package/dist/design-system259.js.map +1 -0
- package/dist/design-system260.js +377 -0
- package/dist/design-system260.js.map +1 -0
- package/dist/design-system262.js +9 -0
- package/dist/design-system262.js.map +1 -0
- package/dist/design-system28.js.map +1 -1
- package/dist/design-system3.js.map +1 -1
- package/dist/design-system30.js +21 -138
- package/dist/design-system30.js.map +1 -1
- package/dist/design-system32.js +5 -4
- package/dist/design-system32.js.map +1 -1
- package/dist/design-system33.js +488 -14
- package/dist/design-system33.js.map +1 -1
- package/dist/design-system35.js +1 -1
- package/dist/design-system35.js.map +1 -1
- package/dist/design-system36.js +135 -17
- package/dist/design-system36.js.map +1 -1
- package/dist/design-system38.js +1 -1
- package/dist/design-system38.js.map +1 -1
- package/dist/design-system39.js +16 -11
- package/dist/design-system39.js.map +1 -1
- package/dist/design-system4.js.map +1 -1
- package/dist/design-system41.js +8 -0
- package/dist/design-system41.js.map +1 -0
- package/dist/design-system42.js +26 -5
- package/dist/design-system42.js.map +1 -1
- package/dist/design-system44.js +5 -71
- package/dist/design-system44.js.map +1 -1
- package/dist/design-system45.js +353 -0
- package/dist/design-system45.js.map +1 -0
- package/dist/design-system47.js +5 -50
- package/dist/design-system47.js.map +1 -1
- package/dist/design-system48.js +11 -4
- package/dist/design-system48.js.map +1 -1
- package/dist/design-system49.js +476 -3
- package/dist/design-system49.js.map +1 -1
- package/dist/design-system51.js +8 -0
- package/dist/design-system51.js.map +1 -0
- package/dist/design-system52.js +3 -5
- package/dist/design-system52.js.map +1 -1
- package/dist/design-system53.js +56 -83
- package/dist/design-system53.js.map +1 -1
- package/dist/design-system55.js +5 -4
- package/dist/design-system55.js.map +1 -1
- package/dist/design-system56.js +50 -11
- package/dist/design-system56.js.map +1 -1
- package/dist/design-system57.js +4 -591
- package/dist/design-system57.js.map +1 -1
- package/dist/design-system58.js +6 -0
- package/dist/design-system58.js.map +1 -0
- package/dist/design-system59.js +64 -5
- package/dist/design-system59.js.map +1 -1
- package/dist/design-system61.js +5 -696
- package/dist/design-system61.js.map +1 -1
- package/dist/design-system62.js +101 -0
- package/dist/design-system62.js.map +1 -0
- package/dist/design-system64.js +5 -158
- package/dist/design-system64.js.map +1 -1
- package/dist/design-system65.js +14 -0
- package/dist/design-system65.js.map +1 -0
- package/dist/design-system66.js +591 -5
- package/dist/design-system66.js.map +1 -1
- package/dist/design-system68.js +3 -2
- package/dist/design-system68.js.map +1 -1
- package/dist/design-system69.js +13 -49
- package/dist/design-system69.js.map +1 -1
- package/dist/design-system7.js.map +1 -1
- package/dist/design-system70.js +699 -0
- package/dist/{design-system63.js.map → design-system70.js.map} +1 -1
- package/dist/design-system72.js +5 -199
- package/dist/design-system72.js.map +1 -1
- package/dist/design-system73.js +161 -0
- package/dist/design-system73.js.map +1 -0
- package/dist/design-system75.js +5 -7
- package/dist/design-system75.js.map +1 -1
- package/dist/design-system76.js +25 -269
- package/dist/design-system76.js.map +1 -1
- package/dist/design-system77.js +7 -0
- package/dist/design-system77.js.map +1 -0
- package/dist/design-system78.js +49 -5
- package/dist/design-system78.js.map +1 -1
- package/dist/{design-system71.js → design-system80.js} +2 -2
- package/dist/{design-system71.js.map → design-system80.js.map} +1 -1
- package/dist/design-system81.js +199 -5
- package/dist/design-system81.js.map +1 -1
- package/dist/design-system83.js +5 -99
- package/dist/design-system83.js.map +1 -1
- package/dist/design-system84.js +10 -0
- package/dist/design-system84.js.map +1 -0
- package/dist/design-system85.js +273 -5
- package/dist/design-system85.js.map +1 -1
- package/dist/design-system87.js +8 -0
- package/dist/design-system87.js.map +1 -0
- package/dist/design-system88.js +57 -5
- package/dist/design-system88.js.map +1 -1
- package/dist/design-system90.js +8 -0
- package/dist/design-system90.js.map +1 -0
- package/dist/design-system91.js +11 -5
- package/dist/design-system91.js.map +1 -1
- package/dist/design-system92.js +98 -53
- package/dist/design-system92.js.map +1 -1
- package/dist/design-system94.js +5 -13
- package/dist/design-system94.js.map +1 -1
- package/dist/design-system95.js +61 -104
- package/dist/design-system95.js.map +1 -1
- package/dist/design-system97.js +4 -5
- package/dist/design-system97.js.map +1 -1
- package/dist/design-system98.js +80 -198
- package/dist/design-system98.js.map +1 -1
- package/dist/types/components/BCalendar/BCalendar.spec.d.ts +1 -0
- package/dist/types/components/BCalendar/BCalendar.vue.d.ts +114 -0
- package/dist/types/components/BCalendar/index.d.ts +2 -0
- package/dist/types/components/BCalendar/types.d.ts +54 -0
- package/dist/types/components/BCarousel/BCarousel.spec.d.ts +1 -0
- package/dist/types/components/BCarousel/BCarousel.vue.d.ts +133 -0
- package/dist/types/components/BCarousel/index.d.ts +2 -0
- package/dist/types/components/BCarousel/types.d.ts +15 -0
- package/dist/types/components/BDivider/types.d.ts +2 -2
- package/dist/types/components/BMasonry/types.d.ts +2 -2
- package/dist/types/components/BPagination/BPagination.vue.d.ts +1 -1
- package/dist/types/components/BStatistic/BStatistic.spec.d.ts +1 -0
- package/dist/types/components/BStatistic/BStatistic.vue.d.ts +44 -0
- package/dist/types/components/BStatistic/BStatisticTimer.vue.d.ts +50 -0
- package/dist/types/components/BStatistic/index.d.ts +3 -0
- package/dist/types/components/BStatistic/types.d.ts +6 -0
- package/dist/types/components/BTreeSelect/BTreeSelect.spec.d.ts +1 -0
- package/dist/types/components/BTreeSelect/BTreeSelect.vue.d.ts +143 -0
- package/dist/types/components/BTreeSelect/index.d.ts +2 -0
- package/dist/types/components/BTreeSelect/types.d.ts +77 -0
- package/dist/types/components/index.d.ts +4 -0
- package/dist/types/types.d.ts +3 -0
- package/package.json +18 -15
- package/dist/design-system105.js +0 -212
- package/dist/design-system105.js.map +0 -1
- package/dist/design-system108.js +0 -227
- package/dist/design-system108.js.map +0 -1
- package/dist/design-system111.js +0 -166
- package/dist/design-system111.js.map +0 -1
- package/dist/design-system115.js +0 -277
- package/dist/design-system115.js.map +0 -1
- package/dist/design-system118.js +0 -19
- package/dist/design-system118.js.map +0 -1
- package/dist/design-system121.js +0 -15
- package/dist/design-system121.js.map +0 -1
- package/dist/design-system125.js +0 -45
- package/dist/design-system125.js.map +0 -1
- package/dist/design-system128.js +0 -236
- package/dist/design-system128.js.map +0 -1
- package/dist/design-system141.js +0 -40
- package/dist/design-system141.js.map +0 -1
- package/dist/design-system144.js +0 -7
- package/dist/design-system158.js +0 -61
- package/dist/design-system158.js.map +0 -1
- package/dist/design-system161.js +0 -59
- package/dist/design-system161.js.map +0 -1
- package/dist/design-system174.js +0 -465
- package/dist/design-system174.js.map +0 -1
- package/dist/design-system177.js +0 -38
- package/dist/design-system177.js.map +0 -1
- package/dist/design-system222.js +0 -7
- package/dist/design-system222.js.map +0 -1
- package/dist/design-system225.js +0 -8
- package/dist/design-system225.js.map +0 -1
- package/dist/design-system229.js +0 -115
- package/dist/design-system229.js.map +0 -1
- package/dist/design-system238.js.map +0 -1
- package/dist/design-system241.js.map +0 -1
- package/dist/design-system40.js +0 -479
- package/dist/design-system40.js.map +0 -1
- package/dist/design-system43.js +0 -6
- package/dist/design-system43.js.map +0 -1
- package/dist/design-system46.js +0 -9
- package/dist/design-system46.js.map +0 -1
- package/dist/design-system50.js +0 -67
- package/dist/design-system50.js.map +0 -1
- package/dist/design-system60.js.map +0 -1
- package/dist/design-system63.js +0 -8
- package/dist/design-system67.js +0 -32
- package/dist/design-system67.js.map +0 -1
- package/dist/design-system74.js +0 -8
- package/dist/design-system74.js.map +0 -1
- package/dist/design-system79.js +0 -60
- package/dist/design-system79.js.map +0 -1
- package/dist/design-system82.js +0 -14
- package/dist/design-system82.js.map +0 -1
- package/dist/design-system86.js +0 -69
- package/dist/design-system86.js.map +0 -1
- package/dist/design-system89.js +0 -91
- package/dist/design-system89.js.map +0 -1
- package/dist/design-system93.js.map +0 -1
package/dist/design-system97.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import e from "./design-
|
|
2
|
-
import t from "./design-system95.js";
|
|
1
|
+
import e from "./design-system95.js";
|
|
3
2
|
/* empty css */
|
|
4
|
-
//#region src/components/
|
|
5
|
-
var
|
|
3
|
+
//#region src/components/BFloatButton/BFloatButtonBackTop.vue
|
|
4
|
+
var t = e;
|
|
6
5
|
//#endregion
|
|
7
|
-
export {
|
|
6
|
+
export { t as default };
|
|
8
7
|
|
|
9
8
|
//# sourceMappingURL=design-system97.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system97.js","names":[],"sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"design-system97.js","names":[],"sources":["../src/components/BFloatButton/BFloatButtonBackTop.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onBeforeUnmount, onMounted, ref } from 'vue';\nimport BFloatButton from './BFloatButton.vue';\nimport { BFloatButtonShape, BFloatButtonType } from './types.ts';\n\n// ─────────────────────────────────────────────\n// Props & emits\n// ─────────────────────────────────────────────\nconst {\n duration = 450,\n target,\n visibilityHeight = 400,\n shape = BFloatButtonShape.Circle,\n type = BFloatButtonType.Default,\n} = defineProps<{\n /**\n * Scroll animation duration in milliseconds.\n * @default 450\n */\n duration?: number;\n /**\n * A function that returns the scrollable container.\n * Defaults to `window`. May return `null` (e.g. if the element hasn't mounted yet).\n */\n target?: () => HTMLElement | Window | null;\n /**\n * The button becomes visible when the scroll position exceeds this value (px).\n * @default 400\n */\n visibilityHeight?: number;\n /**\n * Shape of the back-top button.\n * @default 'circle'\n */\n shape?: `${BFloatButtonShape}`;\n /**\n * Type of the back-top button.\n * @default 'default'\n */\n type?: `${BFloatButtonType}`;\n}>();\n\nconst emit = defineEmits<{\n /** Emitted when the back-top button is clicked. */\n (e: 'click', event: MouseEvent): void;\n}>();\n\ndefineSlots<{\n /** Custom content for the button. If omitted, renders an up-arrow icon. */\n default?(): unknown;\n}>();\n\n// ─────────────────────────────────────────────\n// Scroll logic\n// ─────────────────────────────────────────────\nconst visible = ref(false);\nlet scrollContainer: HTMLElement | Window = window;\n\nfunction getScrollTop(): number {\n if (scrollContainer === window) return window.scrollY;\n return (scrollContainer as HTMLElement).scrollTop;\n}\n\nfunction onScroll() {\n visible.value = getScrollTop() > visibilityHeight;\n}\n\nfunction easeInOutCubic(t: number): number {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n}\n\nfunction scrollToTop() {\n const startTime = performance.now();\n const startTop = getScrollTop();\n\n function step(now: number) {\n const elapsed = now - startTime;\n const progress = Math.min(elapsed / duration, 1);\n const eased = easeInOutCubic(progress);\n const newTop = startTop * (1 - eased);\n\n if (scrollContainer === window) {\n window.scrollTo(0, newTop);\n } else {\n (scrollContainer as HTMLElement).scrollTop = newTop;\n }\n\n if (progress < 1) {\n requestAnimationFrame(step);\n }\n }\n\n requestAnimationFrame(step);\n}\n\nfunction handleClick(event: MouseEvent) {\n scrollToTop();\n emit('click', event);\n}\n\nonMounted(() => {\n scrollContainer = target?.() ?? window;\n scrollContainer.addEventListener('scroll', onScroll, { passive: true });\n onScroll();\n});\n\nonBeforeUnmount(() => {\n scrollContainer.removeEventListener('scroll', onScroll);\n});\n\nconst isVisible = visible;\n</script>\n\n<template>\n <Transition name=\"b-float-button-backtop\">\n <BFloatButton\n v-if=\"isVisible\"\n :shape=\"shape\"\n :type=\"type\"\n aria-label=\"Back to top\"\n class=\"b-float-button-backtop\"\n @click=\"handleClick\"\n >\n <template #icon>\n <slot>\n <!-- Default: up arrow -->\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\" />\n </svg>\n </slot>\n </template>\n </BFloatButton>\n </Transition>\n</template>\n\n<style>\n/* ─────────────────────────────────────────────\n BackTop enter/leave transitions\n ───────────────────────────────────────────── */\n.b-float-button-backtop-enter-active,\n.b-float-button-backtop-leave-active {\n transition:\n opacity 300ms ease,\n transform 300ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.b-float-button-backtop-enter-from,\n.b-float-button-backtop-leave-to {\n opacity: 0;\n transform: scale(0.8);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .b-float-button-backtop-enter-active,\n .b-float-button-backtop-leave-active {\n transition-duration: 0ms;\n }\n}\n</style>\n"],"mappings":""}
|
package/dist/design-system98.js
CHANGED
|
@@ -1,209 +1,91 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
//#region src/components/BForm/BFormItem.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var x = ["data-form-field", "aria-labelledby"], S = ["id", "for"], C = {
|
|
8
|
-
key: 0,
|
|
9
|
-
class: "b-form-item__required-mark",
|
|
1
|
+
import { BFloatButtonGroupPlacement as e, BFloatButtonShape as t, BFloatButtonTrigger as n } from "./design-system91.js";
|
|
2
|
+
import { computed as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, defineComponent as s, normalizeClass as c, onBeforeUnmount as l, openBlock as u, provide as d, ref as f, renderSlot as p, watch as m } from "vue";
|
|
3
|
+
//#region src/components/BFloatButton/BFloatButtonGroup.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var h = ["role", "aria-label"], g = ["aria-hidden", "inert"], _ = ["aria-expanded", "aria-label"], v = { class: "b-float-button__body" }, y = {
|
|
5
|
+
class: "b-float-button__icon",
|
|
10
6
|
"aria-hidden": "true"
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
class: "b-form-item__optional-mark"
|
|
14
|
-
}, T = {
|
|
15
|
-
key: 2,
|
|
16
|
-
class: "b-form-item__colon",
|
|
17
|
-
"aria-hidden": "true"
|
|
18
|
-
}, E = ["title"], D = { class: "b-form-item__control" }, O = { class: "b-form-item__control-input" }, k = {
|
|
19
|
-
key: 0,
|
|
20
|
-
class: "b-form-item__feedback-icon"
|
|
21
|
-
}, ee = {
|
|
22
|
-
key: 0,
|
|
23
|
-
viewBox: "64 64 896 896",
|
|
24
|
-
width: "14",
|
|
25
|
-
height: "14",
|
|
26
|
-
fill: "currentColor",
|
|
27
|
-
"aria-hidden": "true"
|
|
28
|
-
}, te = {
|
|
29
|
-
key: 1,
|
|
30
|
-
viewBox: "64 64 896 896",
|
|
31
|
-
width: "14",
|
|
32
|
-
height: "14",
|
|
33
|
-
fill: "currentColor",
|
|
34
|
-
"aria-hidden": "true"
|
|
35
|
-
}, A = {
|
|
36
|
-
key: 2,
|
|
37
|
-
viewBox: "64 64 896 896",
|
|
38
|
-
width: "14",
|
|
39
|
-
height: "14",
|
|
40
|
-
fill: "currentColor",
|
|
41
|
-
"aria-hidden": "true"
|
|
42
|
-
}, j = {
|
|
43
|
-
key: 3,
|
|
44
|
-
class: "b-form-item__loading-icon"
|
|
45
|
-
}, M = ["id"], N = {
|
|
46
|
-
key: 1,
|
|
47
|
-
class: "b-form-item__extra"
|
|
48
|
-
}, P = /* @__PURE__ */ f({
|
|
49
|
-
__name: "BFormItem",
|
|
7
|
+
}, b = /* @__PURE__ */ s({
|
|
8
|
+
__name: "BFloatButtonGroup",
|
|
50
9
|
props: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
default: !1
|
|
57
|
-
},
|
|
58
|
-
validateStatus: {},
|
|
59
|
-
help: {},
|
|
60
|
-
extra: {},
|
|
61
|
-
colon: {
|
|
62
|
-
type: [Boolean, null],
|
|
63
|
-
default: null
|
|
64
|
-
},
|
|
65
|
-
labelAlign: {},
|
|
66
|
-
labelWidth: {},
|
|
67
|
-
hidden: {
|
|
68
|
-
type: Boolean,
|
|
69
|
-
default: !1
|
|
70
|
-
},
|
|
71
|
-
noStyle: {
|
|
72
|
-
type: Boolean,
|
|
73
|
-
default: !1
|
|
74
|
-
},
|
|
75
|
-
hasFeedback: {
|
|
76
|
-
type: Boolean,
|
|
77
|
-
default: !1
|
|
78
|
-
},
|
|
79
|
-
validateTrigger: {},
|
|
80
|
-
tooltip: {},
|
|
81
|
-
layout: {}
|
|
10
|
+
open: { type: [Boolean, null] },
|
|
11
|
+
trigger: {},
|
|
12
|
+
placement: {},
|
|
13
|
+
shape: {},
|
|
14
|
+
closeIcon: {}
|
|
82
15
|
},
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
});
|
|
131
|
-
return P({
|
|
132
|
-
validate: B?.validate ?? (() => !0),
|
|
133
|
-
reset: B?.reset ?? (() => {}),
|
|
134
|
-
errors: B?.errors ?? s(() => []),
|
|
135
|
-
isValid: B?.isValid ?? s(() => !0),
|
|
136
|
-
dirty: B?.dirty ?? s(() => !1),
|
|
137
|
-
touched: B?.touched ?? s(() => !1),
|
|
138
|
-
handleBlur: H
|
|
139
|
-
}), (e, t) => f.noStyle ? v(e.$slots, "default", {
|
|
140
|
-
key: 1,
|
|
141
|
-
id: L.value,
|
|
142
|
-
status: W.value,
|
|
143
|
-
disabled: Y.value,
|
|
144
|
-
onBlur: H
|
|
145
|
-
}, void 0, !0) : (g(), l("div", {
|
|
16
|
+
emits: ["openChange", "update:open"],
|
|
17
|
+
setup(s, { emit: b }) {
|
|
18
|
+
let x = s, S = b, C = f(!1);
|
|
19
|
+
m(() => x.open, (e) => {
|
|
20
|
+
e === !0 ? C.value = !0 : e === !1 && (C.value = !1);
|
|
21
|
+
}, { immediate: !0 });
|
|
22
|
+
function w(e) {
|
|
23
|
+
C.value = e, S("update:open", e), S("openChange", e);
|
|
24
|
+
}
|
|
25
|
+
function T() {
|
|
26
|
+
w(!C.value);
|
|
27
|
+
}
|
|
28
|
+
function E() {
|
|
29
|
+
w(!0);
|
|
30
|
+
}
|
|
31
|
+
function D() {
|
|
32
|
+
w(!1);
|
|
33
|
+
}
|
|
34
|
+
let O = null;
|
|
35
|
+
function k() {
|
|
36
|
+
x.trigger === n.Hover && (O &&= (clearTimeout(O), null), E());
|
|
37
|
+
}
|
|
38
|
+
function A() {
|
|
39
|
+
x.trigger === n.Hover && (O = setTimeout(() => D(), 100));
|
|
40
|
+
}
|
|
41
|
+
l(() => {
|
|
42
|
+
O && clearTimeout(O);
|
|
43
|
+
}), d("bFloatButtonGroupShape", r(() => x.shape ?? t.Circle));
|
|
44
|
+
let j = r(() => x.trigger !== void 0), M = r(() => `b-float-button-group--${x.placement ?? e.Top}`), N = r(() => `b-float-button-group--shape-${x.shape ?? t.Circle}`);
|
|
45
|
+
return (e, t) => (u(), a("div", {
|
|
46
|
+
class: c(["b-float-button-group", [
|
|
47
|
+
M.value,
|
|
48
|
+
N.value,
|
|
49
|
+
{
|
|
50
|
+
"b-float-button-group--menu": j.value,
|
|
51
|
+
"b-float-button-group--open": j.value && C.value
|
|
52
|
+
}
|
|
53
|
+
]]),
|
|
54
|
+
role: j.value ? void 0 : "group",
|
|
55
|
+
"aria-label": j.value ? void 0 : "Float button group",
|
|
56
|
+
onMouseenter: k,
|
|
57
|
+
onMouseleave: A
|
|
58
|
+
}, [o("div", {
|
|
59
|
+
class: "b-float-button-group__list",
|
|
60
|
+
"aria-hidden": j.value ? !C.value : void 0,
|
|
61
|
+
inert: j.value && !C.value ? !0 : void 0
|
|
62
|
+
}, [p(e.$slots, "default")], 8, g), j.value ? (u(), a("button", {
|
|
146
63
|
key: 0,
|
|
147
|
-
|
|
148
|
-
"
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
title: f.tooltip,
|
|
167
|
-
role: "img",
|
|
168
|
-
"aria-label": "Help"
|
|
169
|
-
}, [...t[0] ||= [u("svg", {
|
|
170
|
-
viewBox: "64 64 896 896",
|
|
171
|
-
width: "14",
|
|
172
|
-
height: "14",
|
|
64
|
+
type: "button",
|
|
65
|
+
class: c(["b-float-button-group__trigger", [
|
|
66
|
+
"b-float-button",
|
|
67
|
+
`b-float-button--${x.shape ?? "circle"}`,
|
|
68
|
+
"b-float-button--primary"
|
|
69
|
+
]]),
|
|
70
|
+
"aria-expanded": C.value,
|
|
71
|
+
"aria-label": C.value ? "Collapse button group" : "Expand button group",
|
|
72
|
+
onClick: T
|
|
73
|
+
}, [o("span", v, [o("span", y, [C.value ? p(e.$slots, "closeIcon", { key: 0 }, () => [t[0] ||= o("svg", {
|
|
74
|
+
width: "1em",
|
|
75
|
+
height: "1em",
|
|
76
|
+
viewBox: "0 0 24 24",
|
|
77
|
+
fill: "currentColor",
|
|
78
|
+
"aria-hidden": "true"
|
|
79
|
+
}, [o("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" })], -1)]) : p(e.$slots, "icon", { key: 1 }, () => [t[1] ||= o("svg", {
|
|
80
|
+
width: "1em",
|
|
81
|
+
height: "1em",
|
|
82
|
+
viewBox: "0 0 24 24",
|
|
173
83
|
fill: "currentColor",
|
|
174
84
|
"aria-hidden": "true"
|
|
175
|
-
}, [
|
|
176
|
-
u("path", { d: "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" }),
|
|
177
|
-
u("path", { d: "M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7c0-19.7 12.4-37.7 30.9-44.8 59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3z" }),
|
|
178
|
-
u("path", { d: "M512 732a40 40 0 100-80 40 40 0 000 80z" })
|
|
179
|
-
], -1)]], 8, E)) : c("", !0)], 6)) : c("", !0), u("div", D, [
|
|
180
|
-
u("div", O, [v(e.$slots, "default", {
|
|
181
|
-
id: L.value,
|
|
182
|
-
status: W.value,
|
|
183
|
-
disabled: Y.value,
|
|
184
|
-
onBlur: H
|
|
185
|
-
}, void 0, !0), f.hasFeedback && W.value ? (g(), l("span", k, [W.value === "success" ? (g(), l("svg", ee, [...t[1] ||= [u("path", { d: "M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" }, null, -1)]])) : W.value === "error" ? (g(), l("svg", te, [...t[2] ||= [u("path", { d: "M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L512 449.8 295.9 191.7c-3-3.6-7.5-5.7-12.3-5.7H204c-6.8 0-10.5 7.9-6.1 13.1L460.2 512 197.8 824.9A7.95 7.95 0 00204 838h79.8c4.7 0 9.2-2.1 12.3-5.7L512 574.1l216.2 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z" }, null, -1)]])) : W.value === "warning" ? (g(), l("svg", A, [...t[3] ||= [u("path", { d: "M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z" }, null, -1), u("path", { d: "M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48z" }, null, -1)]])) : W.value === "validating" ? (g(), l("span", j, [...t[4] ||= [u("svg", {
|
|
186
|
-
viewBox: "0 0 1024 1024",
|
|
187
|
-
width: "14",
|
|
188
|
-
height: "14",
|
|
189
|
-
fill: "currentColor",
|
|
190
|
-
"aria-hidden": "true"
|
|
191
|
-
}, [u("path", { d: "M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.3 199.3 0 19.9-16.1 36-36 36z" })], -1)]])) : c("", !0)])) : c("", !0)]),
|
|
192
|
-
$.value || e.$slots.help ? (g(), l("div", {
|
|
193
|
-
key: 0,
|
|
194
|
-
class: m(["b-form-item__help", {
|
|
195
|
-
"b-form-item__help--error": W.value === "error",
|
|
196
|
-
"b-form-item__help--warning": W.value === "warning"
|
|
197
|
-
}]),
|
|
198
|
-
id: `${L.value}-help`,
|
|
199
|
-
role: "alert",
|
|
200
|
-
"aria-live": "polite"
|
|
201
|
-
}, [v(e.$slots, "help", {}, () => [d(y($.value), 1)], !0)], 10, M)) : c("", !0),
|
|
202
|
-
f.extra || e.$slots.extra ? (g(), l("div", N, [v(e.$slots, "extra", {}, () => [d(y(f.extra), 1)], !0)])) : c("", !0)
|
|
203
|
-
])], 10, x));
|
|
85
|
+
}, [o("path", { d: "M19 13H13v6h-2v-6H5v-2h6V5h2v6h6v2z" })], -1)])])])], 10, _)) : i("", !0)], 42, h));
|
|
204
86
|
}
|
|
205
87
|
});
|
|
206
88
|
//#endregion
|
|
207
|
-
export {
|
|
89
|
+
export { b as default };
|
|
208
90
|
|
|
209
91
|
//# sourceMappingURL=design-system98.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system98.js","names":[],"sources":["../src/components/BForm/BFormItem.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\"\n\nconst _hoisted_1 = [\"data-form-field\", \"aria-labelledby\"]\nconst _hoisted_2 = [\"id\", \"for\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"b-form-item__required-mark\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"b-form-item__optional-mark\"\n}\nconst _hoisted_5 = {\n key: 2,\n class: \"b-form-item__colon\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_6 = [\"title\"]\nconst _hoisted_7 = { class: \"b-form-item__control\" }\nconst _hoisted_8 = { class: \"b-form-item__control-input\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"b-form-item__feedback-icon\"\n}\nconst _hoisted_10 = {\n key: 0,\n viewBox: \"64 64 896 896\",\n width: \"14\",\n height: \"14\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_11 = {\n key: 1,\n viewBox: \"64 64 896 896\",\n width: \"14\",\n height: \"14\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_12 = {\n key: 2,\n viewBox: \"64 64 896 896\",\n width: \"14\",\n height: \"14\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_13 = {\n key: 3,\n class: \"b-form-item__loading-icon\"\n}\nconst _hoisted_14 = [\"id\"]\nconst _hoisted_15 = {\n key: 1,\n class: \"b-form-item__extra\"\n}\n\nimport { useComponentId } from '@/composables/useComponentId.ts';\nimport { useValidationField } from '@/composables/useValidation.ts';\nimport { computed, inject, ref, watch } from 'vue';\nimport type { ZodType } from 'zod';\nimport { BFormContextKey } from './context.ts';\nimport {\n BFormLayout,\n BFormRequiredMark,\n BFormValidateStatus,\n BFormValidateTrigger,\n} from './types.ts';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BFormItem',\n props: {\n label: {},\n name: {},\n schema: {},\n required: { type: Boolean, default: false },\n validateStatus: {},\n help: {},\n extra: {},\n colon: { type: [Boolean, null], default: null },\n labelAlign: {},\n labelWidth: {},\n hidden: { type: Boolean, default: false },\n noStyle: { type: Boolean, default: false },\n hasFeedback: { type: Boolean, default: false },\n validateTrigger: {},\n tooltip: {},\n layout: {}\n },\n setup(__props: any, { expose: __expose }) {\n\n\n\nconst formContext = inject(BFormContextKey, undefined);\n\nconst { componentUID } = useComponentId();\nconst fieldId = computed(() => `b-form-item-${__props.name ? __props.name + '-' : ''}${componentUID.value}`);\n\nconst fieldValueRef = computed(() => {\n if (__props.name && formContext?.model) {\n return formContext.model[__props.name];\n }\n return undefined;\n});\n\nconst fieldValueAsRef = ref(fieldValueRef.value);\nwatch(fieldValueRef, (val) => {\n fieldValueAsRef.value = val;\n});\n\nconst hasValidation = !!(__props.name && __props.schema);\n\nconst validation = hasValidation\n ? useValidationField(__props.name!, fieldValueAsRef, __props.schema!)\n : undefined;\n\nconst resolvedTrigger = computed(() => {\n if (__props.validateTrigger) return Array.isArray(__props.validateTrigger) ? __props.validateTrigger : [__props.validateTrigger];\n const parentTrigger = formContext?.validateTrigger ?? BFormValidateTrigger.Change;\n return Array.isArray(parentTrigger) ? parentTrigger : [parentTrigger];\n});\n\nconst handleBlur = () => {\n if (validation && resolvedTrigger.value.includes(BFormValidateTrigger.Blur)) {\n validation.markTouched();\n validation.validate();\n }\n};\n\nconst handleChange = () => {\n if (validation && resolvedTrigger.value.includes(BFormValidateTrigger.Change)) {\n validation.validate();\n }\n};\n\nwatch(fieldValueRef, () => {\n handleChange();\n});\n\nconst computedStatus = computed<`${BFormValidateStatus}` | undefined>(() => {\n if (__props.validateStatus) return __props.validateStatus;\n if (!validation) return undefined;\n if (validation.errors.value.length > 0) return BFormValidateStatus.Error;\n if (validation.touched.value && validation.isValid.value) return BFormValidateStatus.Success;\n return undefined;\n});\n\nconst resolvedLayout = computed(() => {\n if (__props.layout !== undefined) return __props.layout;\n if (formContext?.layout !== undefined) return formContext.layout;\n return BFormLayout.Horizontal;\n});\nconst resolvedLabelAlign = computed(() => {\n if (__props.labelAlign !== undefined) return __props.labelAlign;\n if (formContext?.labelAlign !== undefined) return formContext.labelAlign;\n return 'right';\n});\nconst resolvedColon = computed(() => {\n if (__props.colon !== null) return __props.colon;\n if (formContext?.colon !== undefined) return formContext.colon;\n return true;\n});\nconst resolvedLabelWidth = computed(() => __props.labelWidth ?? formContext?.labelWidth);\nconst isDisabled = computed(() => formContext?.disabled ?? false);\n\nconst isRequired = computed(() => {\n if (__props.required) return true;\n if (__props.schema) {\n const result = __props.schema.safeParse(undefined);\n if (!result.success) return true;\n const emptyResult = __props.schema.safeParse('');\n if (!emptyResult.success) return true;\n }\n return false;\n});\n\nconst showColon = computed(() => resolvedColon.value && resolvedLayout.value === 'horizontal');\n\nconst showRequiredMark = computed(() => {\n const mark = formContext?.requiredMark ?? true;\n if (mark === false) return false;\n if (mark === BFormRequiredMark.Optional) return false;\n return isRequired.value;\n});\n\nconst showOptionalMark = computed(() => {\n const mark = formContext?.requiredMark ?? true;\n return mark === BFormRequiredMark.Optional && !isRequired.value;\n});\n\nconst helpMessage = computed(() => {\n if (__props.help !== undefined) return __props.help;\n if (validation && validation.errors.value.length > 0) return validation.errors.value[0];\n return undefined;\n});\n\nconst itemClasses = computed(() => [\n 'b-form-item',\n `b-form-item--${resolvedLayout.value}`,\n {\n 'b-form-item--has-error': computedStatus.value === BFormValidateStatus.Error,\n 'b-form-item--has-warning': computedStatus.value === BFormValidateStatus.Warning,\n 'b-form-item--has-success': computedStatus.value === BFormValidateStatus.Success,\n 'b-form-item--validating': computedStatus.value === BFormValidateStatus.Validating,\n 'b-form-item--has-feedback': __props.hasFeedback,\n 'b-form-item--hidden': __props.hidden,\n 'b-form-item--no-style': __props.noStyle,\n 'b-form-item--required': showRequiredMark.value,\n },\n]);\n\nconst labelStyle = computed(() => {\n const styles: Record<string, string> = {};\n if (resolvedLabelWidth.value) {\n styles.width = resolvedLabelWidth.value;\n styles.flexShrink = '0';\n }\n return styles;\n});\n\n__expose({\n validate: validation?.validate ?? (() => true),\n reset: validation?.reset ?? (() => {}),\n errors: validation?.errors ?? computed(() => []),\n isValid: validation?.isValid ?? computed(() => true),\n dirty: validation?.dirty ?? computed(() => false),\n touched: validation?.touched ?? computed(() => false),\n handleBlur,\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (!__props.noStyle)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(itemClasses.value),\n \"data-form-field\": __props.name,\n role: \"group\",\n \"aria-labelledby\": __props.label ? `${fieldId.value}-label` : undefined\n }, [\n (__props.label || _ctx.$slots.label)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"b-form-item__label\", [`b-form-item__label--${resolvedLabelAlign.value}`]]),\n style: _normalizeStyle(labelStyle.value)\n }, [\n _createElementVNode(\"label\", {\n id: `${fieldId.value}-label`,\n for: fieldId.value\n }, [\n (showRequiredMark.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, \"*\"))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"label\", {}, () => [\n _createTextVNode(_toDisplayString(__props.label), 1)\n ], true),\n (showOptionalMark.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \"(optional)\"))\n : _createCommentVNode(\"\", true),\n (showColon.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, \":\"))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_2),\n (__props.tooltip)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"b-form-item__tooltip\",\n title: __props.tooltip,\n role: \"img\",\n \"aria-label\": \"Help\"\n }, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"svg\", {\n viewBox: \"64 64 896 896\",\n width: \"14\",\n height: \"14\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n }, [\n _createElementVNode(\"path\", { d: \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" }),\n _createElementVNode(\"path\", { d: \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7c0-19.7 12.4-37.7 30.9-44.8 59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3z\" }),\n _createElementVNode(\"path\", { d: \"M512 732a40 40 0 100-80 40 40 0 000 80z\" })\n ], -1)\n ]))], 8, _hoisted_6))\n : _createCommentVNode(\"\", true)\n ], 6))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _renderSlot(_ctx.$slots, \"default\", {\n id: fieldId.value,\n status: computedStatus.value,\n disabled: isDisabled.value,\n onBlur: handleBlur\n }, undefined, true),\n (__props.hasFeedback && computedStatus.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_9, [\n (computedStatus.value === 'success')\n ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_10, [...(_cache[1] || (_cache[1] = [\n _createElementVNode(\"path\", { d: \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" }, null, -1)\n ]))]))\n : (computedStatus.value === 'error')\n ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_11, [...(_cache[2] || (_cache[2] = [\n _createElementVNode(\"path\", { d: \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L512 449.8 295.9 191.7c-3-3.6-7.5-5.7-12.3-5.7H204c-6.8 0-10.5 7.9-6.1 13.1L460.2 512 197.8 824.9A7.95 7.95 0 00204 838h79.8c4.7 0 9.2-2.1 12.3-5.7L512 574.1l216.2 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" }, null, -1)\n ]))]))\n : (computedStatus.value === 'warning')\n ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_12, [...(_cache[3] || (_cache[3] = [\n _createElementVNode(\"path\", { d: \"M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48z\" }, null, -1)\n ]))]))\n : (computedStatus.value === 'validating')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_13, [...(_cache[4] || (_cache[4] = [\n _createElementVNode(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n width: \"14\",\n height: \"14\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n }, [\n _createElementVNode(\"path\", { d: \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.3 199.3 0 19.9-16.1 36-36 36z\" })\n ], -1)\n ]))]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (helpMessage.value || _ctx.$slots.help)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"b-form-item__help\", {\n 'b-form-item__help--error': computedStatus.value === 'error',\n 'b-form-item__help--warning': computedStatus.value === 'warning',\n }]),\n id: `${fieldId.value}-help`,\n role: \"alert\",\n \"aria-live\": \"polite\"\n }, [\n _renderSlot(_ctx.$slots, \"help\", {}, () => [\n _createTextVNode(_toDisplayString(helpMessage.value), 1)\n ], true)\n ], 10, _hoisted_14))\n : _createCommentVNode(\"\", true),\n (__props.extra || _ctx.$slots.extra)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _renderSlot(_ctx.$slots, \"extra\", {}, () => [\n _createTextVNode(_toDisplayString(__props.extra), 1)\n ], true)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 10, _hoisted_1))\n : _renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n id: fieldId.value,\n status: computedStatus.value,\n disabled: isDisabled.value,\n onBlur: handleBlur\n }, undefined, true)\n}\n}\n\n})"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"design-system98.js","names":[],"sources":["../src/components/BFloatButton/BFloatButtonGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, provide, ref, watch } from 'vue';\nimport { BFloatButtonGroupPlacement, BFloatButtonShape, BFloatButtonTrigger } from './types.ts';\n\n// ─────────────────────────────────────────────\n// Props & emits\n// ─────────────────────────────────────────────\nconst props = defineProps<{\n /**\n * Controlled open state. Use with `v-model:open` for two-way binding.\n * When this prop changes, the internal state syncs to it.\n */\n open?: boolean | null;\n /**\n * The trigger mode for expanding/collapsing the group menu.\n * When set, a trigger button is shown that reveals child buttons.\n */\n trigger?: `${BFloatButtonTrigger}`;\n /**\n * Animation direction when expanding/collapsing.\n * @default 'top'\n */\n placement?: `${BFloatButtonGroupPlacement}`;\n /**\n * Shape applied to all child float buttons.\n * @default 'circle'\n */\n shape?: `${BFloatButtonShape}`;\n /**\n * Icon name for the close/collapse trigger button.\n */\n closeIcon?: string;\n}>();\n\nconst emit = defineEmits<{\n /** Emitted when the group open state changes. */\n (e: 'openChange', open: boolean): void;\n /** v-model support. */\n (e: 'update:open', open: boolean): void;\n}>();\n\ndefineSlots<{\n /** Float button children. */\n default?(): unknown;\n /** Custom trigger icon (open state). */\n icon?(): unknown;\n /** Custom close icon (close state). */\n closeIcon?(): unknown;\n}>();\n\n// ─────────────────────────────────────────────\n// Internal state — always the rendering source of truth\n// ─────────────────────────────────────────────\nconst internalOpen = ref(false);\n\n// Sync from controlled prop → internal state when explicitly changed\nwatch(\n () => props.open,\n (val) => {\n if (val === true) internalOpen.value = true;\n else if (val === false) internalOpen.value = false;\n // null/undefined means \"uncontrolled\" — do not override internal state\n },\n { immediate: true },\n);\n\nfunction setOpen(val: boolean) {\n internalOpen.value = val;\n emit('update:open', val);\n emit('openChange', val);\n}\n\nfunction toggle() {\n setOpen(!internalOpen.value);\n}\n\nfunction openGroup() {\n setOpen(true);\n}\n\nfunction closeGroup() {\n setOpen(false);\n}\n\n// ─────────────────────────────────────────────\n// Hover trigger\n// ─────────────────────────────────────────────\nlet hideTimer: ReturnType<typeof setTimeout> | null = null;\n\nfunction onMouseEnter() {\n if (props.trigger !== BFloatButtonTrigger.Hover) return;\n if (hideTimer) {\n clearTimeout(hideTimer);\n hideTimer = null;\n }\n openGroup();\n}\n\nfunction onMouseLeave() {\n if (props.trigger !== BFloatButtonTrigger.Hover) return;\n hideTimer = setTimeout(() => closeGroup(), 100);\n}\n\nonBeforeUnmount(() => {\n if (hideTimer) clearTimeout(hideTimer);\n});\n\n// ─────────────────────────────────────────────\n// Provide shape to children\n// ─────────────────────────────────────────────\nprovide(\n 'bFloatButtonGroupShape',\n computed(() => props.shape ?? BFloatButtonShape.Circle),\n);\n\nconst isGroup = computed(() => props.trigger !== undefined);\nconst placementClass = computed(\n () => `b-float-button-group--${props.placement ?? BFloatButtonGroupPlacement.Top}`,\n);\nconst shapeClass = computed(\n () => `b-float-button-group--shape-${props.shape ?? BFloatButtonShape.Circle}`,\n);\n</script>\n\n<template>\n <div\n class=\"b-float-button-group\"\n :class=\"[\n placementClass,\n shapeClass,\n {\n 'b-float-button-group--menu': isGroup,\n 'b-float-button-group--open': isGroup && internalOpen,\n },\n ]\"\n :role=\"!isGroup ? 'group' : undefined\"\n :aria-label=\"!isGroup ? 'Float button group' : undefined\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n >\n <!-- Child buttons list (always rendered; hidden when group is collapsed) -->\n <div\n class=\"b-float-button-group__list\"\n :aria-hidden=\"isGroup ? !internalOpen : undefined\"\n :inert=\"isGroup && !internalOpen ? true : undefined\"\n >\n <slot />\n </div>\n\n <!-- Trigger button (only rendered when trigger is set) -->\n <button\n v-if=\"isGroup\"\n type=\"button\"\n class=\"b-float-button-group__trigger\"\n :class=\"[\n 'b-float-button',\n `b-float-button--${props.shape ?? 'circle'}`,\n 'b-float-button--primary',\n ]\"\n :aria-expanded=\"internalOpen\"\n :aria-label=\"internalOpen ? 'Collapse button group' : 'Expand button group'\"\n @click=\"toggle\"\n >\n <span class=\"b-float-button__body\">\n <span class=\"b-float-button__icon\" aria-hidden=\"true\">\n <template v-if=\"internalOpen\">\n <slot name=\"closeIcon\">\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n />\n </svg>\n </slot>\n </template>\n <template v-else>\n <slot name=\"icon\">\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M19 13H13v6h-2v-6H5v-2h6V5h2v6h6v2z\" />\n </svg>\n </slot>\n </template>\n </span>\n </span>\n </button>\n </div>\n</template>\n\n<style>\n/* ─────────────────────────────────────────────\n Group container\n ───────────────────────────────────────────── */\n.b-float-button-group {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.75rem;\n position: relative;\n}\n\n.b-float-button-group--menu {\n position: relative;\n}\n\n/* ─────────────────────────────────────────────\n Items list (collapsible)\n ───────────────────────────────────────────── */\n.b-float-button-group__list {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.75rem;\n list-style: none;\n padding: 0;\n margin: 0 0 0.75rem 0;\n\n /* Collapsed: hidden */\n overflow: hidden;\n max-height: 0;\n opacity: 0;\n pointer-events: none;\n transition:\n max-height 300ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 250ms ease;\n}\n\n.b-float-button-group--open .b-float-button-group__list {\n max-height: 60vh;\n opacity: 1;\n pointer-events: auto;\n}\n\n/* ── Placement variants for list direction ── */\n.b-float-button-group--top .b-float-button-group__list {\n flex-direction: column-reverse;\n}\n\n.b-float-button-group--bottom .b-float-button-group__list {\n flex-direction: column;\n}\n\n.b-float-button-group--left .b-float-button-group__list {\n flex-direction: row-reverse;\n margin: 0 0.75rem 0 0;\n}\n\n.b-float-button-group--right .b-float-button-group__list {\n flex-direction: row;\n margin: 0 0 0 0.75rem;\n}\n\n/* ── Horizontal layout for left/right placements ── */\n.b-float-button-group--left,\n.b-float-button-group--right {\n flex-direction: row;\n align-items: center;\n}\n\n/* ── Trigger button ── */\n.b-float-button-group__trigger {\n flex-shrink: 0;\n}\n\n/* ─────────────────────────────────────────────\n Reduced motion\n ───────────────────────────────────────────── */\n@media (prefers-reduced-motion: reduce) {\n .b-float-button-group__list {\n transition-duration: 0ms;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;EAOA,IAAM,IAAQ,GA2BR,IAAO,GAmBP,IAAe,EAAI,GAAM;AAG/B,UACQ,EAAM,OACX,MAAQ;AACP,GAAI,MAAQ,KAAM,EAAa,QAAQ,KAC9B,MAAQ,OAAO,EAAa,QAAQ;KAG/C,EAAE,WAAW,IAAM,CACpB;EAED,SAAS,EAAQ,GAAc;AAG7B,GAFA,EAAa,QAAQ,GACrB,EAAK,eAAe,EAAI,EACxB,EAAK,cAAc,EAAI;;EAGzB,SAAS,IAAS;AAChB,KAAQ,CAAC,EAAa,MAAM;;EAG9B,SAAS,IAAY;AACnB,KAAQ,GAAK;;EAGf,SAAS,IAAa;AACpB,KAAQ,GAAM;;EAMhB,IAAI,IAAkD;EAEtD,SAAS,IAAe;AAClB,KAAM,YAAY,EAAoB,UAC1C,AAEE,OADA,aAAa,EAAU,EACX,OAEd,GAAW;;EAGb,SAAS,IAAe;AAClB,KAAM,YAAY,EAAoB,UAC1C,IAAY,iBAAiB,GAAY,EAAE,IAAI;;AAUjD,EAPA,QAAsB;AACpB,GAAI,KAAW,aAAa,EAAU;IACtC,EAKF,EACE,0BACA,QAAe,EAAM,SAAS,EAAkB,OAAO,CACxD;EAED,IAAM,IAAU,QAAe,EAAM,YAAY,KAAA,EAAU,EACrD,IAAiB,QACf,yBAAyB,EAAM,aAAa,EAA2B,MAC9E,EACK,IAAa,QACX,+BAA+B,EAAM,SAAS,EAAkB,SACvE;yBAIC,EAuEM,OAAA;GAtEJ,OAAK,EAAA,CAAC,wBAAsB;IACZ,EAAA;IAAsB,EAAA;;mCAA0D,EAAA;mCAA+C,EAAA,SAAW,EAAA;;;GAQzJ,MAAO,EAAA,QAAoB,KAAA,IAAb;GACd,cAAa,EAAA,QAAiC,KAAA,IAA1B;GACpB,cAAY;GACZ,cAAY;MAGb,EAMM,OAAA;GALJ,OAAM;GACL,eAAa,EAAA,QAAO,CAAI,EAAA,QAAe,KAAA;GACvC,OAAO,EAAA,SAAO,CAAK,EAAA,QAAY,KAAU,KAAA;MAE1C,EAAQ,EAAA,QAAA,UAAA,CAAA,EAAA,GAAA,EAAA,EAKF,EAAA,SAAA,GAAA,EADR,EA6CS,UAAA;;GA3CP,MAAK;GACL,OAAK,EAAA,CAAC,iCAA+B;;uBAC0B,EAAM,SAAK;;;GAKzE,iBAAe,EAAA;GACf,cAAY,EAAA,QAAY,0BAAA;GACxB,SAAO;MAER,EA+BO,QA/BP,GA+BO,CA9BL,EA6BO,QA7BP,GA6BO,CA5BW,EAAA,QACd,EAYO,EAAA,QAAA,aAAA,EAAA,KAAA,GAAA,QAAA,CAAA,AAAA,EAAA,OAXL,EAUM,OAAA;GATJ,OAAM;GACN,QAAO;GACP,SAAQ;GACR,MAAK;GACL,eAAY;MAEZ,EAEE,QAAA,EADA,GAAE,yGAAuG,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA,GAM/G,EAUO,EAAA,QAAA,QAAA,EAAA,KAAA,GAAA,QAAA,CAAA,AAAA,EAAA,OATL,EAQM,OAAA;GAPJ,OAAM;GACN,QAAO;GACP,SAAQ;GACR,MAAK;GACL,eAAY;MAEZ,EAAgD,QAAA,EAA1C,GAAE,uCAAqC,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,EAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { BCalendarCellSlotScope, BCalendarEvent, BCalendarEventDetailsSlotScope, BCalendarHeaderSlotScope, BCalendarMode, BCalendarSelectInfo } from './types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
/**
|
|
4
|
+
* Controlled selected date. Pair with `v-model` for two-way binding.
|
|
5
|
+
* AntD: `value`.
|
|
6
|
+
*/
|
|
7
|
+
modelValue?: Date | null;
|
|
8
|
+
/**
|
|
9
|
+
* Initial selected date when uncontrolled.
|
|
10
|
+
* AntD: `defaultValue`.
|
|
11
|
+
*/
|
|
12
|
+
defaultValue?: Date;
|
|
13
|
+
/**
|
|
14
|
+
* Controlled panel mode (month / year). When omitted, the component
|
|
15
|
+
* manages its own mode starting from `defaultMode`.
|
|
16
|
+
* AntD: `mode`.
|
|
17
|
+
*/
|
|
18
|
+
mode?: BCalendarMode;
|
|
19
|
+
/**
|
|
20
|
+
* Initial panel mode when uncontrolled.
|
|
21
|
+
* @default 'month'
|
|
22
|
+
*/
|
|
23
|
+
defaultMode?: BCalendarMode;
|
|
24
|
+
/**
|
|
25
|
+
* Full-screen layout when `true`, mini layout when `false`.
|
|
26
|
+
* AntD: `fullscreen`.
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
fullscreen?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Show a week-number column in month mode.
|
|
32
|
+
* AntD: `showWeek`.
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
showWeek?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Inclusive [start, end] range outside which dates are disabled.
|
|
38
|
+
* AntD: `validRange`.
|
|
39
|
+
*/
|
|
40
|
+
validRange?: [Date, Date];
|
|
41
|
+
/**
|
|
42
|
+
* BCP 47 locale tag for weekday / month labels (e.g. `'en-US'`, `'vi-VN'`).
|
|
43
|
+
* AntD: `locale` (object). We accept a locale string and use Intl.
|
|
44
|
+
*/
|
|
45
|
+
locale?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Predicate to disable specific dates.
|
|
48
|
+
* AntD: `disabledDate`.
|
|
49
|
+
*/
|
|
50
|
+
disabledDate?: (date: Date) => boolean;
|
|
51
|
+
/** Accessible label for the calendar root region. */
|
|
52
|
+
ariaLabel?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Returns events for a given date. When provided, event titles are auto-rendered
|
|
55
|
+
* inside each day cell (unless the `dateCell` slot replaces them).
|
|
56
|
+
*/
|
|
57
|
+
events?: (date: Date) => BCalendarEvent[];
|
|
58
|
+
/**
|
|
59
|
+
* Open a details modal when clicking a date that has events.
|
|
60
|
+
* Set `false` to keep clicks selection-only.
|
|
61
|
+
* @default true
|
|
62
|
+
*/
|
|
63
|
+
showEventDetails?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Maximum number of events shown inline per day cell. Extra events collapse
|
|
66
|
+
* into a "+N more" indicator (full list is still available in the modal).
|
|
67
|
+
* @default 3
|
|
68
|
+
*/
|
|
69
|
+
maxEventsVisible?: number;
|
|
70
|
+
};
|
|
71
|
+
type __VLS_Slots = {
|
|
72
|
+
/** Custom header. AntD: `headerRender`. */
|
|
73
|
+
header?(scope: BCalendarHeaderSlotScope): unknown;
|
|
74
|
+
/** Inject extra content into a date cell. AntD: `cellRender` (date). */
|
|
75
|
+
dateCell?(scope: BCalendarCellSlotScope): unknown;
|
|
76
|
+
/** Inject extra content into a month cell. AntD: `cellRender` (month). */
|
|
77
|
+
monthCell?(scope: BCalendarCellSlotScope): unknown;
|
|
78
|
+
/** Replace the entire date cell. AntD: `fullCellRender` / `dateFullCellRender`. */
|
|
79
|
+
dateFullCell?(scope: BCalendarCellSlotScope): unknown;
|
|
80
|
+
/** Replace the entire month cell. AntD: `fullCellRender` / `monthFullCellRender`. */
|
|
81
|
+
monthFullCell?(scope: BCalendarCellSlotScope): unknown;
|
|
82
|
+
/** Replace the contents of the event-details modal. */
|
|
83
|
+
eventDetails?(scope: BCalendarEventDetailsSlotScope): unknown;
|
|
84
|
+
};
|
|
85
|
+
declare function setMode(next: BCalendarMode): void;
|
|
86
|
+
declare function setPanelDate(date: Date): void;
|
|
87
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
88
|
+
/** Programmatically select a date. */
|
|
89
|
+
select: (d: Date) => void;
|
|
90
|
+
/** Programmatically change the panel mode. */
|
|
91
|
+
setMode: typeof setMode;
|
|
92
|
+
/** Move the panel to a specific date without selecting. */
|
|
93
|
+
goTo: typeof setPanelDate;
|
|
94
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
95
|
+
"update:modelValue": (date: Date) => any;
|
|
96
|
+
select: (date: Date, info: BCalendarSelectInfo) => any;
|
|
97
|
+
change: (date: Date) => any;
|
|
98
|
+
"update:mode": (mode: BCalendarMode) => any;
|
|
99
|
+
panelChange: (date: Date, mode: BCalendarMode) => any;
|
|
100
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
101
|
+
"onUpdate:modelValue"?: (date: Date) => any;
|
|
102
|
+
onSelect?: (date: Date, info: BCalendarSelectInfo) => any;
|
|
103
|
+
onChange?: (date: Date) => any;
|
|
104
|
+
"onUpdate:mode"?: (mode: BCalendarMode) => any;
|
|
105
|
+
onPanelChange?: (date: Date, mode: BCalendarMode) => any;
|
|
106
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
107
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
108
|
+
declare const _default: typeof __VLS_export;
|
|
109
|
+
export default _default;
|
|
110
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
111
|
+
new (): {
|
|
112
|
+
$slots: S;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { default as BCalendar } from './BCalendar.vue';
|
|
2
|
+
export type { BCalendarCellRenderType, BCalendarCellSlotScope, BCalendarEvent, BCalendarEventDetailsSlotScope, BCalendarEventType, BCalendarHeaderSlotScope, BCalendarMode, BCalendarSelectInfo, BCalendarSelectSource, } from './types';
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** Display mode of the calendar panel. */
|
|
2
|
+
export type BCalendarMode = 'month' | 'year';
|
|
3
|
+
/** Source of a `select` event. */
|
|
4
|
+
export type BCalendarSelectSource = 'date' | 'month' | 'year' | 'customize';
|
|
5
|
+
/** Payload for the `select` event. */
|
|
6
|
+
export interface BCalendarSelectInfo {
|
|
7
|
+
source: BCalendarSelectSource;
|
|
8
|
+
}
|
|
9
|
+
/** Scope passed to `cellRender` / `fullCellRender`. */
|
|
10
|
+
export type BCalendarCellRenderType = 'date' | 'month';
|
|
11
|
+
/** Slot scope shared by all cell-render slots. */
|
|
12
|
+
export interface BCalendarCellSlotScope {
|
|
13
|
+
/** The Date represented by this cell. */
|
|
14
|
+
date: Date;
|
|
15
|
+
/** Whether this cell is the currently selected date. */
|
|
16
|
+
selected: boolean;
|
|
17
|
+
/** Whether this cell is "today". */
|
|
18
|
+
today: boolean;
|
|
19
|
+
/** Whether this cell falls outside the current panel month/year. */
|
|
20
|
+
outside: boolean;
|
|
21
|
+
/** Whether the cell is disabled (out of validRange or disabledDate). */
|
|
22
|
+
disabled: boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Slot scope passed to `header` for custom header rendering. */
|
|
25
|
+
export interface BCalendarHeaderSlotScope {
|
|
26
|
+
/** Currently displayed panel date. */
|
|
27
|
+
value: Date;
|
|
28
|
+
/** Currently displayed mode. */
|
|
29
|
+
mode: BCalendarMode;
|
|
30
|
+
/** Update the panel mode. */
|
|
31
|
+
onTypeChange: (mode: BCalendarMode) => void;
|
|
32
|
+
/** Update the panel value (does not select). */
|
|
33
|
+
onChange: (value: Date) => void;
|
|
34
|
+
}
|
|
35
|
+
/** Visual variant for an event marker. */
|
|
36
|
+
export type BCalendarEventType = 'success' | 'info' | 'warning' | 'error' | 'default';
|
|
37
|
+
/** A user-supplied event attached to a date. */
|
|
38
|
+
export interface BCalendarEvent {
|
|
39
|
+
/** Short event title rendered inside the cell and modal. */
|
|
40
|
+
title: string;
|
|
41
|
+
/** Optional longer description shown in the details modal. */
|
|
42
|
+
description?: string;
|
|
43
|
+
/** Visual badge color. Defaults to `'default'`. */
|
|
44
|
+
type?: BCalendarEventType;
|
|
45
|
+
}
|
|
46
|
+
/** Slot scope for the `eventDetails` slot (modal content customization). */
|
|
47
|
+
export interface BCalendarEventDetailsSlotScope {
|
|
48
|
+
/** The date the modal is opened for. */
|
|
49
|
+
date: Date;
|
|
50
|
+
/** Events for that date. */
|
|
51
|
+
events: BCalendarEvent[];
|
|
52
|
+
/** Programmatically close the modal. */
|
|
53
|
+
close: () => void;
|
|
54
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|