@bitrix24/b24ui-nuxt 0.5.9 → 0.5.10

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 (196) hide show
  1. package/.nuxt/b24ui/navigation-menu.ts +0 -2
  2. package/.nuxt/b24ui/popover.ts +1 -1
  3. package/dist/meta.d.mts +4789 -4897
  4. package/dist/meta.mjs +4789 -4897
  5. package/dist/module.json +5 -5
  6. package/dist/module.mjs +11 -7
  7. package/dist/runtime/components/Advice.vue +47 -54
  8. package/dist/runtime/components/Advice.vue.d.ts +170 -0
  9. package/dist/runtime/components/Alert.vue +71 -96
  10. package/dist/runtime/components/Alert.vue.d.ts +464 -0
  11. package/dist/runtime/components/App.vue +37 -34
  12. package/dist/runtime/components/App.vue.d.ts +23 -0
  13. package/dist/runtime/components/Avatar.vue +69 -81
  14. package/dist/runtime/components/Avatar.vue.d.ts +281 -0
  15. package/dist/runtime/components/AvatarGroup.vue +53 -76
  16. package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
  17. package/dist/runtime/components/Badge.vue +83 -83
  18. package/dist/runtime/components/Badge.vue.d.ts +517 -0
  19. package/dist/runtime/components/Button.vue +219 -149
  20. package/dist/runtime/components/Button.vue.d.ts +640 -0
  21. package/dist/runtime/components/ButtonGroup.vue +35 -51
  22. package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
  23. package/dist/runtime/components/Calendar.vue +186 -152
  24. package/dist/runtime/components/Calendar.vue.d.ts +437 -0
  25. package/dist/runtime/components/Checkbox.vue +84 -73
  26. package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
  27. package/dist/runtime/components/Chip.vue +59 -74
  28. package/dist/runtime/components/Chip.vue.d.ts +271 -0
  29. package/dist/runtime/components/Collapsible.vue +44 -41
  30. package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
  31. package/dist/runtime/components/Container.vue +18 -27
  32. package/dist/runtime/components/Container.vue.d.ts +27 -0
  33. package/dist/runtime/components/Countdown.vue +198 -378
  34. package/dist/runtime/components/Countdown.vue.d.ts +356 -0
  35. package/dist/runtime/components/DescriptionList.vue +102 -149
  36. package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
  37. package/dist/runtime/components/DropdownMenu.vue +83 -139
  38. package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
  39. package/dist/runtime/components/DropdownMenuContent.vue +137 -81
  40. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
  41. package/dist/runtime/components/Form.vue +162 -216
  42. package/dist/runtime/components/Form.vue.d.ts +55 -0
  43. package/dist/runtime/components/FormField.vue +76 -80
  44. package/dist/runtime/components/FormField.vue.d.ts +282 -0
  45. package/dist/runtime/components/Input.vue +160 -179
  46. package/dist/runtime/components/Input.vue.d.ts +755 -0
  47. package/dist/runtime/components/InputMenu.vue +300 -381
  48. package/dist/runtime/components/InputMenu.vue.d.ts +1504 -0
  49. package/dist/runtime/components/InputNumber.vue +178 -175
  50. package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
  51. package/dist/runtime/components/Kbd.vue +33 -45
  52. package/dist/runtime/components/Kbd.vue.d.ts +109 -0
  53. package/dist/runtime/components/Link.vue +179 -173
  54. package/dist/runtime/components/Link.vue.d.ts +129 -0
  55. package/dist/runtime/components/LinkBase.vue +64 -42
  56. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  57. package/dist/runtime/components/Modal.vue +105 -127
  58. package/dist/runtime/components/Modal.vue.d.ts +327 -0
  59. package/dist/runtime/components/ModalDialogClose.vue +4 -8
  60. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  61. package/dist/runtime/components/Navbar.vue +24 -33
  62. package/dist/runtime/components/Navbar.vue.d.ts +101 -0
  63. package/dist/runtime/components/NavbarDivider.vue +24 -33
  64. package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
  65. package/dist/runtime/components/NavbarSection.vue +24 -33
  66. package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
  67. package/dist/runtime/components/NavbarSpacer.vue +24 -33
  68. package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
  69. package/dist/runtime/components/NavigationMenu.vue +152 -216
  70. package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -0
  71. package/dist/runtime/components/OverlayProvider.vue +13 -17
  72. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  73. package/dist/runtime/components/Popover.vue +81 -81
  74. package/dist/runtime/components/Popover.vue.d.ts +147 -0
  75. package/dist/runtime/components/Progress.vue +109 -136
  76. package/dist/runtime/components/Progress.vue.d.ts +592 -0
  77. package/dist/runtime/components/RadioGroup.vue +120 -134
  78. package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
  79. package/dist/runtime/components/Range.vue +94 -85
  80. package/dist/runtime/components/Range.vue.d.ts +417 -0
  81. package/dist/runtime/components/Select.vue +212 -260
  82. package/dist/runtime/components/Select.vue.d.ts +1200 -0
  83. package/dist/runtime/components/SelectMenu.vue +272 -366
  84. package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
  85. package/dist/runtime/components/Separator.vue +61 -71
  86. package/dist/runtime/components/Separator.vue.d.ts +400 -0
  87. package/dist/runtime/components/Sidebar.vue +24 -33
  88. package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
  89. package/dist/runtime/components/SidebarBody.vue +30 -38
  90. package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
  91. package/dist/runtime/components/SidebarFooter.vue +24 -33
  92. package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
  93. package/dist/runtime/components/SidebarHeader.vue +24 -33
  94. package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
  95. package/dist/runtime/components/SidebarHeading.vue +24 -33
  96. package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
  97. package/dist/runtime/components/SidebarLayout.vue +40 -70
  98. package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
  99. package/dist/runtime/components/SidebarSection.vue +24 -33
  100. package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
  101. package/dist/runtime/components/SidebarSpacer.vue +24 -33
  102. package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
  103. package/dist/runtime/components/Skeleton.vue +17 -22
  104. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  105. package/dist/runtime/components/Slideover.vue +108 -131
  106. package/dist/runtime/components/Slideover.vue.d.ts +360 -0
  107. package/dist/runtime/components/StackedLayout.vue +40 -73
  108. package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
  109. package/dist/runtime/components/Switch.vue +100 -95
  110. package/dist/runtime/components/Switch.vue.d.ts +587 -0
  111. package/dist/runtime/components/Tabs.vue +83 -105
  112. package/dist/runtime/components/Tabs.vue.d.ts +453 -0
  113. package/dist/runtime/components/Textarea.vue +177 -201
  114. package/dist/runtime/components/Textarea.vue.d.ts +601 -0
  115. package/dist/runtime/components/Toast.vue +94 -105
  116. package/dist/runtime/components/Toast.vue.d.ts +438 -0
  117. package/dist/runtime/components/Toaster.vue +94 -111
  118. package/dist/runtime/components/Toaster.vue.d.ts +219 -0
  119. package/dist/runtime/components/Tooltip.vue +78 -64
  120. package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
  121. package/dist/runtime/components/content/TableWrapper.vue +58 -70
  122. package/dist/runtime/components/content/TableWrapper.vue.d.ts +237 -0
  123. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  124. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  125. package/dist/runtime/composables/useComponentIcons.d.ts +1 -1
  126. package/dist/runtime/composables/useFormField.d.ts +1 -1
  127. package/dist/runtime/prose/A.vue +18 -23
  128. package/dist/runtime/prose/A.vue.d.ts +84 -0
  129. package/dist/runtime/prose/Blockquote.vue +18 -23
  130. package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
  131. package/dist/runtime/prose/Code.vue +23 -31
  132. package/dist/runtime/prose/Code.vue.d.ts +97 -0
  133. package/dist/runtime/prose/Em.vue +18 -23
  134. package/dist/runtime/prose/Em.vue.d.ts +84 -0
  135. package/dist/runtime/prose/H1.vue +18 -23
  136. package/dist/runtime/prose/H1.vue.d.ts +97 -0
  137. package/dist/runtime/prose/H2.vue +18 -23
  138. package/dist/runtime/prose/H2.vue.d.ts +123 -0
  139. package/dist/runtime/prose/H3.vue +18 -23
  140. package/dist/runtime/prose/H3.vue.d.ts +123 -0
  141. package/dist/runtime/prose/H4.vue +18 -23
  142. package/dist/runtime/prose/H4.vue.d.ts +123 -0
  143. package/dist/runtime/prose/H5.vue +18 -23
  144. package/dist/runtime/prose/H5.vue.d.ts +123 -0
  145. package/dist/runtime/prose/H6.vue +18 -23
  146. package/dist/runtime/prose/H6.vue.d.ts +123 -0
  147. package/dist/runtime/prose/Hr.vue +18 -19
  148. package/dist/runtime/prose/Hr.vue.d.ts +74 -0
  149. package/dist/runtime/prose/Img.vue +18 -23
  150. package/dist/runtime/prose/Img.vue.d.ts +77 -0
  151. package/dist/runtime/prose/Li.vue +18 -23
  152. package/dist/runtime/prose/Li.vue.d.ts +84 -0
  153. package/dist/runtime/prose/Ol.vue +18 -23
  154. package/dist/runtime/prose/Ol.vue.d.ts +84 -0
  155. package/dist/runtime/prose/P.vue +18 -23
  156. package/dist/runtime/prose/P.vue.d.ts +84 -0
  157. package/dist/runtime/prose/Pre.vue +28 -33
  158. package/dist/runtime/prose/Pre.vue.d.ts +117 -0
  159. package/dist/runtime/prose/Strong.vue +18 -23
  160. package/dist/runtime/prose/Strong.vue.d.ts +84 -0
  161. package/dist/runtime/prose/Table.vue +44 -54
  162. package/dist/runtime/prose/Table.vue.d.ts +144 -0
  163. package/dist/runtime/prose/Tbody.vue +18 -23
  164. package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
  165. package/dist/runtime/prose/Td.vue +18 -23
  166. package/dist/runtime/prose/Td.vue.d.ts +84 -0
  167. package/dist/runtime/prose/Th.vue +18 -23
  168. package/dist/runtime/prose/Th.vue.d.ts +84 -0
  169. package/dist/runtime/prose/Thead.vue +18 -23
  170. package/dist/runtime/prose/Thead.vue.d.ts +84 -0
  171. package/dist/runtime/prose/Tr.vue +18 -23
  172. package/dist/runtime/prose/Tr.vue.d.ts +84 -0
  173. package/dist/runtime/prose/Ul.vue +18 -23
  174. package/dist/runtime/prose/Ul.vue.d.ts +84 -0
  175. package/dist/runtime/vue/components/Link.vue +201 -202
  176. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  177. package/dist/runtime/vue/stubs.d.ts +3 -3
  178. package/dist/shared/{b24ui-nuxt.C1lGF53R.mjs → b24ui-nuxt.CS9Lf0os.mjs} +4 -3
  179. package/dist/types.d.mts +3 -5
  180. package/dist/unplugin.mjs +1 -1
  181. package/dist/vite.mjs +1 -1
  182. package/package.json +59 -32
  183. package/dist/meta.cjs +0 -72220
  184. package/dist/meta.d.cts +0 -72218
  185. package/dist/meta.d.ts +0 -72218
  186. package/dist/module.cjs +0 -59
  187. package/dist/module.d.cts +0 -15
  188. package/dist/module.d.ts +0 -15
  189. package/dist/shared/b24ui-nuxt.BVg3rkkG.cjs +0 -7720
  190. package/dist/types.d.ts +0 -7
  191. package/dist/unplugin.cjs +0 -236
  192. package/dist/unplugin.d.cts +0 -33
  193. package/dist/unplugin.d.ts +0 -33
  194. package/dist/vite.cjs +0 -21
  195. package/dist/vite.d.cts +0 -14
  196. package/dist/vite.d.ts +0 -14
