bitboss-ui 2.1.113 → 2.1.115
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/dist/ai/BaseButton.md +448 -0
- package/dist/ai/BaseCheckbox.md +494 -0
- package/dist/ai/BaseCheckboxGroup.md +597 -0
- package/dist/ai/BaseColorInput.md +461 -0
- package/dist/ai/BaseDatePicker.md +739 -0
- package/dist/ai/BaseDatePickerInput.md +1517 -0
- package/dist/ai/BaseDialog.md +610 -0
- package/dist/ai/BaseInputContainer.md +570 -0
- package/dist/ai/BaseNumberInput.md +509 -0
- package/dist/ai/BaseRadio.md +405 -0
- package/dist/ai/BaseRadioGroup.md +535 -0
- package/dist/ai/BaseRating.md +489 -0
- package/dist/ai/BaseSelect.md +1720 -0
- package/dist/ai/BaseSlider.md +871 -0
- package/dist/ai/BaseSwitch.md +322 -0
- package/dist/ai/BaseSwitchGroup.md +298 -0
- package/dist/ai/BaseTag.md +624 -0
- package/dist/ai/BaseTextInput.md +392 -0
- package/dist/ai/BaseTextarea.md +398 -0
- package/dist/ai/BbAccordion.md +135 -0
- package/dist/ai/BbAlert.md +226 -0
- package/dist/ai/BbAvatar.md +200 -0
- package/dist/ai/BbBadge.md +185 -0
- package/dist/ai/BbBreadcrumbs.md +536 -0
- package/dist/ai/BbButton.md +687 -0
- package/dist/ai/BbCheckbox.md +280 -0
- package/dist/ai/BbCheckboxGroup.md +387 -0
- package/dist/ai/BbChip.md +148 -0
- package/dist/ai/BbCollapsible.md +119 -0
- package/dist/ai/BbColorInput.md +345 -0
- package/dist/ai/BbColorPalette.md +360 -0
- package/dist/ai/BbConfirm.md +160 -0
- package/dist/ai/BbDatePickerInput.md +414 -0
- package/dist/ai/BbDialog.md +135 -0
- package/dist/ai/BbDropdown.md +765 -0
- package/dist/ai/BbDropdownButton.md +629 -0
- package/dist/ai/BbDropzone.md +504 -0
- package/dist/ai/BbIcon.md +238 -0
- package/dist/ai/BbIntersection.md +121 -0
- package/dist/ai/BbNumberInput.md +372 -0
- package/dist/ai/BbOffCanvas.md +549 -0
- package/dist/ai/BbPagination.md +562 -0
- package/dist/ai/BbPopover.md +580 -0
- package/dist/ai/BbProgress.md +97 -0
- package/dist/ai/BbRadio.md +256 -0
- package/dist/ai/BbRadioGroup.md +373 -0
- package/dist/ai/BbRating.md +245 -0
- package/dist/ai/BbRatio.md +62 -0
- package/dist/ai/BbRows.md +307 -0
- package/dist/ai/BbSelect.md +562 -0
- package/dist/ai/BbSelectPopover.md +2010 -0
- package/dist/ai/BbSlider.md +274 -0
- package/dist/ai/BbSmoothHeight.md +167 -0
- package/dist/ai/BbSpinner.md +154 -0
- package/dist/ai/BbSwitch.md +151 -0
- package/dist/ai/BbSwitchGroup.md +237 -0
- package/dist/ai/BbTab.md +954 -0
- package/dist/ai/BbTable.md +1624 -0
- package/dist/ai/BbTag.md +315 -0
- package/dist/ai/BbTextInput.md +357 -0
- package/dist/ai/BbTextarea.md +277 -0
- package/dist/ai/BbToast.md +219 -0
- package/dist/ai/BbTooltip.md +353 -0
- package/dist/ai/BbTree.md +271 -0
- package/dist/ai/ChipsBox.md +211 -0
- package/dist/ai/ClearableButton.md +67 -0
- package/dist/ai/CommaBox.md +212 -0
- package/dist/ai/CommonInputInnerContainer.md +419 -0
- package/dist/ai/CommonInputOuterContainer.md +56 -0
- package/dist/ai/CommonPopover.md +446 -0
- package/dist/ai/ErrorIcon.md +61 -0
- package/dist/ai/FlatListBox.md +382 -0
- package/dist/ai/GroupedListBox.md +538 -0
- package/dist/ai/ListBox.md +234 -0
- package/dist/ai/OptionsContainer.md +257 -0
- package/dist/ai/index.md +124 -0
- package/dist/components/BaseButton/BaseButton.vue.d.ts +2 -163
- package/dist/components/BaseButton/types.d.ts +158 -0
- package/dist/components/BaseCheckbox/BaseCheckbox.vue.d.ts +4 -4
- package/dist/components/BaseCheckboxGroup/BaseCheckboxGroup.vue.d.ts +2 -2
- package/dist/components/BaseCheckboxGroup/types.d.ts +16 -9
- package/dist/components/BaseColorInput/BaseColorInput.vue.d.ts +12 -52
- package/dist/components/BaseDatePicker/BaseDatePicker.vue.d.ts +4 -76
- package/dist/components/BaseDatePicker/types.d.ts +100 -0
- package/dist/components/BaseDatePickerInput/BaseDatePickerInput.vue.d.ts +18 -315
- package/dist/components/BaseDatePickerInput/types.d.ts +206 -0
- package/dist/components/BaseDialog/BaseDialog.vue.d.ts +6 -156
- package/dist/components/BaseDialog/types.d.ts +180 -0
- package/dist/components/BaseInputContainer/BaseInputContainer.vue.d.ts +1 -107
- package/dist/components/BaseInputContainer/types.d.ts +126 -0
- package/dist/components/BaseNumberInput/BaseNumberInput.vue.d.ts +7 -170
- package/dist/components/BaseNumberInput/types.d.ts +191 -0
- package/dist/components/BaseRadio/BaseRadio.vue.d.ts +6 -119
- package/dist/components/BaseRadio/types.d.ts +173 -0
- package/dist/components/BaseRadioGroup/BaseRadioGroup.vue.d.ts +4 -274
- package/dist/components/BaseRadioGroup/types.d.ts +240 -0
- package/dist/components/BaseRating/BaseRating.vue.d.ts +5 -106
- package/dist/components/BaseRating/types.d.ts +144 -0
- package/dist/components/BaseSelect/BaseSelect.vue.d.ts +2 -363
- package/dist/components/BaseSelect/types.d.ts +457 -0
- package/dist/components/BaseSlider/BaseSlider.vue.d.ts +6 -178
- package/dist/components/BaseSlider/types.d.ts +201 -0
- package/dist/components/BaseSwitch/BaseSwitch.vue.d.ts +7 -35
- package/dist/components/BaseSwitch/types.d.ts +25 -0
- package/dist/components/BaseSwitchGroup/BaseSwitchGroup.vue.d.ts +5 -11
- package/dist/components/BaseSwitchGroup/types.d.ts +8 -0
- package/dist/components/BaseTag/BaseTag.vue.d.ts +27 -222
- package/dist/components/BaseTag/types.d.ts +136 -0
- package/dist/components/BaseTextInput/BaseTextInput.vue.d.ts +5 -141
- package/dist/components/BaseTextInput/types.d.ts +166 -0
- package/dist/components/BaseTextarea/BaseTextarea.vue.d.ts +5 -131
- package/dist/components/BaseTextarea/types.d.ts +151 -0
- package/dist/components/BbAccordion/BbAccordion.vue.d.ts +3 -51
- package/dist/components/BbAccordion/types.d.ts +32 -0
- package/dist/components/BbAlert/BbAlert.vue.d.ts +3 -50
- package/dist/components/BbAlert/types.d.ts +42 -0
- package/dist/components/BbAvatar/BbAvatar.vue.d.ts +3 -23
- package/dist/components/BbAvatar/types.d.ts +34 -0
- package/dist/components/BbBadge/BbBadge.vue.d.ts +3 -40
- package/dist/components/BbBadge/types.d.ts +30 -0
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +14 -178
- package/dist/components/BbBreadcrumbs/types.d.ts +109 -0
- package/dist/components/BbButton/BbButton.vue.d.ts +4 -163
- package/dist/components/BbButton/types.d.ts +159 -0
- package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +7 -165
- package/dist/components/BbCheckbox/types.d.ts +130 -0
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +7 -324
- package/dist/components/BbCheckboxGroup/types.d.ts +189 -0
- package/dist/components/BbChip/BbChip.vue.d.ts +6 -28
- package/dist/components/BbChip/types.d.ts +23 -0
- package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +3 -24
- package/dist/components/BbCollapsible/types.d.ts +20 -0
- package/dist/components/BbColorInput/BbColorInput.vue.d.ts +10 -151
- package/dist/components/BbColorInput/types.d.ts +131 -0
- package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +2 -112
- package/dist/components/BbColorPalette/types.d.ts +127 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +6 -212
- package/dist/components/BbDatePickerInput/types.d.ts +180 -0
- package/dist/components/BbDialog/BbDialog.vue.d.ts +2 -2
- package/dist/components/BbDialog/types.d.ts +1 -0
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +21 -247
- package/dist/components/BbDropdown/types.d.ts +147 -0
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +16 -209
- package/dist/components/BbDropdownButton/types.d.ts +114 -0
- package/dist/components/BbDropzone/BbDropzone.vue.d.ts +7 -86
- package/dist/components/BbDropzone/types.d.ts +67 -0
- package/dist/components/BbIcon/BbIcon.vue.d.ts +2 -26
- package/dist/components/BbIcon/types.d.ts +28 -0
- package/dist/components/BbIntersection/BbIntersection.vue.d.ts +3 -41
- package/dist/components/BbIntersection/types.d.ts +36 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +44 -175
- package/dist/components/BbNumberInput/types.d.ts +130 -0
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +5 -93
- package/dist/components/BbOffCanvas/types.d.ts +97 -0
- package/dist/components/BbPagination/BbPagination.vue.d.ts +4 -87
- package/dist/components/BbPagination/types.d.ts +80 -0
- package/dist/components/BbPopover/BbPopover.vue.d.ts +9 -135
- package/dist/components/BbPopover/types.d.ts +99 -0
- package/dist/components/BbProgress/BbProgress.vue.d.ts +2 -14
- package/dist/components/BbProgress/types.d.ts +20 -0
- package/dist/components/BbRadio/BbRadio.vue.d.ts +7 -150
- package/dist/components/BbRadio/types.d.ts +117 -0
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +7 -322
- package/dist/components/BbRadioGroup/types.d.ts +182 -0
- package/dist/components/BbRating/BbRating.vue.d.ts +10 -113
- package/dist/components/BbRating/types.d.ts +105 -0
- package/dist/components/BbRatio/BbRatio.vue.d.ts +3 -18
- package/dist/components/BbRatio/types.d.ts +15 -0
- package/dist/components/BbSelect/BbSelect.vue.d.ts +7 -375
- package/dist/components/BbSelect/types.d.ts +351 -0
- package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +1 -1
- package/dist/components/BbSelectPopover/types.d.ts +351 -0
- package/dist/components/BbSlider/BbSlider.vue.d.ts +10 -129
- package/dist/components/BbSlider/types.d.ts +123 -0
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +2 -23
- package/dist/components/BbSmoothHeight/types.d.ts +24 -0
- package/dist/components/BbSpinner/BbSpinner.vue.d.ts +3 -5
- package/dist/components/BbSpinner/types.d.ts +8 -0
- package/dist/components/BbSwitch/BbSwitch.vue.d.ts +9 -65
- package/dist/components/BbSwitch/types.d.ts +29 -0
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +7 -190
- package/dist/components/BbSwitchGroup/types.d.ts +81 -0
- package/dist/components/BbTab/BbTab.vue.d.ts +9 -247
- package/dist/components/BbTab/types.d.ts +186 -0
- package/dist/components/BbTag/BbTag.vue.d.ts +6 -156
- package/dist/components/BbTag/types.d.ts +158 -0
- package/dist/components/BbTextInput/BbTextInput.vue.d.ts +10 -152
- package/dist/components/BbTextInput/types.d.ts +137 -0
- package/dist/components/BbTextarea/BbTextarea.vue.d.ts +10 -142
- package/dist/components/BbTextarea/types.d.ts +123 -0
- package/dist/components/BbToast/BbToast.vue.d.ts +2 -6
- package/dist/components/BbToast/types.d.ts +8 -0
- package/dist/components/BbTooltip/BbTooltip.vue.d.ts +8 -65
- package/dist/components/BbTooltip/types.d.ts +55 -0
- package/dist/components/BbTree/BbTree.vue.d.ts +2 -65
- package/dist/components/BbTree/types.d.ts +69 -0
- package/dist/components/{ChipsBox.vue.d.ts → ChipsBox/ChipsBox.vue.d.ts} +5 -6
- package/dist/components/ChipsBox/types.d.ts +14 -0
- package/dist/components/{ClearableButton.vue.d.ts → ClearableButton/ClearableButton.vue.d.ts} +2 -0
- package/dist/components/ClearableButton/types.d.ts +3 -0
- package/dist/components/{CommaBox.vue.d.ts → CommaBox/CommaBox.vue.d.ts} +5 -6
- package/dist/components/CommaBox/types.d.ts +14 -0
- package/dist/components/CommonInputInnerContainer/CommonInputInnerContainer.vue.d.ts +25 -0
- package/dist/components/CommonInputInnerContainer/types.d.ts +47 -0
- package/dist/components/CommonInputOuterContainer/CommonInputOuterContainer.vue.d.ts +17 -0
- package/dist/components/CommonInputOuterContainer/types.d.ts +16 -0
- package/dist/components/{CommonPopover.vue.d.ts → CommonPopover/CommonPopover.vue.d.ts} +5 -30
- package/dist/components/CommonPopover/types.d.ts +43 -0
- package/dist/components/{ErrorIcon.vue.d.ts → ErrorIcon/ErrorIcon.vue.d.ts} +2 -0
- package/dist/components/ErrorIcon/types.d.ts +3 -0
- package/dist/components/FlatListBox/types.d.ts +97 -0
- package/dist/components/GroupedListBox/types.d.ts +118 -0
- package/dist/components/ListBox/ListBox.vue.d.ts +30 -0
- package/dist/components/ListBox/types.d.ts +133 -0
- package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +13 -0
- package/dist/components/OptionsContainer/types.d.ts +96 -0
- package/dist/composables/useBbConfig.d.ts +1 -1
- package/dist/composables/useConfirm.d.ts +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +18 -18
- package/dist/index109.js +9 -9
- package/dist/index110.js +50 -49
- package/dist/index114.js +1 -1
- package/dist/index118.js +1 -1
- package/dist/index122.js +1 -0
- package/dist/index124.js +4 -4
- package/dist/index126.js +13 -13
- package/dist/index132.js +22 -19
- package/dist/index134.js +1 -1
- package/dist/index136.js +5 -5
- package/dist/index138.js +1 -1
- package/dist/index14.js +1 -1
- package/dist/index140.js +18 -17
- package/dist/index144.js +1 -1
- package/dist/index146.js +2 -2
- package/dist/index149.js +2 -2
- package/dist/index16.js +3 -3
- package/dist/index18.js +3 -3
- package/dist/index20.js +70 -59
- package/dist/index22.js +14 -14
- package/dist/index221.js +138 -2
- package/dist/index222.js +2 -138
- package/dist/index224.js +5 -34
- package/dist/index225.js +7 -32
- package/dist/index226.js +32 -26
- package/dist/index227.js +7 -0
- package/dist/index228.js +5 -5
- package/dist/index229.js +5 -8
- package/dist/index230.js +5 -7
- package/dist/index231.js +3 -2
- package/dist/index232.js +2 -9
- package/dist/index233.js +6 -13
- package/dist/index234.js +8 -3
- package/dist/index235.js +268 -2
- package/dist/index236.js +52 -11
- package/dist/index237.js +50 -6
- package/dist/index238.js +32 -3
- package/dist/index239.js +60 -3
- package/dist/index24.js +10 -10
- package/dist/index240.js +13 -2
- package/dist/index241.js +187 -17
- package/dist/index242.js +3 -12
- package/dist/index243.js +2 -51
- package/dist/index244.js +2 -18
- package/dist/index245.js +2 -12
- package/dist/index246.js +12 -16
- package/dist/index247.js +11 -28
- package/dist/index248.js +48 -15
- package/dist/index249.js +17 -4
- package/dist/index250.js +2 -2
- package/dist/index252.js +2 -2
- package/dist/index254.js +3 -135
- package/dist/index255.js +4 -0
- package/dist/index256.js +4 -107
- package/dist/index257.js +19 -12
- package/dist/index258.js +6 -2
- package/dist/index259.js +16 -7
- package/dist/index26.js +3 -3
- package/dist/index260.js +86 -7
- package/dist/index262.js +32 -0
- package/dist/index263.js +18 -5
- package/dist/index264.js +12 -5
- package/dist/index265.js +18 -5
- package/dist/index266.js +2 -5
- package/dist/index267.js +7 -5
- package/dist/index268.js +7 -5
- package/dist/index269.js +3 -67
- package/dist/index270.js +4 -33
- package/dist/index271.js +5 -2
- package/dist/index272.js +5 -2
- package/dist/index273.js +5 -3
- package/dist/index274.js +135 -4
- package/dist/index276.js +9 -6
- package/dist/index277.js +7 -11
- package/dist/index278.js +23 -5
- package/dist/index279.js +3 -5
- package/dist/index28.js +57 -55
- package/dist/index280.js +21 -266
- package/dist/index281.js +364 -43
- package/dist/index283.js +32 -31
- package/dist/index284.js +3 -60
- package/dist/index285.js +25 -4
- package/dist/index286.js +3 -20
- package/dist/index287.js +18 -5
- package/dist/index288.js +12 -373
- package/dist/index289.js +109 -0
- package/dist/index290.js +11 -6
- package/dist/index291.js +66 -15
- package/dist/index292.js +32 -10
- package/dist/index294.js +5 -8
- package/dist/index295.js +9 -20
- package/dist/index296.js +2 -8
- package/dist/index297.js +9 -23
- package/dist/index298.js +52 -24
- package/dist/index299.js +5 -188
- package/dist/index30.js +3 -3
- package/dist/index300.js +21 -3
- package/dist/index301.js +28 -3
- package/dist/index303.js +9 -0
- package/dist/index304.js +2 -7
- package/dist/index305.js +280 -3
- package/dist/index306.js +2 -2
- package/dist/index307.js +16 -5
- package/dist/index308.js +2 -7
- package/dist/index309.js +16 -3
- package/dist/index310.js +2 -3
- package/dist/index311.js +27 -3
- package/dist/index312.js +2 -2
- package/dist/index313.js +2 -28
- package/dist/index314.js +2 -17
- package/dist/index315.js +2 -4
- package/dist/index316.js +1 -1
- package/dist/index317.js +28 -3
- package/dist/index318.js +2 -280
- package/dist/index319.js +7 -2
- package/dist/index32.js +2 -2
- package/dist/index320.js +719 -125
- package/dist/index321.js +366 -2
- package/dist/index322.js +56 -14
- package/dist/index323.js +4 -2
- package/dist/index324.js +3 -16
- package/dist/index325.js +17 -2
- package/dist/index326.js +3 -16
- package/dist/index327.js +3 -2
- package/dist/index328.js +3 -19
- package/dist/index329.js +3 -2
- package/dist/index330.js +120 -22
- package/dist/index331.js +2 -2
- package/dist/index332.js +15 -2
- package/dist/index333.js +2 -2
- package/dist/index334.js +19 -2
- package/dist/index335.js +2 -2
- package/dist/index336.js +5 -2
- package/dist/index337.js +5 -3
- package/dist/index338.js +2 -4
- package/dist/index339.js +4 -719
- package/dist/index34.js +8 -8
- package/dist/index340.js +2 -366
- package/dist/index341.js +3 -57
- package/dist/index342.js +3 -6
- package/dist/index343.js +6 -5
- package/dist/index344.js +6 -34
- package/dist/index345.js +17 -127
- package/dist/index346.js +7 -396
- package/dist/index347.js +14 -199
- package/dist/index348.js +5 -259
- package/dist/index349.js +6 -227
- package/dist/index352.js +35 -2
- package/dist/index353.js +129 -2
- package/dist/index354.js +378 -114
- package/dist/index355.js +92 -6
- package/dist/index356.js +226 -17
- package/dist/index357.js +22 -9
- package/dist/index359.js +7 -5
- package/dist/index36.js +4 -4
- package/dist/index360.js +200 -7
- package/dist/index361.js +255 -18
- package/dist/index362.js +136 -0
- package/dist/index363.js +2 -93
- package/dist/index364.js +2 -441
- package/dist/index365.js +427 -114
- package/dist/index366.js +127 -46
- package/dist/index367.js +44 -67
- package/dist/index368.js +66 -516
- package/dist/index369.js +515 -45
- package/dist/index370.js +52 -0
- package/dist/index38.js +133 -131
- package/dist/index40.js +8 -8
- package/dist/index42.js +2 -2
- package/dist/index44.js +16 -15
- package/dist/index46.js +4 -4
- package/dist/index50.js +28 -25
- package/dist/index54.js +1 -1
- package/dist/index56.js +1 -1
- package/dist/index58.js +2 -2
- package/dist/index60.js +2 -2
- package/dist/index62.js +5 -5
- package/dist/index66.js +3 -1
- package/dist/index68.js +1 -1
- package/dist/index74.js +4 -4
- package/dist/index82.js +6 -6
- package/dist/index84.js +1 -1
- package/dist/index86.js +2 -2
- package/dist/index88.js +3 -3
- package/dist/index90.js +1 -1
- package/dist/index93.js +3 -3
- package/dist/index95.js +2 -2
- package/dist/index97.js +5 -5
- package/dist/index99.js +1 -1
- package/dist/utilities/functions/parseSize.d.ts +1 -1
- package/package.json +5 -3
- package/dist/components/CommonInputInnerContainer.vue.d.ts +0 -81
- package/dist/components/CommonInputOuterContainer.vue.d.ts +0 -41
- package/dist/components/FlatListBox.vue.d.ts +0 -119
- package/dist/components/GroupedListBox.vue.d.ts +0 -153
- package/dist/components/ListBox.vue.d.ts +0 -170
- package/dist/components/OptionsContainer.vue.d.ts +0 -172
- package/dist/index261.js +0 -88
- package/dist/index275.js +0 -25
- package/dist/index282.js +0 -54
- package/dist/index293.js +0 -5
- package/dist/index302.js +0 -55
- package/dist/index358.js +0 -17
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
# BaseColorInput
|
|
2
|
+
|
|
3
|
+
## Template & Script
|
|
4
|
+
|
|
5
|
+
```vue
|
|
6
|
+
<template>
|
|
7
|
+
<CommonInputOuterContainer ref="wrapper" :class="classes">
|
|
8
|
+
<template #prepend-outer><slot name="prepend-outer"></slot></template>
|
|
9
|
+
<CommonInputInnerContainer
|
|
10
|
+
ref="innerContainer"
|
|
11
|
+
:append:icon="props['append:icon']"
|
|
12
|
+
:clearable="clearable && isNotNil(modelValue) && !readonly && !disabled"
|
|
13
|
+
:prepend:icon="props['prepend:icon']"
|
|
14
|
+
@click:clear="$emit('update:modelValue', null)"
|
|
15
|
+
>
|
|
16
|
+
<template #prepend><slot name="prepend" /></template>
|
|
17
|
+
<template #prefix><slot name="prefix" /></template>
|
|
18
|
+
|
|
19
|
+
<input
|
|
20
|
+
v-bind="eventListeners"
|
|
21
|
+
:id="id"
|
|
22
|
+
v-maska="options"
|
|
23
|
+
:aria-describedby="ariaDescribedby"
|
|
24
|
+
:aria-invalid="hasErrors ? true : undefined"
|
|
25
|
+
:autocomplete="autocomplete"
|
|
26
|
+
:autofocus="autofocus"
|
|
27
|
+
class="bb-base-color-input__input"
|
|
28
|
+
:disabled="disabled"
|
|
29
|
+
:name="name"
|
|
30
|
+
:placeholder="placeholder"
|
|
31
|
+
:readonly="readonly"
|
|
32
|
+
:required="required"
|
|
33
|
+
size="1"
|
|
34
|
+
type="text"
|
|
35
|
+
:value="modelValue"
|
|
36
|
+
/>
|
|
37
|
+
|
|
38
|
+
<template #append>
|
|
39
|
+
<BbColorPalette
|
|
40
|
+
:alpha="alpha"
|
|
41
|
+
:anchor="innerContainer"
|
|
42
|
+
:disabled="disabled || readonly"
|
|
43
|
+
:label="indicatorLabel"
|
|
44
|
+
:model-value="modelValue"
|
|
45
|
+
:picker="picker"
|
|
46
|
+
:swatches="swatches"
|
|
47
|
+
@update:model-value="emit('update:modelValue', $event)"
|
|
48
|
+
@update:open="shown = $event"
|
|
49
|
+
>
|
|
50
|
+
<template #activator="{ props: dotProps }">
|
|
51
|
+
<button
|
|
52
|
+
v-bind="dotProps"
|
|
53
|
+
class="bb-base-color-input__indicator"
|
|
54
|
+
:disabled="disabled || readonly"
|
|
55
|
+
:style="{ backgroundColor: props.modelValue ?? undefined }"
|
|
56
|
+
type="button"
|
|
57
|
+
/>
|
|
58
|
+
</template>
|
|
59
|
+
</BbColorPalette>
|
|
60
|
+
<slot name="append">
|
|
61
|
+
<span class="bb-common-input-inner-container__suffix">
|
|
62
|
+
<slot name="suffix"></slot>
|
|
63
|
+
</span>
|
|
64
|
+
</slot>
|
|
65
|
+
</template>
|
|
66
|
+
</CommonInputInnerContainer>
|
|
67
|
+
|
|
68
|
+
<template #append-outer><slot name="append-outer"></slot></template>
|
|
69
|
+
</CommonInputOuterContainer>
|
|
70
|
+
</template>
|
|
71
|
+
|
|
72
|
+
<script setup lang="ts">
|
|
73
|
+
import { computed } from 'vue';
|
|
74
|
+
import { isHex } from '@/utilities/functions/isHex';
|
|
75
|
+
import { isNotNil } from '@/utilities/functions/isNotNil';
|
|
76
|
+
import { ref } from 'vue';
|
|
77
|
+
import { useId } from '@/composables/useId';
|
|
78
|
+
import { useLocale } from '@/composables/useLocale';
|
|
79
|
+
import { vMaska } from 'maska/vue';
|
|
80
|
+
import BbColorPalette from '../BbColorPalette/BbColorPalette.vue';
|
|
81
|
+
import CommonInputInnerContainer from '../CommonInputInnerContainer/CommonInputInnerContainer.vue';
|
|
82
|
+
import CommonInputOuterContainer from '../CommonInputOuterContainer/CommonInputOuterContainer.vue';
|
|
83
|
+
import type { MaskaDetail, MaskInputOptions } from 'maska';
|
|
84
|
+
import type {
|
|
85
|
+
BaseColorInputEvents,
|
|
86
|
+
BaseColorInputProps,
|
|
87
|
+
BaseColorInputSlots,
|
|
88
|
+
} from './types';
|
|
89
|
+
|
|
90
|
+
const props = withDefaults(defineProps<BaseColorInputProps>(), {
|
|
91
|
+
alpha: false,
|
|
92
|
+
autocomplete: 'off',
|
|
93
|
+
transitionDuration: 250,
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
const emit = defineEmits<BaseColorInputEvents>();
|
|
97
|
+
|
|
98
|
+
defineSlots<BaseColorInputSlots>();
|
|
99
|
+
|
|
100
|
+
const wrapper = ref<InstanceType<typeof CommonInputOuterContainer> | null>(
|
|
101
|
+
null
|
|
102
|
+
);
|
|
103
|
+
const innerContainer = ref<InstanceType<
|
|
104
|
+
typeof CommonInputInnerContainer
|
|
105
|
+
> | null>(null);
|
|
106
|
+
const id = props.id ?? `bb_${useId().id.value}`;
|
|
107
|
+
|
|
108
|
+
const { t } = useLocale();
|
|
109
|
+
|
|
110
|
+
const indicatorLabel = computed(() =>
|
|
111
|
+
props.modelValue
|
|
112
|
+
? t('colorInput.openPickerSelected', props.modelValue).value
|
|
113
|
+
: t('colorInput.openPicker').value
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
const classes = computed(() => ({
|
|
117
|
+
'bb-base-color-input': true,
|
|
118
|
+
'bb-base-color-input--disabled': props.disabled,
|
|
119
|
+
'bb-base-color-input--errors': props.hasErrors,
|
|
120
|
+
'bb-base-color-input--loading': props.loading,
|
|
121
|
+
'bb-base-color-input--readonly': props.readonly,
|
|
122
|
+
'bb-base-color-input--compact': props.compact,
|
|
123
|
+
'bb-base-color-input--active': shown.value,
|
|
124
|
+
}));
|
|
125
|
+
|
|
126
|
+
const handleMaska = (event: CustomEvent<MaskaDetail>): void => {
|
|
127
|
+
const detail = event.detail;
|
|
128
|
+
if (isHex(detail.masked)) {
|
|
129
|
+
emit('update:modelValue', detail.masked);
|
|
130
|
+
} else if (detail.masked === '') {
|
|
131
|
+
emit('update:modelValue', null);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* These events are just propagated
|
|
137
|
+
*/
|
|
138
|
+
const eventListeners = {
|
|
139
|
+
onBlur: (event: FocusEvent) => emit('blur', event),
|
|
140
|
+
onChange: (event: Event) => emit('change', event),
|
|
141
|
+
onClick: (event: MouseEvent) => emit('click', event),
|
|
142
|
+
onFocus: (event: FocusEvent) => emit('focus', event),
|
|
143
|
+
onInput: (event: Event) => emit('input', event),
|
|
144
|
+
onKeydown: (event: KeyboardEvent) => emit('keydown', event),
|
|
145
|
+
onMaska: handleMaska,
|
|
146
|
+
onMousedown: (event: MouseEvent) => emit('mousedown', event),
|
|
147
|
+
onMouseup: (event: MouseEvent) => emit('mouseup', event),
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
const options = computed<MaskInputOptions>(() => ({
|
|
151
|
+
mask: props.alpha ? '!#HHHHHHHH' : '!#HHHHHH',
|
|
152
|
+
tokens: {
|
|
153
|
+
H: { pattern: /[0-9a-fA-F]/ },
|
|
154
|
+
},
|
|
155
|
+
eager: true,
|
|
156
|
+
}));
|
|
157
|
+
|
|
158
|
+
// Tracks palette open state (driven by BbColorPalette) for the --active CSS class
|
|
159
|
+
const shown = ref(false);
|
|
160
|
+
</script>
|
|
161
|
+
|
|
162
|
+
<style lang="postcss">
|
|
163
|
+
@import './index.css';
|
|
164
|
+
</style>
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Types
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
import type { IconType } from '@/types/Icon';
|
|
171
|
+
import type { HTMLAttributes, InputHTMLAttributes } from 'vue';
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Color input with hex value masking and an optional palette popover.
|
|
175
|
+
* Accepts and emits `#RRGGBB` (or `#RRGGBBAA` when `alpha` is enabled) values via v-model
|
|
176
|
+
* and supports full input chrome slots.
|
|
177
|
+
*/
|
|
178
|
+
export type BaseColorInputProps = {
|
|
179
|
+
/**
|
|
180
|
+
* Enable the alpha channel. When true the picker shows an opacity slider and
|
|
181
|
+
* emits / accepts `#RRGGBBAA` hex8 values.
|
|
182
|
+
*/
|
|
183
|
+
alpha?: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* Name of the icon to render at the right hand side of the input.
|
|
186
|
+
*/
|
|
187
|
+
// eslint-disable-next-line vue/prop-name-casing
|
|
188
|
+
'append:icon'?: IconType;
|
|
189
|
+
/**
|
|
190
|
+
* Id(s) of element(s) describing this input for assistive tech (space-separated).
|
|
191
|
+
* Typically includes the container hint id if used within a BaseInputContainer.
|
|
192
|
+
*/
|
|
193
|
+
ariaDescribedby?: InputHTMLAttributes['aria-describedby'];
|
|
194
|
+
/**
|
|
195
|
+
* Autocomplete hint for the browser.
|
|
196
|
+
* @default 'off'
|
|
197
|
+
*/
|
|
198
|
+
autocomplete?: InputHTMLAttributes['autocomplete'];
|
|
199
|
+
/**
|
|
200
|
+
* Focus the input on mount.
|
|
201
|
+
*/
|
|
202
|
+
autofocus?: InputHTMLAttributes['autofocus'];
|
|
203
|
+
/**
|
|
204
|
+
* Show a clear button when the input has a value.
|
|
205
|
+
*/
|
|
206
|
+
clearable?: boolean;
|
|
207
|
+
/**
|
|
208
|
+
* Display the component in a compact layout.
|
|
209
|
+
*/
|
|
210
|
+
compact?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Disable all interactions.
|
|
213
|
+
*/
|
|
214
|
+
disabled?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Visually mark the component as invalid (also sets aria-invalid on the input).
|
|
217
|
+
*/
|
|
218
|
+
hasErrors?: boolean;
|
|
219
|
+
/**
|
|
220
|
+
* The id attribute for the input element. Defaults to a generated `bb_<unique>` id when omitted.
|
|
221
|
+
*/
|
|
222
|
+
id?: HTMLAttributes['id'];
|
|
223
|
+
/**
|
|
224
|
+
* Display the loading state.
|
|
225
|
+
*/
|
|
226
|
+
loading?: boolean;
|
|
227
|
+
/**
|
|
228
|
+
* v-model value: `#RRGGBB` hex string or `null` when empty.
|
|
229
|
+
* Example: `#1A2B3C`
|
|
230
|
+
*/
|
|
231
|
+
modelValue: string | null;
|
|
232
|
+
/**
|
|
233
|
+
* Name attribute of the input.
|
|
234
|
+
*/
|
|
235
|
+
name?: InputHTMLAttributes['name'];
|
|
236
|
+
/**
|
|
237
|
+
* Placeholder text when there is no value.
|
|
238
|
+
*/
|
|
239
|
+
placeholder?: InputHTMLAttributes['placeholder'];
|
|
240
|
+
/**
|
|
241
|
+
* Name of the icon to render at the start of the input.
|
|
242
|
+
*/
|
|
243
|
+
// eslint-disable-next-line vue/prop-name-casing
|
|
244
|
+
'prepend:icon'?: IconType;
|
|
245
|
+
/**
|
|
246
|
+
* Make the input read-only.
|
|
247
|
+
*/
|
|
248
|
+
readonly?: boolean;
|
|
249
|
+
/**
|
|
250
|
+
* Mark the input as required.
|
|
251
|
+
*/
|
|
252
|
+
required?: boolean;
|
|
253
|
+
/**
|
|
254
|
+
* Show an eyedropper button to sample any color on screen.
|
|
255
|
+
* Uses the native EyeDropper API — hidden automatically on unsupported browsers.
|
|
256
|
+
* @default false
|
|
257
|
+
*/
|
|
258
|
+
picker?: boolean;
|
|
259
|
+
/**
|
|
260
|
+
* Controls swatches display in the picker:
|
|
261
|
+
* - `true` — show the built-in Material-palette swatches
|
|
262
|
+
* - `string[][]` — show custom swatches (each inner array = a column of shades)
|
|
263
|
+
* - `false` / omitted — no swatches section
|
|
264
|
+
*/
|
|
265
|
+
swatches?: boolean | string[][];
|
|
266
|
+
/**
|
|
267
|
+
* Transition duration (ms) of the palette popover.
|
|
268
|
+
* @default 250
|
|
269
|
+
*/
|
|
270
|
+
transitionDuration?: number;
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Events emitted by the color input.
|
|
275
|
+
* - blur/change/click/focus/input/keydown/mousedown/mouseup: native input events (payload: original event)
|
|
276
|
+
* - update:modelValue: emits `#RRGGBB` when valid, `null` when cleared/invalid
|
|
277
|
+
*/
|
|
278
|
+
export type BaseColorInputEvents = {
|
|
279
|
+
/**
|
|
280
|
+
* Emitted when the native text input loses focus.
|
|
281
|
+
* Forwards the original DOM `FocusEvent`.
|
|
282
|
+
*/
|
|
283
|
+
(e: 'blur', event: FocusEvent): void;
|
|
284
|
+
/**
|
|
285
|
+
* Emitted when the native text input fires a change event.
|
|
286
|
+
* Forwards the original DOM `Event`.
|
|
287
|
+
*/
|
|
288
|
+
(e: 'change', event: Event): void;
|
|
289
|
+
/**
|
|
290
|
+
* Emitted when the input area receives a click.
|
|
291
|
+
* Forwards the original DOM `MouseEvent`.
|
|
292
|
+
*/
|
|
293
|
+
(e: 'click', event: MouseEvent): void;
|
|
294
|
+
/**
|
|
295
|
+
* Emitted when the native text input gains focus.
|
|
296
|
+
* Forwards the original DOM `FocusEvent`.
|
|
297
|
+
*/
|
|
298
|
+
(e: 'focus', event: FocusEvent): void;
|
|
299
|
+
/**
|
|
300
|
+
* Emitted on native input events from the text field.
|
|
301
|
+
* Forwards the original DOM `Event`.
|
|
302
|
+
*/
|
|
303
|
+
(e: 'input', event: Event): void;
|
|
304
|
+
/**
|
|
305
|
+
* Emitted for keyboard interaction on the input.
|
|
306
|
+
* Forwards the original DOM `KeyboardEvent`.
|
|
307
|
+
*/
|
|
308
|
+
(e: 'keydown', event: KeyboardEvent): void;
|
|
309
|
+
/**
|
|
310
|
+
* Emitted when a pointing device button is pressed over the input.
|
|
311
|
+
* Forwards the original DOM `MouseEvent`.
|
|
312
|
+
*/
|
|
313
|
+
(e: 'mousedown', event: MouseEvent): void;
|
|
314
|
+
/**
|
|
315
|
+
* Emitted when a pointing device button is released over the input.
|
|
316
|
+
* Forwards the original DOM `MouseEvent`.
|
|
317
|
+
*/
|
|
318
|
+
(e: 'mouseup', event: MouseEvent): void;
|
|
319
|
+
/**
|
|
320
|
+
* Emitted when the value becomes a valid hex color via typing/masking,
|
|
321
|
+
* when the field is cleared, or when the palette selects a color.
|
|
322
|
+
* Emits:
|
|
323
|
+
* - `#RRGGBB` (or `#RRGGBBAA` when `alpha` is enabled) for valid values
|
|
324
|
+
* - `null` when cleared
|
|
325
|
+
*/
|
|
326
|
+
(e: 'update:modelValue', value: string | null): void;
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Slots to customize the input chrome.
|
|
331
|
+
* Use `prepend`/`append` for inline adornments; `prepend-outer`/`append-outer` for the outer container areas.
|
|
332
|
+
*/
|
|
333
|
+
export type BaseColorInputSlots = {
|
|
334
|
+
/**
|
|
335
|
+
* Content rendered after the color picker indicator button, at the end of the inner container.
|
|
336
|
+
* When provided, replaces the default suffix wrapper (use the `suffix` slot if you only need inline trailing text).
|
|
337
|
+
* This slot receives no scoped props.
|
|
338
|
+
*/
|
|
339
|
+
append?: (props: Record<string, never>) => any;
|
|
340
|
+
/**
|
|
341
|
+
* Content rendered after the entire input control, outside the input chrome.
|
|
342
|
+
* This slot receives no scoped props.
|
|
343
|
+
*/
|
|
344
|
+
'append-outer'?: (props: Record<string, never>) => any;
|
|
345
|
+
/**
|
|
346
|
+
* Inline content rendered at the start of the input field area, before the typed text.
|
|
347
|
+
* This slot receives no scoped props.
|
|
348
|
+
*/
|
|
349
|
+
prefix?: (props: Record<string, never>) => any;
|
|
350
|
+
/**
|
|
351
|
+
* Content rendered before the text input, at the start of the inner container.
|
|
352
|
+
* This slot receives no scoped props.
|
|
353
|
+
*/
|
|
354
|
+
prepend?: (props: Record<string, never>) => any;
|
|
355
|
+
/**
|
|
356
|
+
* Content rendered before the entire input control, outside the input chrome.
|
|
357
|
+
* This slot receives no scoped props.
|
|
358
|
+
*/
|
|
359
|
+
'prepend-outer'?: (props: Record<string, never>) => any;
|
|
360
|
+
/**
|
|
361
|
+
* Inline content rendered at the end of the input field area, after the typed text.
|
|
362
|
+
* Renders inside the default `append` area's suffix wrapper.
|
|
363
|
+
* This slot receives no scoped props.
|
|
364
|
+
*/
|
|
365
|
+
suffix?: (props: Record<string, never>) => any;
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
export type ColorPaletteProps = {
|
|
369
|
+
/**
|
|
370
|
+
* Current color value bound via `v-model`.
|
|
371
|
+
* Accepts `#RRGGBB` and `#RRGGBBAA` (alpha) formats, or `null` for no value.
|
|
372
|
+
*/
|
|
373
|
+
modelValue: string | null;
|
|
374
|
+
/**
|
|
375
|
+
* Enable alpha channel support.
|
|
376
|
+
* When true, an alpha slider is shown and emitted values include alpha as hex8.
|
|
377
|
+
* @default false
|
|
378
|
+
*/
|
|
379
|
+
alpha?: boolean;
|
|
380
|
+
/**
|
|
381
|
+
* Show an eyedropper button that lets the user sample any color on screen.
|
|
382
|
+
* Uses the native EyeDropper API — hidden automatically on unsupported browsers.
|
|
383
|
+
* @default false
|
|
384
|
+
*/
|
|
385
|
+
picker?: boolean;
|
|
386
|
+
/**
|
|
387
|
+
* Controls swatches display:
|
|
388
|
+
* - `true` — show the built-in Material-palette swatches
|
|
389
|
+
* - `string[][]` — show custom swatches (each inner array = a column of shades)
|
|
390
|
+
* - `false` / omitted — no swatches section
|
|
391
|
+
*/
|
|
392
|
+
swatches?: boolean | string[][];
|
|
393
|
+
};
|
|
394
|
+
|
|
395
|
+
export type ColorPaletteEvents = {
|
|
396
|
+
/**
|
|
397
|
+
* Emitted whenever the user changes color through:
|
|
398
|
+
* - SV canvas dragging/keyboard
|
|
399
|
+
* - hue slider dragging/keyboard
|
|
400
|
+
* - alpha slider dragging/keyboard (when enabled)
|
|
401
|
+
* - swatch selection
|
|
402
|
+
* - eyedropper pick
|
|
403
|
+
*
|
|
404
|
+
* Payload format:
|
|
405
|
+
* - `#RRGGBB` when `alpha` is disabled
|
|
406
|
+
* - `#RRGGBBAA` when `alpha` is enabled
|
|
407
|
+
*/
|
|
408
|
+
(e: 'update:modelValue', value: string): void;
|
|
409
|
+
};
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
## Styles
|
|
413
|
+
|
|
414
|
+
```css
|
|
415
|
+
.bb-base-color-input {
|
|
416
|
+
--bb-arrow: 0;
|
|
417
|
+
position: relative;
|
|
418
|
+
&--disabled {
|
|
419
|
+
}
|
|
420
|
+
&--errors {
|
|
421
|
+
}
|
|
422
|
+
&--loading {
|
|
423
|
+
}
|
|
424
|
+
&--readonly {
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
.bb-common-input-inner-container {
|
|
428
|
+
position: relative;
|
|
429
|
+
.bb-base-color-input__input {
|
|
430
|
+
}
|
|
431
|
+
.bb-base-color-input__indicator {
|
|
432
|
+
background-color: inherit;
|
|
433
|
+
border: 1px solid var(--bb-border);
|
|
434
|
+
border-radius: var(--bb-radius);
|
|
435
|
+
cursor: pointer;
|
|
436
|
+
display: inline-block;
|
|
437
|
+
height: var(--bb-input-icon);
|
|
438
|
+
outline: none;
|
|
439
|
+
width: var(--bb-input-icon);
|
|
440
|
+
isolation: isolate;
|
|
441
|
+
|
|
442
|
+
box-shadow: 0px 0px 0px 0px var(--bb-ring);
|
|
443
|
+
transition: box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
444
|
+
&:focus-visible {
|
|
445
|
+
box-shadow: 0px 0px 0px var(--bb-ring-size) var(--bb-ring);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
&__prepend-icon,
|
|
450
|
+
&__append-icon {
|
|
451
|
+
}
|
|
452
|
+
.bb-spinner {
|
|
453
|
+
}
|
|
454
|
+
.bb-error-icon {
|
|
455
|
+
}
|
|
456
|
+
&__prefix,
|
|
457
|
+
&__suffix {
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
```
|