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.
Files changed (285) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -0
  3. package/dist/module.d.mts +10 -0
  4. package/dist/module.json +13 -0
  5. package/dist/module.mjs +46 -0
  6. package/dist/runtime/components/ProgressIndicator/ProgressBase.vue +36 -0
  7. package/dist/runtime/components/ProgressIndicator/ProgressBase.vue.d.ts +8 -0
  8. package/dist/runtime/components/ProgressIndicator/ProgressIndicator.vue +46 -0
  9. package/dist/runtime/components/ProgressIndicator/ProgressIndicator.vue.d.ts +9 -0
  10. package/dist/runtime/components/Recorder/RecorderAudio.vue +136 -0
  11. package/dist/runtime/components/Recorder/RecorderAudio.vue.d.ts +11 -0
  12. package/dist/runtime/components/alert/AlertHelperForm.vue +22 -0
  13. package/dist/runtime/components/alert/AlertHelperForm.vue.d.ts +13 -0
  14. package/dist/runtime/components/alert/AlertPinLocation.vue +57 -0
  15. package/dist/runtime/components/alert/AlertPinLocation.vue.d.ts +13 -0
  16. package/dist/runtime/components/alert/BaseAlert.vue +54 -0
  17. package/dist/runtime/components/alert/BaseAlert.vue.d.ts +34 -0
  18. package/dist/runtime/components/alert/index.d.ts +20 -0
  19. package/dist/runtime/components/alert/index.js +20 -0
  20. package/dist/runtime/components/attachment/BaseAttachment.vue +52 -0
  21. package/dist/runtime/components/attachment/BaseAttachment.vue.d.ts +24 -0
  22. package/dist/runtime/components/attachment/ChipAttachment.vue +57 -0
  23. package/dist/runtime/components/attachment/ChipAttachment.vue.d.ts +28 -0
  24. package/dist/runtime/components/attachment/index.d.ts +15 -0
  25. package/dist/runtime/components/attachment/index.js +15 -0
  26. package/dist/runtime/components/avatar/BaseAvatar.vue +41 -0
  27. package/dist/runtime/components/avatar/BaseAvatar.vue.d.ts +31 -0
  28. package/dist/runtime/components/avatar/IconAvatar.vue +28 -0
  29. package/dist/runtime/components/avatar/IconAvatar.vue.d.ts +18 -0
  30. package/dist/runtime/components/avatar/index.d.ts +27 -0
  31. package/dist/runtime/components/avatar/index.js +27 -0
  32. package/dist/runtime/components/badge/BaseBadge.vue +26 -0
  33. package/dist/runtime/components/badge/BaseBadge.vue.d.ts +17 -0
  34. package/dist/runtime/components/badge/IconBadge.vue +37 -0
  35. package/dist/runtime/components/badge/IconBadge.vue.d.ts +23 -0
  36. package/dist/runtime/components/badge/index.d.ts +45 -0
  37. package/dist/runtime/components/badge/index.js +45 -0
  38. package/dist/runtime/components/badge/location.vue +18 -0
  39. package/dist/runtime/components/badge/location.vue.d.ts +5 -0
  40. package/dist/runtime/components/button/BaseButton.vue +32 -0
  41. package/dist/runtime/components/button/BaseButton.vue.d.ts +16 -0
  42. package/dist/runtime/components/button/ButtonApplyVoucher.vue +32 -0
  43. package/dist/runtime/components/button/ButtonApplyVoucher.vue.d.ts +11 -0
  44. package/dist/runtime/components/button/IconButton.vue +44 -0
  45. package/dist/runtime/components/button/IconButton.vue.d.ts +27 -0
  46. package/dist/runtime/components/button/LinkButton.vue +40 -0
  47. package/dist/runtime/components/button/LinkButton.vue.d.ts +23 -0
  48. package/dist/runtime/components/button/box.vue +14 -0
  49. package/dist/runtime/components/button/box.vue.d.ts +6 -0
  50. package/dist/runtime/components/button/index.d.ts +28 -0
  51. package/dist/runtime/components/button/index.js +28 -0
  52. package/dist/runtime/components/card/BaseCard.vue +26 -0
  53. package/dist/runtime/components/card/BaseCard.vue.d.ts +18 -0
  54. package/dist/runtime/components/card/CardBalanceEstimation.vue +29 -0
  55. package/dist/runtime/components/card/CardBalanceEstimation.vue.d.ts +11 -0
  56. package/dist/runtime/components/card/CardBalanceSummary.vue +24 -0
  57. package/dist/runtime/components/card/CardBalanceSummary.vue.d.ts +8 -0
  58. package/dist/runtime/components/card/CardStatistic.vue +96 -0
  59. package/dist/runtime/components/card/CardStatistic.vue.d.ts +46 -0
  60. package/dist/runtime/components/card/CreditCard.vue +106 -0
  61. package/dist/runtime/components/card/CreditCard.vue.d.ts +16 -0
  62. package/dist/runtime/components/card/ExpandableCard.vue +51 -0
  63. package/dist/runtime/components/card/ExpandableCard.vue.d.ts +20 -0
  64. package/dist/runtime/components/card/NeedPinLocation.vue +27 -0
  65. package/dist/runtime/components/card/NeedPinLocation.vue.d.ts +8 -0
  66. package/dist/runtime/components/card/OriginEmpty.vue +13 -0
  67. package/dist/runtime/components/card/OriginEmpty.vue.d.ts +2 -0
  68. package/dist/runtime/components/card/OriginItem.vue +76 -0
  69. package/dist/runtime/components/card/OriginItem.vue.d.ts +25 -0
  70. package/dist/runtime/components/card/OriginItemDeleted.vue +40 -0
  71. package/dist/runtime/components/card/OriginItemDeleted.vue.d.ts +15 -0
  72. package/dist/runtime/components/card/index.vue +17 -0
  73. package/dist/runtime/components/card/index.vue.d.ts +16 -0
  74. package/dist/runtime/components/card/origin.vue +42 -0
  75. package/dist/runtime/components/card/origin.vue.d.ts +39 -0
  76. package/dist/runtime/components/chart/BarChart.vue +85 -0
  77. package/dist/runtime/components/chart/BarChart.vue.d.ts +14 -0
  78. package/dist/runtime/components/chart/ChartHorizontal.vue +123 -0
  79. package/dist/runtime/components/chart/ChartHorizontal.vue.d.ts +29 -0
  80. package/dist/runtime/components/chart/GaugeChart.vue +108 -0
  81. package/dist/runtime/components/chart/GaugeChart.vue.d.ts +28 -0
  82. package/dist/runtime/components/chart/PieChart.vue +35 -0
  83. package/dist/runtime/components/chart/PieChart.vue.d.ts +13 -0
  84. package/dist/runtime/components/chat/Reply.vue +157 -0
  85. package/dist/runtime/components/chat/Reply.vue.d.ts +60 -0
  86. package/dist/runtime/components/checkbox/Checkbox.vue +59 -0
  87. package/dist/runtime/components/checkbox/Checkbox.vue.d.ts +16 -0
  88. package/dist/runtime/components/checkbox/CheckboxBase.vue +46 -0
  89. package/dist/runtime/components/checkbox/CheckboxBase.vue.d.ts +15 -0
  90. package/dist/runtime/components/chip/ChipBase.vue +44 -0
  91. package/dist/runtime/components/chip/ChipBase.vue.d.ts +26 -0
  92. package/dist/runtime/components/chip/index.d.ts +4 -0
  93. package/dist/runtime/components/chip/index.js +4 -0
  94. package/dist/runtime/components/collapsible/CollapsibleBase.vue +34 -0
  95. package/dist/runtime/components/collapsible/CollapsibleBase.vue.d.ts +22 -0
  96. package/dist/runtime/components/combobox/Combobox.vue +171 -0
  97. package/dist/runtime/components/combobox/Combobox.vue.d.ts +44 -0
  98. package/dist/runtime/components/combobox/ComboboxInput.vue +13 -0
  99. package/dist/runtime/components/combobox/ComboboxInput.vue.d.ts +2 -0
  100. package/dist/runtime/components/combobox/_index.d.ts +1 -0
  101. package/dist/runtime/components/combobox/_index.js +0 -0
  102. package/dist/runtime/components/container/ContainerWrapper.vue +11 -0
  103. package/dist/runtime/components/container/ContainerWrapper.vue.d.ts +16 -0
  104. package/dist/runtime/components/container/FloatActionWrapper.vue +29 -0
  105. package/dist/runtime/components/container/FloatActionWrapper.vue.d.ts +20 -0
  106. package/dist/runtime/components/context-menu/ContextMenuBase.vue +37 -0
  107. package/dist/runtime/components/context-menu/ContextMenuBase.vue.d.ts +21 -0
  108. package/dist/runtime/components/cropper/CropperImage.vue +82 -0
  109. package/dist/runtime/components/cropper/CropperImage.vue.d.ts +18 -0
  110. package/dist/runtime/components/datepicker/DatepickerBase.vue +55 -0
  111. package/dist/runtime/components/datepicker/DatepickerBase.vue.d.ts +26 -0
  112. package/dist/runtime/components/datepicker/DatepickerBody.vue +139 -0
  113. package/dist/runtime/components/datepicker/DatepickerBody.vue.d.ts +11 -0
  114. package/dist/runtime/components/dialog/DialogConfirmation.vue +56 -0
  115. package/dist/runtime/components/dialog/DialogConfirmation.vue.d.ts +44 -0
  116. package/dist/runtime/components/dialog/DialogConfirmationSingle.vue +108 -0
  117. package/dist/runtime/components/dialog/DialogConfirmationSingle.vue.d.ts +59 -0
  118. package/dist/runtime/components/dialog/DialogFloatAction.vue +51 -0
  119. package/dist/runtime/components/dialog/DialogFloatAction.vue.d.ts +39 -0
  120. package/dist/runtime/components/dialog/RootDialog.vue +56 -0
  121. package/dist/runtime/components/dialog/RootDialog.vue.d.ts +19 -0
  122. package/dist/runtime/components/dialog/aside.vue +80 -0
  123. package/dist/runtime/components/dialog/aside.vue.d.ts +26 -0
  124. package/dist/runtime/components/dialog/help.vue +37 -0
  125. package/dist/runtime/components/dialog/help.vue.d.ts +2 -0
  126. package/dist/runtime/components/dialog-reka/DialogContent.vue +48 -0
  127. package/dist/runtime/components/dialog-reka/DialogContent.vue.d.ts +26 -0
  128. package/dist/runtime/components/dialog-reka/DialogPreviewerImage.vue +177 -0
  129. package/dist/runtime/components/dialog-reka/DialogPreviewerImage.vue.d.ts +14 -0
  130. package/dist/runtime/components/dialog-reka/DialogPreviewerVideo.vue +44 -0
  131. package/dist/runtime/components/dialog-reka/DialogPreviewerVideo.vue.d.ts +13 -0
  132. package/dist/runtime/components/dialog-reka/DialogRoot.vue +42 -0
  133. package/dist/runtime/components/dialog-reka/DialogRoot.vue.d.ts +28 -0
  134. package/dist/runtime/components/divider/DividerBase.vue +35 -0
  135. package/dist/runtime/components/divider/DividerBase.vue.d.ts +12 -0
  136. package/dist/runtime/components/divider/DividerDash.vue +43 -0
  137. package/dist/runtime/components/divider/DividerDash.vue.d.ts +14 -0
  138. package/dist/runtime/components/dropdown/Dropdown.vue +96 -0
  139. package/dist/runtime/components/dropdown/Dropdown.vue.d.ts +52 -0
  140. package/dist/runtime/components/dropdown/DropdownItem.vue +52 -0
  141. package/dist/runtime/components/dropdown/DropdownItem.vue.d.ts +35 -0
  142. package/dist/runtime/components/file/AddFile.vue +16 -0
  143. package/dist/runtime/components/file/AddFile.vue.d.ts +7 -0
  144. package/dist/runtime/components/file/DropAreaFile.vue +141 -0
  145. package/dist/runtime/components/file/DropAreaFile.vue.d.ts +28 -0
  146. package/dist/runtime/components/file/ViewFile.vue +70 -0
  147. package/dist/runtime/components/file/ViewFile.vue.d.ts +12 -0
  148. package/dist/runtime/components/filter/FilterChip.vue +39 -0
  149. package/dist/runtime/components/filter/FilterChip.vue.d.ts +19 -0
  150. package/dist/runtime/components/filter/FilterStatus.vue +28 -0
  151. package/dist/runtime/components/filter/FilterStatus.vue.d.ts +16 -0
  152. package/dist/runtime/components/image/ImageLoader.vue +61 -0
  153. package/dist/runtime/components/image/ImageLoader.vue.d.ts +11 -0
  154. package/dist/runtime/components/input/ButtonFileInput.vue +77 -0
  155. package/dist/runtime/components/input/ButtonFileInput.vue.d.ts +27 -0
  156. package/dist/runtime/components/input/IconButtonFileInput.vue +80 -0
  157. package/dist/runtime/components/input/IconButtonFileInput.vue.d.ts +33 -0
  158. package/dist/runtime/components/input/InputCheckbox.vue +38 -0
  159. package/dist/runtime/components/input/InputCheckbox.vue.d.ts +16 -0
  160. package/dist/runtime/components/input/InputControl.vue +11 -0
  161. package/dist/runtime/components/input/InputControl.vue.d.ts +16 -0
  162. package/dist/runtime/components/input/InputField.vue +86 -0
  163. package/dist/runtime/components/input/InputField.vue.d.ts +28 -0
  164. package/dist/runtime/components/input/InputFieldPassword.vue +47 -0
  165. package/dist/runtime/components/input/InputFieldPassword.vue.d.ts +18 -0
  166. package/dist/runtime/components/input/InputFieldPhone.vue +71 -0
  167. package/dist/runtime/components/input/InputFieldPhone.vue.d.ts +34 -0
  168. package/dist/runtime/components/input/InputFieldWithOption.vue +69 -0
  169. package/dist/runtime/components/input/InputFieldWithOption.vue.d.ts +37 -0
  170. package/dist/runtime/components/input/InputFileDropable.vue +162 -0
  171. package/dist/runtime/components/input/InputFileDropable.vue.d.ts +33 -0
  172. package/dist/runtime/components/input/InputGroup.vue +18 -0
  173. package/dist/runtime/components/input/InputGroup.vue.d.ts +18 -0
  174. package/dist/runtime/components/input/InputImageDropable.vue +170 -0
  175. package/dist/runtime/components/input/InputImageDropable.vue.d.ts +24 -0
  176. package/dist/runtime/components/input/InputNumber.vue +53 -0
  177. package/dist/runtime/components/input/InputNumber.vue.d.ts +13 -0
  178. package/dist/runtime/components/input/InputOtp.vue +66 -0
  179. package/dist/runtime/components/input/InputOtp.vue.d.ts +20 -0
  180. package/dist/runtime/components/input/InputRadio.vue +49 -0
  181. package/dist/runtime/components/input/InputRadio.vue.d.ts +22 -0
  182. package/dist/runtime/components/input/InputText.vue +94 -0
  183. package/dist/runtime/components/input/InputText.vue.d.ts +50 -0
  184. package/dist/runtime/components/input/TextArea.vue +75 -0
  185. package/dist/runtime/components/input/TextArea.vue.d.ts +26 -0
  186. package/dist/runtime/components/input/index.d.ts +36 -0
  187. package/dist/runtime/components/input/index.js +60 -0
  188. package/dist/runtime/components/label/BaseLabel.vue +18 -0
  189. package/dist/runtime/components/label/BaseLabel.vue.d.ts +9 -0
  190. package/dist/runtime/components/label/ErrorLabel.vue +13 -0
  191. package/dist/runtime/components/label/ErrorLabel.vue.d.ts +10 -0
  192. package/dist/runtime/components/label/Form.vue +16 -0
  193. package/dist/runtime/components/label/Form.vue.d.ts +7 -0
  194. package/dist/runtime/components/label/HintLabel.vue +23 -0
  195. package/dist/runtime/components/label/HintLabel.vue.d.ts +10 -0
  196. package/dist/runtime/components/label/LabelSection.vue +39 -0
  197. package/dist/runtime/components/label/LabelSection.vue.d.ts +20 -0
  198. package/dist/runtime/components/listbox/Listbox.vue +17 -0
  199. package/dist/runtime/components/listbox/Listbox.vue.d.ts +17 -0
  200. package/dist/runtime/components/listbox/ListboxItem.vue +34 -0
  201. package/dist/runtime/components/listbox/ListboxItem.vue.d.ts +20 -0
  202. package/dist/runtime/components/loading/BounceLoading.vue +19 -0
  203. package/dist/runtime/components/loading/BounceLoading.vue.d.ts +6 -0
  204. package/dist/runtime/components/loading/LoadingCircular.vue +46 -0
  205. package/dist/runtime/components/loading/LoadingCircular.vue.d.ts +10 -0
  206. package/dist/runtime/components/loading/LoadingIndicator.d.ts +60 -0
  207. package/dist/runtime/components/loading/LoadingIndicator.js +66 -0
  208. package/dist/runtime/components/loading/SpinnerLoading.vue +11 -0
  209. package/dist/runtime/components/loading/SpinnerLoading.vue.d.ts +6 -0
  210. package/dist/runtime/components/player/Audio.vue +104 -0
  211. package/dist/runtime/components/player/Audio.vue.d.ts +15 -0
  212. package/dist/runtime/components/player/Scrubber.vue +48 -0
  213. package/dist/runtime/components/player/Scrubber.vue.d.ts +44 -0
  214. package/dist/runtime/components/player/Video.vue +163 -0
  215. package/dist/runtime/components/player/Video.vue.d.ts +11 -0
  216. package/dist/runtime/components/popover/Popover.vue +30 -0
  217. package/dist/runtime/components/popover/Popover.vue.d.ts +18 -0
  218. package/dist/runtime/components/popover/WhatsAppChecker.vue +61 -0
  219. package/dist/runtime/components/popover/WhatsAppChecker.vue.d.ts +13 -0
  220. package/dist/runtime/components/radio/Courier.vue +195 -0
  221. package/dist/runtime/components/radio/Courier.vue.d.ts +54 -0
  222. package/dist/runtime/components/radio/Decoration.vue +43 -0
  223. package/dist/runtime/components/radio/Decoration.vue.d.ts +5 -0
  224. package/dist/runtime/components/radio/RadioCourierBadge.vue +68 -0
  225. package/dist/runtime/components/radio/RadioCourierBadge.vue.d.ts +11 -0
  226. package/dist/runtime/components/radio/ThemeDecoration.vue +40 -0
  227. package/dist/runtime/components/radio/ThemeDecoration.vue.d.ts +2 -0
  228. package/dist/runtime/components/radio-group/ButtonRadio.vue +106 -0
  229. package/dist/runtime/components/radio-group/ButtonRadio.vue.d.ts +47 -0
  230. package/dist/runtime/components/range-picker/RangePicker.vue +77 -0
  231. package/dist/runtime/components/range-picker/RangePicker.vue.d.ts +20 -0
  232. package/dist/runtime/components/range-picker/RangePickerBody.vue +270 -0
  233. package/dist/runtime/components/range-picker/RangePickerBody.vue.d.ts +24 -0
  234. package/dist/runtime/components/range-picker/index.d.ts +5 -0
  235. package/dist/runtime/components/scroll-area/ScrollAreaBase.vue +57 -0
  236. package/dist/runtime/components/scroll-area/ScrollAreaBase.vue.d.ts +20 -0
  237. package/dist/runtime/components/select/SelectBase.vue +137 -0
  238. package/dist/runtime/components/select/SelectBase.vue.d.ts +50 -0
  239. package/dist/runtime/components/select/SelectMultiple.vue +119 -0
  240. package/dist/runtime/components/select/SelectMultiple.vue.d.ts +45 -0
  241. package/dist/runtime/components/select/SelectOption.vue +96 -0
  242. package/dist/runtime/components/select/SelectOption.vue.d.ts +21 -0
  243. package/dist/runtime/components/select/SelectWithInput.vue +46 -0
  244. package/dist/runtime/components/select/SelectWithInput.vue.d.ts +21 -0
  245. package/dist/runtime/components/stepper/Stepper.vue +99 -0
  246. package/dist/runtime/components/stepper/Stepper.vue.d.ts +23 -0
  247. package/dist/runtime/components/switch/Switch.vue +42 -0
  248. package/dist/runtime/components/switch/Switch.vue.d.ts +28 -0
  249. package/dist/runtime/components/table/TableWrapper.vue +61 -0
  250. package/dist/runtime/components/table/TableWrapper.vue.d.ts +15 -0
  251. package/dist/runtime/components/tabs/TabBase.vue +77 -0
  252. package/dist/runtime/components/tabs/TabBase.vue.d.ts +32 -0
  253. package/dist/runtime/components/tags-input/TagsInput.vue +131 -0
  254. package/dist/runtime/components/tags-input/TagsInput.vue.d.ts +48 -0
  255. package/dist/runtime/components/tags-input/TagsInputWithOption.vue +95 -0
  256. package/dist/runtime/components/tags-input/TagsInputWithOption.vue.d.ts +26 -0
  257. package/dist/runtime/components/time-picker/TimePicker.vue +84 -0
  258. package/dist/runtime/components/time-picker/TimePicker.vue.d.ts +17 -0
  259. package/dist/runtime/components/time-picker/TimePickerBody.vue +178 -0
  260. package/dist/runtime/components/time-picker/TimePickerBody.vue.d.ts +21 -0
  261. package/dist/runtime/components/toast/ToastCard.vue +36 -0
  262. package/dist/runtime/components/toast/ToastCard.vue.d.ts +16 -0
  263. package/dist/runtime/components/toast/ToastContainer.vue +15 -0
  264. package/dist/runtime/components/toast/ToastContainer.vue.d.ts +2 -0
  265. package/dist/runtime/components/toast/ToastNetwork.vue +109 -0
  266. package/dist/runtime/components/toast/ToastNetwork.vue.d.ts +2 -0
  267. package/dist/runtime/components/toast/index.d.ts +16 -0
  268. package/dist/runtime/components/toast/index.js +16 -0
  269. package/dist/runtime/components/toggle-group/MultiSelect.vue +45 -0
  270. package/dist/runtime/components/toggle-group/MultiSelect.vue.d.ts +38 -0
  271. package/dist/runtime/components/toggle-group/ToggleGroup.vue +59 -0
  272. package/dist/runtime/components/toggle-group/ToggleGroup.vue.d.ts +41 -0
  273. package/dist/runtime/components/tooltip/MiniTooltip.vue +58 -0
  274. package/dist/runtime/components/tooltip/MiniTooltip.vue.d.ts +21 -0
  275. package/dist/runtime/components/tooltip/Tooltip.vue +50 -0
  276. package/dist/runtime/components/tooltip/Tooltip.vue.d.ts +21 -0
  277. package/dist/runtime/plugin.d.ts +2 -0
  278. package/dist/runtime/plugin.js +4 -0
  279. package/dist/runtime/server/tsconfig.json +3 -0
  280. package/dist/runtime/utils/cn.d.ts +5 -0
  281. package/dist/runtime/utils/cn.js +5 -0
  282. package/dist/runtime/utils/formatNumber.d.ts +2 -0
  283. package/dist/runtime/utils/formatNumber.js +12 -0
  284. package/dist/types.d.mts +3 -0
  285. 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>