@@ -1,345 +1,205 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import theme from '#build/b24ui/countdown'
6
- import type { UseComponentIconsProps } from '../composables/useComponentIcons'
7
- import { tv } from '../utils/tv'
8
- import type { AvatarProps } from '../types'
9
-
10
- const appConfigCountdown = _appConfig as AppConfig & { b24ui: { countdown: Partial<typeof theme> } }
11
-
12
- const countdown = tv({ extend: tv(theme), ...(appConfigCountdown.b24ui?.countdown || {}) })
13
-
14
- type CountdownVariants = VariantProps<typeof countdown>
15
-
16
- export interface CountdownData {
17
- days: number
18
- hours: number
19
- minutes: number
20
- seconds: number
21
- milliseconds: number
22
- totalDays: number
23
- totalHours: number
24
- totalMinutes: number
25
- totalSeconds: number
26
- totalMilliseconds: number
27
- }
28
-
29
- export interface CountdownProps extends Omit<UseComponentIconsProps, 'loading' | 'trailing' | 'trailingIcon'> {
30
- /**
31
- * The element or component this component should render as
32
- * @defaultValue 'span'
33
- */
34
- as?: any
35
- /**
36
- * @defaultValue 'md'
37
- */
38
- size?: CountdownVariants['size']
39
- /**
40
- * Emits the countdown events
41
- * @defaultValue true
42
- */
43
- emitEvents?: boolean
44
- /**
45
- * Number of seconds to countdown
46
- * @defaultValue 0
47
- */
48
- seconds?: number | string
49
- /**
50
- * Should seconds be divided into minutes?
51
- * @defaultValue true
52
- */
53
- showMinutes?: boolean
54
- /**
55
- * Shows a `Circle` around the countdown
56
- * @defaultValue false
57
- */
58
- useCircle?: boolean
59
- /**
60
- * The interval time (in milliseconds) of the countdown progress
61
- * @defaultValue 1000
62
- */
63
- interval?: number
64
- /**
65
- * Starts the countdown automatically when initialized
66
- * @defaultValue true
67
- */
68
- needStartImmediately?: boolean
69
- /**
70
- * Generate the current time of a specific time zone
71
- * @defaultValue Date.now()
72
- */
73
- now?: () => number
74
- class?: any
75
- b24ui?: Partial<typeof countdown.slots>
76
- }
77
-
78
- export interface CountdownEmits {
79
- (e: 'start' | 'end' | 'abort'): void
80
- (e: 'progress', payload: CountdownData): void
81
- }
82
-
83
- export interface CountdownSlots {
84
- leading(props?: {}): any
85
- default(props: CountdownData & { formatTime: string }): any
86
- }
1
+ <script>
2
+ import _appConfig from "#build/app.config";
3
+ import theme from "#build/b24ui/countdown";
4
+ import { tv } from "../utils/tv";
5
+ const appConfigCountdown = _appConfig;
6
+ const countdown = tv({ extend: tv(theme), ...appConfigCountdown.b24ui?.countdown || {} });
87
7
  </script>
