paket-ui 0.0.1
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/LICENSE +21 -0
- package/README.md +72 -0
- package/dist/module.d.mts +10 -0
- package/dist/module.json +13 -0
- package/dist/module.mjs +46 -0
- package/dist/runtime/components/ProgressIndicator/ProgressBase.vue +36 -0
- package/dist/runtime/components/ProgressIndicator/ProgressBase.vue.d.ts +8 -0
- package/dist/runtime/components/ProgressIndicator/ProgressIndicator.vue +46 -0
- package/dist/runtime/components/ProgressIndicator/ProgressIndicator.vue.d.ts +9 -0
- package/dist/runtime/components/Recorder/RecorderAudio.vue +136 -0
- package/dist/runtime/components/Recorder/RecorderAudio.vue.d.ts +11 -0
- package/dist/runtime/components/alert/AlertHelperForm.vue +22 -0
- package/dist/runtime/components/alert/AlertHelperForm.vue.d.ts +13 -0
- package/dist/runtime/components/alert/AlertPinLocation.vue +57 -0
- package/dist/runtime/components/alert/AlertPinLocation.vue.d.ts +13 -0
- package/dist/runtime/components/alert/BaseAlert.vue +54 -0
- package/dist/runtime/components/alert/BaseAlert.vue.d.ts +34 -0
- package/dist/runtime/components/alert/index.d.ts +20 -0
- package/dist/runtime/components/alert/index.js +20 -0
- package/dist/runtime/components/attachment/BaseAttachment.vue +52 -0
- package/dist/runtime/components/attachment/BaseAttachment.vue.d.ts +24 -0
- package/dist/runtime/components/attachment/ChipAttachment.vue +57 -0
- package/dist/runtime/components/attachment/ChipAttachment.vue.d.ts +28 -0
- package/dist/runtime/components/attachment/index.d.ts +15 -0
- package/dist/runtime/components/attachment/index.js +15 -0
- package/dist/runtime/components/avatar/BaseAvatar.vue +41 -0
- package/dist/runtime/components/avatar/BaseAvatar.vue.d.ts +31 -0
- package/dist/runtime/components/avatar/IconAvatar.vue +28 -0
- package/dist/runtime/components/avatar/IconAvatar.vue.d.ts +18 -0
- package/dist/runtime/components/avatar/index.d.ts +27 -0
- package/dist/runtime/components/avatar/index.js +27 -0
- package/dist/runtime/components/badge/BaseBadge.vue +26 -0
- package/dist/runtime/components/badge/BaseBadge.vue.d.ts +17 -0
- package/dist/runtime/components/badge/IconBadge.vue +37 -0
- package/dist/runtime/components/badge/IconBadge.vue.d.ts +23 -0
- package/dist/runtime/components/badge/index.d.ts +45 -0
- package/dist/runtime/components/badge/index.js +45 -0
- package/dist/runtime/components/badge/location.vue +18 -0
- package/dist/runtime/components/badge/location.vue.d.ts +5 -0
- package/dist/runtime/components/button/BaseButton.vue +32 -0
- package/dist/runtime/components/button/BaseButton.vue.d.ts +16 -0
- package/dist/runtime/components/button/ButtonApplyVoucher.vue +32 -0
- package/dist/runtime/components/button/ButtonApplyVoucher.vue.d.ts +11 -0
- package/dist/runtime/components/button/IconButton.vue +44 -0
- package/dist/runtime/components/button/IconButton.vue.d.ts +27 -0
- package/dist/runtime/components/button/LinkButton.vue +40 -0
- package/dist/runtime/components/button/LinkButton.vue.d.ts +23 -0
- package/dist/runtime/components/button/box.vue +14 -0
- package/dist/runtime/components/button/box.vue.d.ts +6 -0
- package/dist/runtime/components/button/index.d.ts +28 -0
- package/dist/runtime/components/button/index.js +28 -0
- package/dist/runtime/components/card/BaseCard.vue +26 -0
- package/dist/runtime/components/card/BaseCard.vue.d.ts +18 -0
- package/dist/runtime/components/card/CardBalanceEstimation.vue +29 -0
- package/dist/runtime/components/card/CardBalanceEstimation.vue.d.ts +11 -0
- package/dist/runtime/components/card/CardBalanceSummary.vue +24 -0
- package/dist/runtime/components/card/CardBalanceSummary.vue.d.ts +8 -0
- package/dist/runtime/components/card/CardStatistic.vue +96 -0
- package/dist/runtime/components/card/CardStatistic.vue.d.ts +46 -0
- package/dist/runtime/components/card/CreditCard.vue +106 -0
- package/dist/runtime/components/card/CreditCard.vue.d.ts +16 -0
- package/dist/runtime/components/card/ExpandableCard.vue +51 -0
- package/dist/runtime/components/card/ExpandableCard.vue.d.ts +20 -0
- package/dist/runtime/components/card/NeedPinLocation.vue +27 -0
- package/dist/runtime/components/card/NeedPinLocation.vue.d.ts +8 -0
- package/dist/runtime/components/card/OriginEmpty.vue +13 -0
- package/dist/runtime/components/card/OriginEmpty.vue.d.ts +2 -0
- package/dist/runtime/components/card/OriginItem.vue +76 -0
- package/dist/runtime/components/card/OriginItem.vue.d.ts +25 -0
- package/dist/runtime/components/card/OriginItemDeleted.vue +40 -0
- package/dist/runtime/components/card/OriginItemDeleted.vue.d.ts +15 -0
- package/dist/runtime/components/card/index.vue +17 -0
- package/dist/runtime/components/card/index.vue.d.ts +16 -0
- package/dist/runtime/components/card/origin.vue +42 -0
- package/dist/runtime/components/card/origin.vue.d.ts +39 -0
- package/dist/runtime/components/chart/BarChart.vue +85 -0
- package/dist/runtime/components/chart/BarChart.vue.d.ts +14 -0
- package/dist/runtime/components/chart/ChartHorizontal.vue +123 -0
- package/dist/runtime/components/chart/ChartHorizontal.vue.d.ts +29 -0
- package/dist/runtime/components/chart/GaugeChart.vue +108 -0
- package/dist/runtime/components/chart/GaugeChart.vue.d.ts +28 -0
- package/dist/runtime/components/chart/PieChart.vue +35 -0
- package/dist/runtime/components/chart/PieChart.vue.d.ts +13 -0
- package/dist/runtime/components/chat/Reply.vue +157 -0
- package/dist/runtime/components/chat/Reply.vue.d.ts +60 -0
- package/dist/runtime/components/checkbox/Checkbox.vue +59 -0
- package/dist/runtime/components/checkbox/Checkbox.vue.d.ts +16 -0
- package/dist/runtime/components/checkbox/CheckboxBase.vue +46 -0
- package/dist/runtime/components/checkbox/CheckboxBase.vue.d.ts +15 -0
- package/dist/runtime/components/chip/ChipBase.vue +44 -0
- package/dist/runtime/components/chip/ChipBase.vue.d.ts +26 -0
- package/dist/runtime/components/chip/index.d.ts +4 -0
- package/dist/runtime/components/chip/index.js +4 -0
- package/dist/runtime/components/collapsible/CollapsibleBase.vue +34 -0
- package/dist/runtime/components/collapsible/CollapsibleBase.vue.d.ts +22 -0
- package/dist/runtime/components/combobox/Combobox.vue +171 -0
- package/dist/runtime/components/combobox/Combobox.vue.d.ts +44 -0
- package/dist/runtime/components/combobox/ComboboxInput.vue +13 -0
- package/dist/runtime/components/combobox/ComboboxInput.vue.d.ts +2 -0
- package/dist/runtime/components/combobox/_index.d.ts +1 -0
- package/dist/runtime/components/combobox/_index.js +0 -0
- package/dist/runtime/components/container/ContainerWrapper.vue +11 -0
- package/dist/runtime/components/container/ContainerWrapper.vue.d.ts +16 -0
- package/dist/runtime/components/container/FloatActionWrapper.vue +29 -0
- package/dist/runtime/components/container/FloatActionWrapper.vue.d.ts +20 -0
- package/dist/runtime/components/context-menu/ContextMenuBase.vue +37 -0
- package/dist/runtime/components/context-menu/ContextMenuBase.vue.d.ts +21 -0
- package/dist/runtime/components/cropper/CropperImage.vue +82 -0
- package/dist/runtime/components/cropper/CropperImage.vue.d.ts +18 -0
- package/dist/runtime/components/datepicker/DatepickerBase.vue +55 -0
- package/dist/runtime/components/datepicker/DatepickerBase.vue.d.ts +26 -0
- package/dist/runtime/components/datepicker/DatepickerBody.vue +139 -0
- package/dist/runtime/components/datepicker/DatepickerBody.vue.d.ts +11 -0
- package/dist/runtime/components/dialog/DialogConfirmation.vue +56 -0
- package/dist/runtime/components/dialog/DialogConfirmation.vue.d.ts +44 -0
- package/dist/runtime/components/dialog/DialogConfirmationSingle.vue +108 -0
- package/dist/runtime/components/dialog/DialogConfirmationSingle.vue.d.ts +59 -0
- package/dist/runtime/components/dialog/DialogFloatAction.vue +51 -0
- package/dist/runtime/components/dialog/DialogFloatAction.vue.d.ts +39 -0
- package/dist/runtime/components/dialog/RootDialog.vue +56 -0
- package/dist/runtime/components/dialog/RootDialog.vue.d.ts +19 -0
- package/dist/runtime/components/dialog/aside.vue +80 -0
- package/dist/runtime/components/dialog/aside.vue.d.ts +26 -0
- package/dist/runtime/components/dialog/help.vue +37 -0
- package/dist/runtime/components/dialog/help.vue.d.ts +2 -0
- package/dist/runtime/components/dialog-reka/DialogContent.vue +48 -0
- package/dist/runtime/components/dialog-reka/DialogContent.vue.d.ts +26 -0
- package/dist/runtime/components/dialog-reka/DialogPreviewerImage.vue +177 -0
- package/dist/runtime/components/dialog-reka/DialogPreviewerImage.vue.d.ts +14 -0
- package/dist/runtime/components/dialog-reka/DialogPreviewerVideo.vue +44 -0
- package/dist/runtime/components/dialog-reka/DialogPreviewerVideo.vue.d.ts +13 -0
- package/dist/runtime/components/dialog-reka/DialogRoot.vue +42 -0
- package/dist/runtime/components/dialog-reka/DialogRoot.vue.d.ts +28 -0
- package/dist/runtime/components/divider/DividerBase.vue +35 -0
- package/dist/runtime/components/divider/DividerBase.vue.d.ts +12 -0
- package/dist/runtime/components/divider/DividerDash.vue +43 -0
- package/dist/runtime/components/divider/DividerDash.vue.d.ts +14 -0
- package/dist/runtime/components/dropdown/Dropdown.vue +96 -0
- package/dist/runtime/components/dropdown/Dropdown.vue.d.ts +52 -0
- package/dist/runtime/components/dropdown/DropdownItem.vue +52 -0
- package/dist/runtime/components/dropdown/DropdownItem.vue.d.ts +35 -0
- package/dist/runtime/components/file/AddFile.vue +16 -0
- package/dist/runtime/components/file/AddFile.vue.d.ts +7 -0
- package/dist/runtime/components/file/DropAreaFile.vue +141 -0
- package/dist/runtime/components/file/DropAreaFile.vue.d.ts +28 -0
- package/dist/runtime/components/file/ViewFile.vue +70 -0
- package/dist/runtime/components/file/ViewFile.vue.d.ts +12 -0
- package/dist/runtime/components/filter/FilterChip.vue +39 -0
- package/dist/runtime/components/filter/FilterChip.vue.d.ts +19 -0
- package/dist/runtime/components/filter/FilterStatus.vue +28 -0
- package/dist/runtime/components/filter/FilterStatus.vue.d.ts +16 -0
- package/dist/runtime/components/image/ImageLoader.vue +61 -0
- package/dist/runtime/components/image/ImageLoader.vue.d.ts +11 -0
- package/dist/runtime/components/input/ButtonFileInput.vue +77 -0
- package/dist/runtime/components/input/ButtonFileInput.vue.d.ts +27 -0
- package/dist/runtime/components/input/IconButtonFileInput.vue +80 -0
- package/dist/runtime/components/input/IconButtonFileInput.vue.d.ts +33 -0
- package/dist/runtime/components/input/InputCheckbox.vue +38 -0
- package/dist/runtime/components/input/InputCheckbox.vue.d.ts +16 -0
- package/dist/runtime/components/input/InputControl.vue +11 -0
- package/dist/runtime/components/input/InputControl.vue.d.ts +16 -0
- package/dist/runtime/components/input/InputField.vue +86 -0
- package/dist/runtime/components/input/InputField.vue.d.ts +28 -0
- package/dist/runtime/components/input/InputFieldPassword.vue +47 -0
- package/dist/runtime/components/input/InputFieldPassword.vue.d.ts +18 -0
- package/dist/runtime/components/input/InputFieldPhone.vue +71 -0
- package/dist/runtime/components/input/InputFieldPhone.vue.d.ts +34 -0
- package/dist/runtime/components/input/InputFieldWithOption.vue +69 -0
- package/dist/runtime/components/input/InputFieldWithOption.vue.d.ts +37 -0
- package/dist/runtime/components/input/InputFileDropable.vue +162 -0
- package/dist/runtime/components/input/InputFileDropable.vue.d.ts +33 -0
- package/dist/runtime/components/input/InputGroup.vue +18 -0
- package/dist/runtime/components/input/InputGroup.vue.d.ts +18 -0
- package/dist/runtime/components/input/InputImageDropable.vue +170 -0
- package/dist/runtime/components/input/InputImageDropable.vue.d.ts +24 -0
- package/dist/runtime/components/input/InputNumber.vue +53 -0
- package/dist/runtime/components/input/InputNumber.vue.d.ts +13 -0
- package/dist/runtime/components/input/InputOtp.vue +66 -0
- package/dist/runtime/components/input/InputOtp.vue.d.ts +20 -0
- package/dist/runtime/components/input/InputRadio.vue +49 -0
- package/dist/runtime/components/input/InputRadio.vue.d.ts +22 -0
- package/dist/runtime/components/input/InputText.vue +94 -0
- package/dist/runtime/components/input/InputText.vue.d.ts +50 -0
- package/dist/runtime/components/input/TextArea.vue +75 -0
- package/dist/runtime/components/input/TextArea.vue.d.ts +26 -0
- package/dist/runtime/components/input/index.d.ts +36 -0
- package/dist/runtime/components/input/index.js +60 -0
- package/dist/runtime/components/label/BaseLabel.vue +18 -0
- package/dist/runtime/components/label/BaseLabel.vue.d.ts +9 -0
- package/dist/runtime/components/label/ErrorLabel.vue +13 -0
- package/dist/runtime/components/label/ErrorLabel.vue.d.ts +10 -0
- package/dist/runtime/components/label/Form.vue +16 -0
- package/dist/runtime/components/label/Form.vue.d.ts +7 -0
- package/dist/runtime/components/label/HintLabel.vue +23 -0
- package/dist/runtime/components/label/HintLabel.vue.d.ts +10 -0
- package/dist/runtime/components/label/LabelSection.vue +39 -0
- package/dist/runtime/components/label/LabelSection.vue.d.ts +20 -0
- package/dist/runtime/components/listbox/Listbox.vue +17 -0
- package/dist/runtime/components/listbox/Listbox.vue.d.ts +17 -0
- package/dist/runtime/components/listbox/ListboxItem.vue +34 -0
- package/dist/runtime/components/listbox/ListboxItem.vue.d.ts +20 -0
- package/dist/runtime/components/loading/BounceLoading.vue +19 -0
- package/dist/runtime/components/loading/BounceLoading.vue.d.ts +6 -0
- package/dist/runtime/components/loading/LoadingCircular.vue +46 -0
- package/dist/runtime/components/loading/LoadingCircular.vue.d.ts +10 -0
- package/dist/runtime/components/loading/LoadingIndicator.d.ts +60 -0
- package/dist/runtime/components/loading/LoadingIndicator.js +66 -0
- package/dist/runtime/components/loading/SpinnerLoading.vue +11 -0
- package/dist/runtime/components/loading/SpinnerLoading.vue.d.ts +6 -0
- package/dist/runtime/components/player/Audio.vue +104 -0
- package/dist/runtime/components/player/Audio.vue.d.ts +15 -0
- package/dist/runtime/components/player/Scrubber.vue +48 -0
- package/dist/runtime/components/player/Scrubber.vue.d.ts +44 -0
- package/dist/runtime/components/player/Video.vue +163 -0
- package/dist/runtime/components/player/Video.vue.d.ts +11 -0
- package/dist/runtime/components/popover/Popover.vue +30 -0
- package/dist/runtime/components/popover/Popover.vue.d.ts +18 -0
- package/dist/runtime/components/popover/WhatsAppChecker.vue +61 -0
- package/dist/runtime/components/popover/WhatsAppChecker.vue.d.ts +13 -0
- package/dist/runtime/components/radio/Courier.vue +195 -0
- package/dist/runtime/components/radio/Courier.vue.d.ts +54 -0
- package/dist/runtime/components/radio/Decoration.vue +43 -0
- package/dist/runtime/components/radio/Decoration.vue.d.ts +5 -0
- package/dist/runtime/components/radio/RadioCourierBadge.vue +68 -0
- package/dist/runtime/components/radio/RadioCourierBadge.vue.d.ts +11 -0
- package/dist/runtime/components/radio/ThemeDecoration.vue +40 -0
- package/dist/runtime/components/radio/ThemeDecoration.vue.d.ts +2 -0
- package/dist/runtime/components/radio-group/ButtonRadio.vue +106 -0
- package/dist/runtime/components/radio-group/ButtonRadio.vue.d.ts +47 -0
- package/dist/runtime/components/range-picker/RangePicker.vue +77 -0
- package/dist/runtime/components/range-picker/RangePicker.vue.d.ts +20 -0
- package/dist/runtime/components/range-picker/RangePickerBody.vue +270 -0
- package/dist/runtime/components/range-picker/RangePickerBody.vue.d.ts +24 -0
- package/dist/runtime/components/range-picker/index.d.ts +5 -0
- package/dist/runtime/components/scroll-area/ScrollAreaBase.vue +57 -0
- package/dist/runtime/components/scroll-area/ScrollAreaBase.vue.d.ts +20 -0
- package/dist/runtime/components/select/SelectBase.vue +137 -0
- package/dist/runtime/components/select/SelectBase.vue.d.ts +50 -0
- package/dist/runtime/components/select/SelectMultiple.vue +119 -0
- package/dist/runtime/components/select/SelectMultiple.vue.d.ts +45 -0
- package/dist/runtime/components/select/SelectOption.vue +96 -0
- package/dist/runtime/components/select/SelectOption.vue.d.ts +21 -0
- package/dist/runtime/components/select/SelectWithInput.vue +46 -0
- package/dist/runtime/components/select/SelectWithInput.vue.d.ts +21 -0
- package/dist/runtime/components/stepper/Stepper.vue +99 -0
- package/dist/runtime/components/stepper/Stepper.vue.d.ts +23 -0
- package/dist/runtime/components/switch/Switch.vue +42 -0
- package/dist/runtime/components/switch/Switch.vue.d.ts +28 -0
- package/dist/runtime/components/table/TableWrapper.vue +61 -0
- package/dist/runtime/components/table/TableWrapper.vue.d.ts +15 -0
- package/dist/runtime/components/tabs/TabBase.vue +77 -0
- package/dist/runtime/components/tabs/TabBase.vue.d.ts +32 -0
- package/dist/runtime/components/tags-input/TagsInput.vue +131 -0
- package/dist/runtime/components/tags-input/TagsInput.vue.d.ts +48 -0
- package/dist/runtime/components/tags-input/TagsInputWithOption.vue +95 -0
- package/dist/runtime/components/tags-input/TagsInputWithOption.vue.d.ts +26 -0
- package/dist/runtime/components/time-picker/TimePicker.vue +84 -0
- package/dist/runtime/components/time-picker/TimePicker.vue.d.ts +17 -0
- package/dist/runtime/components/time-picker/TimePickerBody.vue +178 -0
- package/dist/runtime/components/time-picker/TimePickerBody.vue.d.ts +21 -0
- package/dist/runtime/components/toast/ToastCard.vue +36 -0
- package/dist/runtime/components/toast/ToastCard.vue.d.ts +16 -0
- package/dist/runtime/components/toast/ToastContainer.vue +15 -0
- package/dist/runtime/components/toast/ToastContainer.vue.d.ts +2 -0
- package/dist/runtime/components/toast/ToastNetwork.vue +109 -0
- package/dist/runtime/components/toast/ToastNetwork.vue.d.ts +2 -0
- package/dist/runtime/components/toast/index.d.ts +16 -0
- package/dist/runtime/components/toast/index.js +16 -0
- package/dist/runtime/components/toggle-group/MultiSelect.vue +45 -0
- package/dist/runtime/components/toggle-group/MultiSelect.vue.d.ts +38 -0
- package/dist/runtime/components/toggle-group/ToggleGroup.vue +59 -0
- package/dist/runtime/components/toggle-group/ToggleGroup.vue.d.ts +41 -0
- package/dist/runtime/components/tooltip/MiniTooltip.vue +58 -0
- package/dist/runtime/components/tooltip/MiniTooltip.vue.d.ts +21 -0
- package/dist/runtime/components/tooltip/Tooltip.vue +50 -0
- package/dist/runtime/components/tooltip/Tooltip.vue.d.ts +21 -0
- package/dist/runtime/plugin.d.ts +2 -0
- package/dist/runtime/plugin.js +4 -0
- package/dist/runtime/server/tsconfig.json +3 -0
- package/dist/runtime/utils/cn.d.ts +5 -0
- package/dist/runtime/utils/cn.js +5 -0
- package/dist/runtime/utils/formatNumber.d.ts +2 -0
- package/dist/runtime/utils/formatNumber.js +12 -0
- package/dist/types.d.mts +3 -0
- package/package.json +63 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
defaultValue?: string;
|
|
4
|
+
modelValue?: string;
|
|
5
|
+
class?: HTMLAttributes['class'];
|
|
6
|
+
id?: HTMLAttributes['id'];
|
|
7
|
+
size?: string;
|
|
8
|
+
value: string;
|
|
9
|
+
label: string;
|
|
10
|
+
};
|
|
11
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
12
|
+
"update:modelValue": (payload: string) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
14
|
+
"onUpdate:modelValue"?: ((payload: string) => any) | undefined;
|
|
15
|
+
}>, {
|
|
16
|
+
class: HTMLAttributes["class"];
|
|
17
|
+
size: string;
|
|
18
|
+
modelValue: string;
|
|
19
|
+
id: string;
|
|
20
|
+
defaultValue: string;
|
|
21
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex flex-col">
|
|
3
|
+
<div v-if="label" class="mb-1 flex justify-between">
|
|
4
|
+
<UiLabelBaseLabel
|
|
5
|
+
v-if="label"
|
|
6
|
+
:text="label"
|
|
7
|
+
:for="id"
|
|
8
|
+
:is-required="required"
|
|
9
|
+
:class="cn('inline-block', props.labelClass)"
|
|
10
|
+
/>
|
|
11
|
+
<span v-if="hint && props.maxLength" class="text-xs text-flux-outline">
|
|
12
|
+
{{ content?.toString().length ?? 0 }} / {{ props.maxLength }}
|
|
13
|
+
</span>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="relative">
|
|
16
|
+
<div
|
|
17
|
+
v-if="slots.leading"
|
|
18
|
+
class="absolute left-3 top-1/2 text-sm -translate-y-1/2"
|
|
19
|
+
>
|
|
20
|
+
<slot name="leading" />
|
|
21
|
+
</div>
|
|
22
|
+
<UiInputField
|
|
23
|
+
:id="id"
|
|
24
|
+
v-model="content"
|
|
25
|
+
:class="[inputClasses]"
|
|
26
|
+
:type="type"
|
|
27
|
+
:max="max"
|
|
28
|
+
:allow-emoji="allowEmoji"
|
|
29
|
+
:placeholder="placeholder ?? label ?? ''"
|
|
30
|
+
:required="required"
|
|
31
|
+
:autocomplete="autocomplete"
|
|
32
|
+
:max-length="maxLength"
|
|
33
|
+
:maxlength="maxLength"
|
|
34
|
+
:invalid="!!errorMessage"
|
|
35
|
+
:inputmode="inputmode"
|
|
36
|
+
:input-mask="inputMask"
|
|
37
|
+
:tabindex="tabIndex"
|
|
38
|
+
:local-tel="localTel"
|
|
39
|
+
:disabled="disabled"
|
|
40
|
+
/>
|
|
41
|
+
<div
|
|
42
|
+
v-if="slots.trailing || props.trailing"
|
|
43
|
+
class="absolute right-3 top-1/2 text-xs -translate-y-1/2"
|
|
44
|
+
>
|
|
45
|
+
<slot name="trailing">{{ props.trailing }}</slot>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
<p
|
|
49
|
+
v-if="errorMessage"
|
|
50
|
+
class="text-flux-error text-xs mt-1 font-semibold"
|
|
51
|
+
v-text="errorMessage"
|
|
52
|
+
/>
|
|
53
|
+
</div>
|
|
54
|
+
</template>
|
|
55
|
+
|
|
56
|
+
<script setup>
|
|
57
|
+
import { useVModel } from "@vueuse/core";
|
|
58
|
+
const props = defineProps({
|
|
59
|
+
id: { type: String, required: false },
|
|
60
|
+
modelValue: { type: [String, Number], required: false },
|
|
61
|
+
errorMessage: { type: String, required: false },
|
|
62
|
+
label: { type: String, required: false },
|
|
63
|
+
autocomplete: { type: null, required: false },
|
|
64
|
+
inputClass: { type: null, required: false },
|
|
65
|
+
placeholder: { type: null, required: false },
|
|
66
|
+
type: { type: null, required: false },
|
|
67
|
+
disabled: { type: null, required: false },
|
|
68
|
+
required: { type: Boolean, required: false },
|
|
69
|
+
inputMask: { type: null, required: false },
|
|
70
|
+
maxLength: { type: null, required: false },
|
|
71
|
+
maxClipboardLength: { type: Number, required: false },
|
|
72
|
+
inputmode: { type: null, required: false },
|
|
73
|
+
labelClass: { type: null, required: false },
|
|
74
|
+
inputWrapperClass: { type: null, required: false },
|
|
75
|
+
tabIndex: { type: [String, Number], required: false },
|
|
76
|
+
allowEmoji: { type: Boolean, required: false },
|
|
77
|
+
trailing: { type: String, required: false },
|
|
78
|
+
max: { type: null, required: false },
|
|
79
|
+
localTel: { type: Boolean, required: false },
|
|
80
|
+
hint: { type: Boolean, required: false }
|
|
81
|
+
});
|
|
82
|
+
const emit = defineEmits(["update:modelValue", "removeError", "focus", "blur"]);
|
|
83
|
+
const slots = useSlots();
|
|
84
|
+
const content = useVModel(props, "modelValue", emit);
|
|
85
|
+
const inputClasses = computed(
|
|
86
|
+
() => cn([
|
|
87
|
+
{
|
|
88
|
+
"pl-10": slots.leading,
|
|
89
|
+
"pr-10": slots.trailing || props.trailing
|
|
90
|
+
},
|
|
91
|
+
props.inputClass
|
|
92
|
+
])
|
|
93
|
+
);
|
|
94
|
+
</script>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { HTMLAttributes, InputHTMLAttributes } from 'vue';
|
|
2
|
+
import type { inputMaskingConfiguration } from '.';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
id?: string;
|
|
5
|
+
modelValue?: string | number;
|
|
6
|
+
errorMessage?: string;
|
|
7
|
+
label?: string;
|
|
8
|
+
autocomplete?: InputHTMLAttributes['autocomplete'];
|
|
9
|
+
inputClass?: HTMLAttributes['class'];
|
|
10
|
+
placeholder?: InputHTMLAttributes['placeholder'];
|
|
11
|
+
type?: InputHTMLAttributes['type'];
|
|
12
|
+
disabled?: InputHTMLAttributes['disabled'];
|
|
13
|
+
required?: boolean;
|
|
14
|
+
inputMask?: keyof typeof inputMaskingConfiguration;
|
|
15
|
+
maxLength?: HTMLInputElement['maxLength'];
|
|
16
|
+
maxClipboardLength?: number;
|
|
17
|
+
inputmode?: HTMLAttributes['inputmode'];
|
|
18
|
+
labelClass?: HTMLAttributes['class'];
|
|
19
|
+
inputWrapperClass?: HTMLAttributes['class'];
|
|
20
|
+
tabIndex?: string | number;
|
|
21
|
+
allowEmoji?: boolean;
|
|
22
|
+
trailing?: string;
|
|
23
|
+
max?: InputHTMLAttributes['max'];
|
|
24
|
+
localTel?: boolean;
|
|
25
|
+
hint?: boolean;
|
|
26
|
+
};
|
|
27
|
+
declare var __VLS_5: {}, __VLS_11: {};
|
|
28
|
+
type __VLS_Slots = {} & {
|
|
29
|
+
leading?: (props: typeof __VLS_5) => any;
|
|
30
|
+
} & {
|
|
31
|
+
trailing?: (props: typeof __VLS_11) => any;
|
|
32
|
+
};
|
|
33
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
34
|
+
"update:modelValue": (value?: string | number | undefined) => void;
|
|
35
|
+
removeError: () => void;
|
|
36
|
+
blur: (evt: FocusEvent) => void;
|
|
37
|
+
focus: (evt: FocusEvent) => void;
|
|
38
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
39
|
+
onBlur?: ((evt: FocusEvent) => any) | undefined;
|
|
40
|
+
onFocus?: ((evt: FocusEvent) => any) | undefined;
|
|
41
|
+
"onUpdate:modelValue"?: ((value?: string | number | undefined) => any) | undefined;
|
|
42
|
+
onRemoveError?: (() => any) | undefined;
|
|
43
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
45
|
+
export default _default;
|
|
46
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
47
|
+
new (): {
|
|
48
|
+
$slots: S;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { useVModel } from "@vueuse/core";
|
|
3
|
+
import { BASE_CLASS, BASE_INVALID_CLASS, inputMaskingConfiguration } from ".";
|
|
4
|
+
const props = defineProps({
|
|
5
|
+
class: { type: null, required: false, default: void 0 },
|
|
6
|
+
defaultValue: { type: [String, Number, null], required: false, default: void 0 },
|
|
7
|
+
modelValue: { type: [String, Number, null], required: false, default: void 0 },
|
|
8
|
+
invalid: { type: Boolean, required: false },
|
|
9
|
+
inputMask: { type: null, required: false, default: "default" },
|
|
10
|
+
maxlength: { type: null, required: false, default: void 0 },
|
|
11
|
+
allowEmoji: { type: Boolean, required: false }
|
|
12
|
+
});
|
|
13
|
+
const emits = defineEmits(["update:modelValue"]);
|
|
14
|
+
const modelValue = useVModel(props, "modelValue", emits, {
|
|
15
|
+
passive: true,
|
|
16
|
+
defaultValue: props.defaultValue
|
|
17
|
+
});
|
|
18
|
+
const maskedValue = computed({
|
|
19
|
+
get: () => inputMaskingConfiguration[props.inputMask].get(
|
|
20
|
+
modelValue.value || void 0
|
|
21
|
+
),
|
|
22
|
+
set: (value) => modelValue.value = inputMaskingConfiguration[props.inputMask].set(value)
|
|
23
|
+
});
|
|
24
|
+
const onInput = (e) => {
|
|
25
|
+
const inputEl = e.target;
|
|
26
|
+
if (!props.allowEmoji && emojiRegex.test(inputEl.value)) {
|
|
27
|
+
modelValue.value = inputEl.value = inputEl.value.replace(emojiRegex, "");
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const onPaste = (event) => {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
const clipboardData = (event.clipboardData?.getData("text/plain") || "").trim();
|
|
33
|
+
const start = textInputRef.value?.selectionStart ?? 0;
|
|
34
|
+
const end = textInputRef.value?.selectionEnd ?? 0;
|
|
35
|
+
const currentValue = modelValue.value?.toString() ?? "";
|
|
36
|
+
let newValue = currentValue.slice(0, start) + clipboardData + currentValue.slice(end);
|
|
37
|
+
newValue = inputMaskingConfiguration[props.inputMask].set(newValue);
|
|
38
|
+
if (!props.allowEmoji && emojiRegex.test(newValue?.toString() || "")) {
|
|
39
|
+
newValue = newValue?.toString().replace(emojiRegex, "");
|
|
40
|
+
}
|
|
41
|
+
if (props.maxlength) {
|
|
42
|
+
newValue = newValue?.toString().slice(0, parseInt(props.maxlength.toString()));
|
|
43
|
+
}
|
|
44
|
+
modelValue.value = newValue;
|
|
45
|
+
nextTick(() => {
|
|
46
|
+
const pos = start + clipboardData.length;
|
|
47
|
+
textInputRef.value?.setSelectionRange(pos, pos);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const textInputRef = ref(null);
|
|
51
|
+
defineExpose({
|
|
52
|
+
textInputRef,
|
|
53
|
+
focus: () => {
|
|
54
|
+
textInputRef.value?.focus?.();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
</script>
|
|
58
|
+
|
|
59
|
+
<template>
|
|
60
|
+
<textarea
|
|
61
|
+
ref="textInputRef"
|
|
62
|
+
v-model="maskedValue"
|
|
63
|
+
:class="
|
|
64
|
+
cn(
|
|
65
|
+
BASE_CLASS,
|
|
66
|
+
'flex min-h-[76px]',
|
|
67
|
+
props.invalid ? BASE_INVALID_CLASS : '',
|
|
68
|
+
props.class
|
|
69
|
+
)
|
|
70
|
+
"
|
|
71
|
+
:maxlength="maxlength"
|
|
72
|
+
@paste="onPaste"
|
|
73
|
+
@input="onInput"
|
|
74
|
+
/>
|
|
75
|
+
</template>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
import { inputMaskingConfiguration } from '.';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
class?: HTMLAttributes['class'];
|
|
5
|
+
defaultValue?: string | number | null;
|
|
6
|
+
modelValue?: string | number | null;
|
|
7
|
+
invalid?: boolean;
|
|
8
|
+
inputMask?: keyof typeof inputMaskingConfiguration;
|
|
9
|
+
maxlength?: HTMLTextAreaElement['maxLength'] | string;
|
|
10
|
+
allowEmoji?: boolean;
|
|
11
|
+
};
|
|
12
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {
|
|
13
|
+
textInputRef: any;
|
|
14
|
+
focus: () => void;
|
|
15
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
16
|
+
"update:modelValue": (payload: string | number | null) => any;
|
|
17
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
18
|
+
"onUpdate:modelValue"?: ((payload: string | number | null) => any) | undefined;
|
|
19
|
+
}>, {
|
|
20
|
+
class: HTMLAttributes["class"];
|
|
21
|
+
modelValue: string | number | null;
|
|
22
|
+
maxlength: HTMLTextAreaElement["maxLength"] | string;
|
|
23
|
+
defaultValue: string | number | null;
|
|
24
|
+
inputMask: keyof typeof inputMaskingConfiguration;
|
|
25
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare const inputMaskingConfiguration: {
|
|
2
|
+
default: {
|
|
3
|
+
get: (modelValue?: string | number) => string | number | undefined;
|
|
4
|
+
set: (value?: string | number) => string | number | undefined;
|
|
5
|
+
};
|
|
6
|
+
number: {
|
|
7
|
+
get: (modelValue?: string | number) => string | undefined;
|
|
8
|
+
set: (value?: string | number) => string | undefined;
|
|
9
|
+
};
|
|
10
|
+
npwp: {
|
|
11
|
+
get: (modelValue?: string | number) => string | undefined;
|
|
12
|
+
set: (value?: string | number) => string | undefined;
|
|
13
|
+
};
|
|
14
|
+
numbering: {
|
|
15
|
+
get: (modelValue?: string | number) => string | undefined;
|
|
16
|
+
set: (value?: string | number) => number | undefined;
|
|
17
|
+
};
|
|
18
|
+
url: {
|
|
19
|
+
get: (modelValue?: string | number) => string | number | undefined;
|
|
20
|
+
set: (value?: string | number) => string;
|
|
21
|
+
};
|
|
22
|
+
urlHost: {
|
|
23
|
+
get: (modelValue?: string | number) => string | number | undefined;
|
|
24
|
+
set: (value?: string | number) => string;
|
|
25
|
+
};
|
|
26
|
+
waOfferCode: {
|
|
27
|
+
get: (modelValue?: string | number) => string | undefined;
|
|
28
|
+
set: (value?: string | number) => string | undefined;
|
|
29
|
+
};
|
|
30
|
+
waButtonLabel: {
|
|
31
|
+
get: (modelValue?: string | number) => string | undefined;
|
|
32
|
+
set: (value?: string | number) => string | undefined;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export declare const BASE_CLASS: string[];
|
|
36
|
+
export declare const BASE_INVALID_CLASS = "text-flux-error ring-offset-1 border-flux-error ring-offset-flux-error focus:border-flux-error bg-surface-container-low";
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export const inputMaskingConfiguration = {
|
|
2
|
+
default: {
|
|
3
|
+
get: (modelValue) => modelValue,
|
|
4
|
+
set: (value) => value
|
|
5
|
+
},
|
|
6
|
+
number: {
|
|
7
|
+
get: (modelValue) => modelValue?.toString().replace(/\D/g, ""),
|
|
8
|
+
set: (value) => value?.toString().replace(/\D/g, "")
|
|
9
|
+
},
|
|
10
|
+
npwp: {
|
|
11
|
+
get: (modelValue) => {
|
|
12
|
+
const masked = modelValue?.toString().replace(
|
|
13
|
+
/^(\d{0,2})(\d{0,3})(\d{0,3})(\d{0,1})(\d{0,3})(\d{0,4})$/,
|
|
14
|
+
(_match, p1, p2, p3, p4, p5, p6) => {
|
|
15
|
+
let result = p1;
|
|
16
|
+
if (p2) result += "." + p2;
|
|
17
|
+
if (p3) result += "." + p3;
|
|
18
|
+
if (p4) result += "." + p4;
|
|
19
|
+
if (p5) result += "-" + p5;
|
|
20
|
+
if (p6) result += "." + p6;
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
return masked;
|
|
25
|
+
},
|
|
26
|
+
set: (value) => value?.toString().replace(/\D/g, "")
|
|
27
|
+
},
|
|
28
|
+
numbering: {
|
|
29
|
+
get: (modelValue) => modelValue ? Number(modelValue).toLocaleString("id-ID") : void 0,
|
|
30
|
+
set: (value) => value ? Number(value.toString().replace(/\D/g, "")) : void 0
|
|
31
|
+
},
|
|
32
|
+
url: {
|
|
33
|
+
get: (modelValue) => modelValue,
|
|
34
|
+
set: (value) => {
|
|
35
|
+
let url = value?.toString().replace(/ /g, "") || "";
|
|
36
|
+
url = url.replace(/^https?:\/\//, "");
|
|
37
|
+
return url ? "https://" + url : "";
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
urlHost: {
|
|
41
|
+
get: (modelValue) => modelValue,
|
|
42
|
+
set: (value) => {
|
|
43
|
+
const url = value?.toString().replace(/ /g, "") || "";
|
|
44
|
+
return url.replace(/^https?:\/\//, "");
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
waOfferCode: {
|
|
48
|
+
get: (modelValue) => modelValue?.toString().replace(/[^a-zA-Z0-9]/g, ""),
|
|
49
|
+
set: (value) => value?.toString().replace(/[^a-zA-Z0-9]/g, "")
|
|
50
|
+
},
|
|
51
|
+
waButtonLabel: {
|
|
52
|
+
get: (modelValue) => modelValue?.toString().replace(/[^a-zA-Z0-9 .,:_\-/'&+!?()]/g, ""),
|
|
53
|
+
set: (value) => value?.toString().replace(/[^a-zA-Z0-9 .,:_\-/'&+!?()]/g, "")
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
export const BASE_CLASS = [
|
|
57
|
+
"w-full px-2.5 py-2 text-sm rounded-lg border border-outline-variant ring-inset placeholder:text-flux-outline focus-visible:outline-none ring-0 focus-visible:ring-offset-1 focus-visible:ring-offset-flux-primary disabled:cursor-not-allowed disabled:opacity-50 peer focus-visible:text-on-surface focus-visible:bg-surface-container-lowest read-only:bg-surface-container-low autofill:bg-background",
|
|
58
|
+
"text-onSurface ring-offset-0 ring-offset-flux-primary focus:border-flux-primary bg-background dark:bg-surface-container-high"
|
|
59
|
+
];
|
|
60
|
+
export const BASE_INVALID_CLASS = "text-flux-error ring-offset-1 border-flux-error ring-offset-flux-error focus:border-flux-error bg-surface-container-low";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
const props = defineProps({
|
|
3
|
+
class: { type: null, required: false },
|
|
4
|
+
text: { type: String, required: false },
|
|
5
|
+
isRequired: { type: Boolean, required: false },
|
|
6
|
+
as: { type: String, required: false }
|
|
7
|
+
});
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<component
|
|
12
|
+
:is="as ?? 'label'"
|
|
13
|
+
:class="cn('text-xs font-medium', props.class)"
|
|
14
|
+
>
|
|
15
|
+
{{ props.text || "This is Text" }}
|
|
16
|
+
<span v-if="isRequired" class="text-flux-error">*</span>
|
|
17
|
+
</component>
|
|
18
|
+
</template>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
text?: string;
|
|
5
|
+
isRequired?: boolean;
|
|
6
|
+
as?: string;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
const props = defineProps({
|
|
3
|
+
class: { type: null, required: false },
|
|
4
|
+
text: { type: String, required: false },
|
|
5
|
+
isRequired: { type: Boolean, required: false, default: true }
|
|
6
|
+
});
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<span :class="cn('text-xs text-flux-error font-medium', props.class)">
|
|
11
|
+
<span v-if="isRequired">*</span>{{ props.text || "This is Text" }}
|
|
12
|
+
</span>
|
|
13
|
+
</template>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
text?: string;
|
|
5
|
+
isRequired?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
8
|
+
isRequired: boolean;
|
|
9
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="mb-1 box-between flex">
|
|
3
|
+
<label :for="for" class="text-xs font-semibold block text-onSurface">
|
|
4
|
+
<span>{{label}} </span>
|
|
5
|
+
<span v-if="required" class="text-flux-error">*</span>
|
|
6
|
+
</label>
|
|
7
|
+
</div>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script setup>
|
|
11
|
+
defineProps({
|
|
12
|
+
for: { type: String, required: false },
|
|
13
|
+
label: { type: String, required: true },
|
|
14
|
+
required: { type: Boolean, required: false }
|
|
15
|
+
});
|
|
16
|
+
</script>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
for?: string;
|
|
3
|
+
label: string;
|
|
4
|
+
required?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { useForwardProps } from "reka-ui";
|
|
3
|
+
const props = defineProps({
|
|
4
|
+
class: { type: null, required: false },
|
|
5
|
+
text: { type: String, required: false },
|
|
6
|
+
isRequired: { type: Boolean, required: false },
|
|
7
|
+
as: { type: String, required: false },
|
|
8
|
+
hint: { type: String, required: false }
|
|
9
|
+
});
|
|
10
|
+
const forwarded = useForwardProps(props);
|
|
11
|
+
defineOptions({
|
|
12
|
+
inheritAttrs: false
|
|
13
|
+
});
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<template>
|
|
17
|
+
<div class="flex gap-2 justify-between">
|
|
18
|
+
<UiLabelBaseLabel v-bind="{ ...$attrs, ...forwarded, hint: void 0 }" />
|
|
19
|
+
<span class="text-xs text-flux-outline">
|
|
20
|
+
{{ props.hint }}
|
|
21
|
+
</span>
|
|
22
|
+
</div>
|
|
23
|
+
</template>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
text?: string;
|
|
5
|
+
isRequired?: boolean;
|
|
6
|
+
as?: string;
|
|
7
|
+
hint?: string;
|
|
8
|
+
};
|
|
9
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="flex flex-row justify-between items-center gap-y-2 gap-x-3 w-full h-fit"
|
|
4
|
+
>
|
|
5
|
+
<div class="flex items-center gap-1">
|
|
6
|
+
<div
|
|
7
|
+
v-if="icon"
|
|
8
|
+
class="p-1 mr-2 rounded-full bg-secondary-container text-flux-primary"
|
|
9
|
+
>
|
|
10
|
+
<Icon :name="icon" size="24px" />
|
|
11
|
+
</div>
|
|
12
|
+
<div>
|
|
13
|
+
<h3 class="font-bold" v-text="title"></h3>
|
|
14
|
+
<slot name="sub" />
|
|
15
|
+
</div>
|
|
16
|
+
<UiPopover v-if="slots.popover">
|
|
17
|
+
<Icon
|
|
18
|
+
name="material-symbols:info-outline"
|
|
19
|
+
size="20px"
|
|
20
|
+
class="text-flux-primary"
|
|
21
|
+
/>
|
|
22
|
+
<template #content>
|
|
23
|
+
<slot name="popover" />
|
|
24
|
+
</template>
|
|
25
|
+
</UiPopover>
|
|
26
|
+
</div>
|
|
27
|
+
<div v-if="slots.default" class="flex items-center gap-3">
|
|
28
|
+
<slot />
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script setup>
|
|
34
|
+
defineProps({
|
|
35
|
+
title: { type: String, required: true },
|
|
36
|
+
icon: { type: String, required: false }
|
|
37
|
+
});
|
|
38
|
+
const slots = useSlots();
|
|
39
|
+
</script>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
title: string;
|
|
3
|
+
icon?: string;
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_5: {}, __VLS_15: {}, __VLS_17: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
sub?: (props: typeof __VLS_5) => any;
|
|
8
|
+
} & {
|
|
9
|
+
popover?: (props: typeof __VLS_15) => any;
|
|
10
|
+
} & {
|
|
11
|
+
default?: (props: typeof __VLS_17) => any;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ListboxContent, ListboxRoot } from "reka-ui";
|
|
3
|
+
const props = defineProps({
|
|
4
|
+
class: { type: null, required: false },
|
|
5
|
+
scrollableAreaClass: { type: null, required: false }
|
|
6
|
+
});
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<ListboxRoot>
|
|
11
|
+
<UiScrollAreaBase :class="scrollableAreaClass">
|
|
12
|
+
<ListboxContent :class="cn('flex flex-col', props.class)">
|
|
13
|
+
<slot />
|
|
14
|
+
</ListboxContent>
|
|
15
|
+
</UiScrollAreaBase>
|
|
16
|
+
</ListboxRoot>
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
scrollableAreaClass?: HTMLAttributes['class'];
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_14: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_14) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ListboxItem, ListboxItemIndicator } from "reka-ui";
|
|
3
|
+
const props = defineProps({
|
|
4
|
+
class: { type: null, required: false },
|
|
5
|
+
indicatorClass: { type: null, required: false },
|
|
6
|
+
indicator: { type: Boolean, required: false }
|
|
7
|
+
});
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<ListboxItem
|
|
12
|
+
:class="
|
|
13
|
+
cn(
|
|
14
|
+
'select-none outline-none data-[highlighted]:bg-surface-container-low data-[state=checked]:bg-surface-container-low data-[disabled]:opacity-50',
|
|
15
|
+
props.class
|
|
16
|
+
)
|
|
17
|
+
"
|
|
18
|
+
>
|
|
19
|
+
<ListboxItemIndicator
|
|
20
|
+
v-if="props.indicator"
|
|
21
|
+
:class="
|
|
22
|
+
cn(
|
|
23
|
+
'absolute left-0 inline-flex items-center justify-center',
|
|
24
|
+
props.indicatorClass
|
|
25
|
+
)
|
|
26
|
+
"
|
|
27
|
+
>
|
|
28
|
+
<slot name="indicator">
|
|
29
|
+
<Icon name="material-symbols:check" />
|
|
30
|
+
</slot>
|
|
31
|
+
</ListboxItemIndicator>
|
|
32
|
+
<slot />
|
|
33
|
+
</ListboxItem>
|
|
34
|
+
</template>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
indicatorClass?: HTMLAttributes['class'];
|
|
5
|
+
indicator?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_10: {}, __VLS_16: {};
|
|
8
|
+
type __VLS_Slots = {} & {
|
|
9
|
+
indicator?: (props: typeof __VLS_10) => any;
|
|
10
|
+
} & {
|
|
11
|
+
default?: (props: typeof __VLS_16) => any;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
const props = defineProps({
|
|
3
|
+
class: { type: null, required: false }
|
|
4
|
+
});
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<template>
|
|
8
|
+
<div :class="['inline-flex justify-center items-center gap-1', props.class]">
|
|
9
|
+
<div
|
|
10
|
+
class="w-3 h-3 animate-bounce rounded-full bg-surfaceContainerHigh dark:bg-on-surface-variant"
|
|
11
|
+
></div>
|
|
12
|
+
<div
|
|
13
|
+
class="w-3 h-3 animate-[bounce_1s_infinite_200ms] rounded-full bg-surfaceContainerHigh dark:bg-on-surface-variant"
|
|
14
|
+
></div>
|
|
15
|
+
<div
|
|
16
|
+
class="w-3 h-3 animate-[bounce_1s_infinite_400ms] rounded-full bg-surfaceContainerHigh dark:bg-on-surface-variant"
|
|
17
|
+
></div>
|
|
18
|
+
</div>
|
|
19
|
+
</template>
|