88
8
 
89
- <script setup lang="ts">
90
- import { ref, computed, watch, onMounted, onBeforeUnmount } from 'vue'
91
- import { useComponentIcons } from '../composables/useComponentIcons'
92
- import { Primitive } from 'reka-ui'
93
- import B24Avatar from './Avatar.vue'
94
-
95
- const MILLISECONDS_SECOND = 1000
96
- const MILLISECONDS_MINUTE = 60 * MILLISECONDS_SECOND
97
- const MILLISECONDS_HOUR = 60 * MILLISECONDS_MINUTE
98
- const MILLISECONDS_DAY = 24 * MILLISECONDS_HOUR
99
-
100
- defineOptions({ inheritAttrs: false })
101
-
102
- // region data ////
103
-
104
- const props = withDefaults(defineProps<CountdownProps>(), {
105
- as: 'span',
106
- needStartImmediately: true,
107
- emitEvents: true,
108
- interval: 1000,
109
- now: () => Date.now(),
110
- seconds: 0,
111
- showMinutes: true,
112
- useCircle: false
113
- })
114
-
115
- const emits = defineEmits<CountdownEmits>()
116
- defineSlots<CountdownSlots>()
117
-
9
+ <script setup>
10
+ import { ref, computed, watch, onMounted, onBeforeUnmount } from "vue";
11
+ import { useComponentIcons } from "../composables/useComponentIcons";
12
+ const MILLISECONDS_SECOND = 1e3;
13
+ const MILLISECONDS_MINUTE = 60 * MILLISECONDS_SECOND;
14
+ const MILLISECONDS_HOUR = 60 * MILLISECONDS_MINUTE;
15
+ const MILLISECONDS_DAY = 24 * MILLISECONDS_HOUR;
16
+ defineOptions({ inheritAttrs: false });
17
+ const props = defineProps({
18
+ as: {
19
+ type: null,
20
+ required: false,
21
+ default: "span"
22
+ },
23
+ size: {
24
+ type: null,
25
+ required: false
26
+ },
27
+ emitEvents: {
28
+ type: Boolean,
29
+ required: false,
30
+ default: true
31
+ },
32
+ seconds: {
33
+ type: [Number, String],
34
+ required: false,
35
+ default: 0
36
+ },
37
+ showMinutes: {
38
+ type: Boolean,
39
+ required: false,
40
+ default: true
41
+ },
42
+ useCircle: {
43
+ type: Boolean,
44
+ required: false,
45
+ default: false
46
+ },
47
+ interval: {
48
+ type: Number,
49
+ required: false,
50
+ default: 1e3
51
+ },
52
+ needStartImmediately: {
53
+ type: Boolean,
54
+ required: false,
55
+ default: true
56
+ },
57
+ now: {
58
+ type: Function,
59
+ required: false,
60
+ default: () => Date.now()
61
+ },
62
+ class: {
63
+ type: null,
64
+ required: false
65
+ },
66
+ b24ui: {
67
+ type: Object,
68
+ required: false
69
+ },
70
+ icon: {
71
+ type: [Function, Object],
72
+ required: false
73
+ },
74
+ avatar: {
75
+ type: Object,
76
+ required: false
77
+ }
78
+ });
79
+ const emits = defineEmits(["start", "end", "abort", "progress"]);
80
+ defineSlots();
118
81
  const { isLeading, leadingIconName } = useComponentIcons(
119
82
  computed(() => ({ ...props, loading: false }))
120
- )
121
-
83
+ );
122
84
  const b24ui = computed(() => countdown({
123
85
  size: props.size,
124
86
  leading: Boolean(isLeading.value),
125
87
  useCircle: Boolean(props.useCircle)
126
- }))
127
-
128
- /**
129
- * It is counting down.
130
- */
131
- const counting = ref<boolean>(false)
132
- /**
133
- * The absolute end time.
134
- */
135
- const endTime = ref<number>(0)
136
- /**
137
- * The remaining milliseconds.
138
- */
139
- const totalMilliseconds = ref<number>(0)
140
- /**
141
- * The request ID of the requestAnimationFrame.
142
- */
143
- const requestId = ref<number>(0)
144
- // endregion ////
145
-
146
- // region events ////
88
+ }));
89
+ const counting = ref(false);
90
+ const endTime = ref(0);
91
+ const totalMilliseconds = ref(0);
92
+ const requestId = ref(0);
147
93
  onMounted(() => {
148
- document.addEventListener('visibilitychange', handleVisibilityChange.bind(this))
149
- })
150
-
94
+ document.addEventListener("visibilitychange", handleVisibilityChange.bind(this));
95
+ });
151
96
  onBeforeUnmount(() => {
152
- document.removeEventListener('visibilitychange', handleVisibilityChange.bind(this))
153
- pause()
154
- })
155
- // endregion ////
156
-
157
- // region watch ////
158
- /**
159
- * Update the countdown when props changed.
160
- */
97
+ document.removeEventListener("visibilitychange", handleVisibilityChange.bind(this));
98
+ pause();
99
+ });
161
100
  watch(
162
101
  () => props,
163
102
  () => {
164
- totalMilliseconds.value = Number(props.seconds) * 1000
165
- endTime.value = props.now() + Number(props.seconds) * 1000
166
-
103
+ totalMilliseconds.value = Number(props.seconds) * 1e3;
104
+ endTime.value = props.now() + Number(props.seconds) * 1e3;
167
105
  if (props.needStartImmediately) {
168
- start()
106
+ start();
169
107
  }
170
108
  },
171
109
  {
172
110
  deep: true,
173
111
  immediate: true
174
112
  }
175
- )
176
- // endregion ////
177
-
178
- // region computed ////
179
- /**
180
- * Remaining days.
181
- */
182
- const days = computed((): number => {
183
- return Math.floor(totalMilliseconds.value / MILLISECONDS_DAY)
184
- })
185
-
186
- /**
187
- * Remaining hours.
188
- */
189
- const hours = computed((): number => {
190
- return Math.floor((totalMilliseconds.value % MILLISECONDS_DAY) / MILLISECONDS_HOUR)
191
- })
192
-
193
- /**
194
- * Remaining minutes.
195
- */
196
- const minutes = computed((): number => {
197
- return Math.floor((totalMilliseconds.value % MILLISECONDS_HOUR) / MILLISECONDS_MINUTE)
198
- })
199
-
200
- /**
201
- * Remaining seconds.
202
- */
203
- const secondsValue = computed((): number => {
204
- return Math.floor((totalMilliseconds.value % MILLISECONDS_MINUTE) / MILLISECONDS_SECOND)
205
- })
206
-
207
- /**
208
- * Remaining milliseconds.
209
- */
210
- const milliseconds = computed((): number => {
211
- return Math.floor(totalMilliseconds.value % MILLISECONDS_SECOND)
212
- })
213
-
214
- /**
215
- * Total remaining days.
216
- */
217
- const totalDays = computed((): number => {
218
- return days.value
219
- })
220
-
221
- /**
222
- * Total remaining hours.
223
- */
224
- const totalHours = computed((): number => {
225
- return Math.floor(totalMilliseconds.value / MILLISECONDS_HOUR)
226
- })
227
-
228
- /**
229
- * Total remaining minutes.
230
- */
231
- const totalMinutes = computed((): number => {
232
- return Math.floor(totalMilliseconds.value / MILLISECONDS_MINUTE)
233
- })
234
-
235
- /**
236
- * Total remaining seconds.
237
- */
238
- const totalSeconds = computed((): number => {
239
- return Math.floor(totalMilliseconds.value / MILLISECONDS_SECOND)
240
- })
241
-
242
- const formatTime = computed((): string => {
113
+ );
114
+ const days = computed(() => {
115
+ return Math.floor(totalMilliseconds.value / MILLISECONDS_DAY);
116
+ });
117
+ const hours = computed(() => {
118
+ return Math.floor(totalMilliseconds.value % MILLISECONDS_DAY / MILLISECONDS_HOUR);
119
+ });
120
+ const minutes = computed(() => {
121
+ return Math.floor(totalMilliseconds.value % MILLISECONDS_HOUR / MILLISECONDS_MINUTE);
122
+ });
123
+ const secondsValue = computed(() => {
124
+ return Math.floor(totalMilliseconds.value % MILLISECONDS_MINUTE / MILLISECONDS_SECOND);
125
+ });
126
+ const milliseconds = computed(() => {
127
+ return Math.floor(totalMilliseconds.value % MILLISECONDS_SECOND);
128
+ });
129
+ const totalDays = computed(() => {
130
+ return days.value;
131
+ });
132
+ const totalHours = computed(() => {
133
+ return Math.floor(totalMilliseconds.value / MILLISECONDS_HOUR);
134
+ });
135
+ const totalMinutes = computed(() => {
136
+ return Math.floor(totalMilliseconds.value / MILLISECONDS_MINUTE);
137
+ });
138
+ const totalSeconds = computed(() => {
139
+ return Math.floor(totalMilliseconds.value / MILLISECONDS_SECOND);
140
+ });
141
+ const formatTime = computed(() => {
243
142
  if (props.showMinutes && !props.useCircle) {
244
- return `${totalMinutes.value < 10 ? '0' : ''}${totalMinutes.value}:${secondsValue.value < 10 ? '0' : ''}${secondsValue.value}`
143
+ return `${totalMinutes.value < 10 ? "0" : ""}${totalMinutes.value}:${secondsValue.value < 10 ? "0" : ""}${secondsValue.value}`;
245
144
  } else if (props.useCircle) {
246
- return `:${totalSeconds.value}`
145
+ return `:${totalSeconds.value}`;
247
146
  }
248
-
249
- return String(totalSeconds.value)
250
- })
251
- // endregion ////
252
-
253
- // region actions ////
254
- /**
255
- * Starts to countdown.
256
- */
257
- function start(): void {
147
+ return String(totalSeconds.value);
148
+ });
149
+ function start() {
258
150
  if (counting.value) {
259
- return
151
+ return;
260
152
  }
261
-
262
- counting.value = true
263
-
153
+ counting.value = true;
264
154
  if (!props.needStartImmediately) {
265
- totalMilliseconds.value = Number(props.seconds) * 1000
266
- endTime.value = props.now() + Number(props.seconds) * 1000
155
+ totalMilliseconds.value = Number(props.seconds) * 1e3;
156
+ endTime.value = props.now() + Number(props.seconds) * 1e3;
267
157
  }
268
-
269
158
  if (props.emitEvents) {
270
- emits('start')
159
+ emits("start");
271
160
  }
272
-
273
- if (document?.visibilityState === 'visible') {
274
- continueProcess()
161
+ if (document?.visibilityState === "visible") {
162
+ continueProcess();
275
163
  }
276
164
  }
277
-
278
- /**
279
- * Continues the countdown.
280
- */
281
- function continueProcess(): void {
165
+ function continueProcess() {
282
166
  if (!counting.value) {
283
- return
167
+ return;
284
168
  }
285
-
286
- const delay = Math.min(totalMilliseconds.value, props.interval)
287
-
169
+ const delay = Math.min(totalMilliseconds.value, props.interval);
288
170
  if (delay > 0) {
289
- let init: number
290
- let prev: number
291
- const step = (now: number) => {
171
+ let init;
172
+ let prev;
173
+ const step = (now) => {
292
174
  if (!init) {
293
- init = now
175
+ init = now;
294
176
  }
295
-
296
177
  if (!prev) {
297
- prev = now
178
+ prev = now;
298
179
  }
299
-
300
- const range = now - init
301
-
302
- if (
303
- range >= delay
304
- // Avoid losing time about one second per minute (now - prev ≈ 16ms)
305
- || range + ((now - prev) / 2) >= delay
306
- ) {
307
- progress()
180
+ const range = now - init;
181
+ if (range >= delay || range + (now - prev) / 2 >= delay) {
182
+ progress();
308
183
  } else {
309
- requestId.value = requestAnimationFrame(step)
184
+ requestId.value = requestAnimationFrame(step);
310
185
  }
311
-
312
- prev = now
313
- }
314
-
315
- requestId.value = requestAnimationFrame(step)
186
+ prev = now;
187
+ };
188
+ requestId.value = requestAnimationFrame(step);
316
189
  } else {
317
- stop()
190
+ stop();
318
191
  }
319
192
  }
320
-
321
- /**
322
- * Pauses the countdown.
323
- */
324
- function pause(): void {
325
- cancelAnimationFrame(requestId.value)
193
+ function pause() {
194
+ cancelAnimationFrame(requestId.value);
326
195
  }
327
-
328
- /**
329
- * Progresses to countdown.
330
- */
331
- function progress(): void {
196
+ function progress() {
332
197
  if (!counting.value) {
333
- return
198
+ return;
334
199
  }
335
-
336
- update()
337
-
200
+ update();
338
201
  if (props.emitEvents && totalMilliseconds.value > 0) {
339
- /**
340
- * Countdown progress event.
341
- */
342
- emits('progress', {
202
+ emits("progress", {
343
203
  days: days.value,
344
204
  hours: hours.value,
345
205
  minutes: minutes.value,
@@ -350,114 +210,74 @@ function progress(): void {
350
210
  totalMinutes: totalMinutes.value,
351
211
  totalSeconds: totalSeconds.value,
352
212
  totalMilliseconds: totalMilliseconds.value
353
- })
213
+ });
354
214
  }
355
-
356
- continueProcess()
215
+ continueProcess();
357
216
  }
358
-
359
- /**
360
- * Aborts the countdown.
361
- */
362
- function abort(): void {
217
+ function abort() {
363
218
  if (!counting.value) {
364
- return
219
+ return;
365
220
  }
366
-
367
- pause()
368
- counting.value = false
369
-
221
+ pause();
222
+ counting.value = false;
370
223
  if (props.emitEvents) {
371
- /**
372
- * Countdown abort event.
373
- */
374
- emits('abort')
224
+ emits("abort");
375
225
  }
376
226
  }
377
-
378
- /**
379
- * Stop the countdown.
380
- */
381
- function stop(): void {
227
+ function stop() {
382
228
  if (!counting.value) {
383
- return
229
+ return;
384
230
  }
385
-
386
- pause()
387
- totalMilliseconds.value = 0
388
- counting.value = false
389
-
231
+ pause();
232
+ totalMilliseconds.value = 0;
233
+ counting.value = false;
390
234
  if (props.emitEvents) {
391
- /**
392
- * Countdown end event.
393
- */
394
- emits('end')
235
+ emits("end");
395
236
  }
396
237
  }
397
-
398
- /**
399
- * Updates the count.
400
- */
401
- function update(): void {
238
+ function update() {
402
239
  if (counting.value) {
403
- totalMilliseconds.value = Math.max(0, endTime.value - props.now())
240
+ totalMilliseconds.value = Math.max(0, endTime.value - props.now());
404
241
  }
405
242
  }
406
-
407
- /**
408
- * Restarts the count.
409
- */
410
- function restart(): void {
411
- pause()
412
- totalMilliseconds.value = Number(props.seconds) * 1000
413
- endTime.value = props.now() + Number(props.seconds) * 1000
414
- counting.value = false
415
- start()
243
+ function restart() {
244
+ pause();
245
+ totalMilliseconds.value = Number(props.seconds) * 1e3;
246
+ endTime.value = props.now() + Number(props.seconds) * 1e3;
247
+ counting.value = false;
248
+ start();
416
249
  }
417
-
418
- /**
419
- * Visibility change event handler.
420
- */
421
- function handleVisibilityChange(): void {
250
+ function handleVisibilityChange() {
422
251
  switch (document?.visibilityState) {
423
- case 'visible':
424
- update()
425
- continueProcess()
426
- break
427
-
428
- case 'hidden':
429
- pause()
430
- break
252
+ case "visible":
253
+ update();
254
+ continueProcess();
255
+ break;
256
+ case "hidden":
257
+ pause();
258
+ break;
431
259
  }
432
260
  }
433
- // endregion ////
434
-
435
- // region Round ////
436
- const fullDashArray = computed((): string => {
437
- const fullDashArray = 283
438
-
439
- const calculateTimeFraction = (): number => {
261
+ const fullDashArray = computed(() => {
262
+ const fullDashArray2 = 283;
263
+ const calculateTimeFraction = () => {
440
264
  if (Number(props.seconds) < 0) {
441
- return 1
265
+ return 1;
442
266
  }
443
-
444
- const rawTimeFraction = totalSeconds.value / Number(props.seconds)
445
- return rawTimeFraction - (1 / Number(props.seconds)) * (1 - rawTimeFraction)
446
- }
447
-
267
+ const rawTimeFraction = totalSeconds.value / Number(props.seconds);
268
+ return rawTimeFraction - 1 / Number(props.seconds) * (1 - rawTimeFraction);
269
+ };
448
270
  return [
449
- (calculateTimeFraction() * fullDashArray).toFixed(0),
450
- fullDashArray
451
- ].join(' ')
452
- })
453
- // endregion ////
454
-
271
+ (calculateTimeFraction() * fullDashArray2).toFixed(0),
272
+ fullDashArray2
273
+ ].join(" ");
274
+ });
455
275
  defineExpose({
456
276
  start,
457
277
  abort,
458
278
  stop,
459
279
  restart
460
- })
280
+ });
461
281
  </script>
462
282
 
463
283
  <template>
@@ -491,12 +311,12 @@ defineExpose({
491
311
  <slot name="leading">
492
312
  <Component
493
313
  :is="leadingIconName"
494
- v-if="isLeading && (typeof leadingIconName !== 'undefined')"
314
+ v-if="isLeading && typeof leadingIconName !== 'undefined'"
495
315
  :class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
496
316
  />
497
317
  <B24Avatar
498
318
  v-else-if="!!avatar"
499
- :size="((props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()) as AvatarProps['size'])"
319
+ :size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
500
320
  v-bind="avatar"
501
321
  :class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
502
322
  />