@designcrowd/fe-shared-lib 1.8.7 → 1.8.9-ai-switch
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/.storybook-static/assets/AiPoweredLoader-K9ofJ40T.js +1 -0
- package/.storybook-static/assets/AiPoweredLoader.stories-ek9rwGQG.js +567 -0
- package/.storybook-static/assets/Auth-BEjq1pFf.css +1 -0
- package/.storybook-static/assets/Auth.stories-D1247dT1.js +490 -0
- package/.storybook-static/assets/AuthCrazyDomains.stories-BIamICEC.js +73 -0
- package/.storybook-static/assets/Button-CkyYO9sU.js +1 -0
- package/.storybook-static/assets/Button-CsmXX2Kh.css +1 -0
- package/.storybook-static/assets/ButtonGroup-B1fnbW1G.css +1 -0
- package/.storybook-static/assets/ButtonGroup.stories-B_Y6Qiue.js +504 -0
- package/.storybook-static/assets/ButtonPrimary-Bu6bXb_c.css +1 -0
- package/.storybook-static/assets/ButtonPrimary-LDY_rMmo.js +1 -0
- package/.storybook-static/assets/Buttons.stories-UtLyTNDh.js +761 -0
- package/.storybook-static/assets/ButtonsCrazyDomains.stories-B_dAvsPN.js +199 -0
- package/.storybook-static/assets/Checkbox.mixin-DkHpdvGa.js +1 -0
- package/.storybook-static/assets/Checkbox.stories-C2JNNPiv.js +246 -0
- package/.storybook-static/assets/Checktile.stories-A2EEo588.js +88 -0
- package/.storybook-static/assets/CollapsiblePanel.stories-C1n7g5nQ.js +56 -0
- package/.storybook-static/assets/ColorPicker.stories-Qp6snl1f.js +73 -0
- package/.storybook-static/assets/CopyToClipboardText.stories-sChI7F7B.js +32 -0
- package/.storybook-static/assets/Dropdown.stories-b--FBRDl.js +159 -0
- package/.storybook-static/assets/DropdownItem-B-sUYaug.js +1 -0
- package/.storybook-static/assets/DropdownItem-BV-BdThU.css +1 -0
- package/.storybook-static/assets/FormControl.mixin-Du0pWSns.js +1 -0
- package/.storybook-static/assets/HashRouteModal.stories-CNcrRtbp.js +64 -0
- package/.storybook-static/assets/HelloBar-DEIIHhYa.js +1 -0
- package/.storybook-static/assets/HelloBar.stories-tyJmZL4_.js +342 -0
- package/.storybook-static/assets/Icon-B_xzgi_Q.js +145 -0
- package/.storybook-static/assets/Icon.stories-BZzjXimT.js +151 -0
- package/.storybook-static/assets/Icon.stories-Bgp3oN6t.js +787 -0
- package/.storybook-static/assets/Loader-w-8rPZZr.js +1 -0
- package/.storybook-static/assets/LogoBusinessBrandColours-CeAaMKke.css +1 -0
- package/.storybook-static/assets/LogoBusinessBrandColours-wfQKCU3x.js +1 -0
- package/.storybook-static/assets/LogoBusinessBrandColours.stories-Br6U96nz.js +36 -0
- package/.storybook-static/assets/LogoKeywords-eT_i8ucw.js +1 -0
- package/.storybook-static/assets/LogoKeywords.stories-2eAnYOwT.js +86 -0
- package/.storybook-static/assets/Masonry-C2MNiGg0.css +1 -0
- package/.storybook-static/assets/Masonry.stories-DvvP8ATW.js +71 -0
- package/.storybook-static/assets/Modal-CGwEIF5R.css +1 -0
- package/.storybook-static/assets/Modal-DKAacz7P.js +1 -0
- package/.storybook-static/assets/Modal.stories-B9faUP3R.js +345 -0
- package/.storybook-static/assets/Notice.stories-E5fzboZ_.js +222 -0
- package/.storybook-static/assets/NumberStepper-Blffv09R.css +1 -0
- package/.storybook-static/assets/NumberStepper.stories-DxFzm0J9.js +64 -0
- package/.storybook-static/assets/PaymentConfigList-BpUMV6cp.css +1 -0
- package/.storybook-static/assets/PaymentConfigList.stories-DgQ5DKoI.js +130 -0
- package/.storybook-static/assets/Picture-C-f6m6ze.js +1 -0
- package/.storybook-static/assets/Picture.stories-CDN0TmGy.js +119 -0
- package/.storybook-static/assets/Pill-40wjWWYr.js +1 -0
- package/.storybook-static/assets/Pill.stories-DlxPmQuw.js +18 -0
- package/.storybook-static/assets/PillBar-os4mJV3M.css +1 -0
- package/.storybook-static/assets/PillBar.stories-DuJpicaI.js +41 -0
- package/.storybook-static/assets/Price-DmIyQdA3.js +1 -0
- package/.storybook-static/assets/Price.stories-gvqiKJzs.js +358 -0
- package/.storybook-static/assets/PromoCard.stories-DCqsBuOI.js +299 -0
- package/.storybook-static/assets/PublishBrandPageModal-Q9-mNG1q.css +1 -0
- package/.storybook-static/assets/PublishBrandPageModal.stories-BFr76U5n.js +324 -0
- package/.storybook-static/assets/SearchBar.stories-BjqtXwFK.js +12 -0
- package/.storybook-static/assets/Select-Dw-zvSUg.css +1 -0
- package/.storybook-static/assets/Select.stories-LGfzNS8M.js +108 -0
- package/.storybook-static/assets/SellDomainNameList.fixtures-LC6fjr_b.js +1 -0
- package/.storybook-static/assets/SellDomainNameListModal-Cs6_cMyh.js +1 -0
- package/.storybook-static/assets/SellDomainNameListModal-DH6khE10.css +1 -0
- package/.storybook-static/assets/SellDomainNameListModal.stories-n-gs1OP1.js +71 -0
- package/.storybook-static/assets/SellDomainNameListSearchResult-Cpxq0jDA.css +1 -0
- package/.storybook-static/assets/SellDomainNameListSearchResult-DGov8cKY.js +1 -0
- package/.storybook-static/assets/SellDomainNameSearchWithResults-DHzu6fnp.js +1 -0
- package/.storybook-static/assets/SellDomainNameSearchWithResults.stories-CW_xjbiq.js +37 -0
- package/.storybook-static/assets/SellDomainNameWidget.stories-DwaHPJv8.js +36 -0
- package/.storybook-static/assets/SideNavigationPanel-CcuQm_Sc.css +1 -0
- package/.storybook-static/assets/SideNavigationPanel.stories-BkDnJq6A.js +143 -0
- package/.storybook-static/assets/SignIn-CE_SoJx-.css +1 -0
- package/.storybook-static/assets/SignIn-CVWfb7be.js +1 -0
- package/.storybook-static/assets/Slider-Cog2FFdj.css +1 -0
- package/.storybook-static/assets/Slider.stories-dEVLBxDH.js +141 -0
- package/.storybook-static/assets/SparkleIcon.stories-qzRF8GqJ.js +547 -0
- package/.storybook-static/assets/StarRating-BtKh7pzm.css +1 -0
- package/.storybook-static/assets/StarRating.stories-CaHUrkco.js +45 -0
- package/.storybook-static/assets/TabMenu.stories-zjRIYR91.js +47 -0
- package/.storybook-static/assets/TextCopyField-8fLItNK1.js +1 -0
- package/.storybook-static/assets/TextCopyField.stories-DhtlsOEJ.js +47 -0
- package/.storybook-static/assets/TextInput-ChcUAMVU.js +1 -0
- package/.storybook-static/assets/TextInput.stories-CYg-wtE3.js +233 -0
- package/.storybook-static/assets/Textarea.stories-CIbFJ5BC.js +207 -0
- package/.storybook-static/assets/Toggle.stories-PzUJM04E.js +161 -0
- package/.storybook-static/assets/Tooltip-DmYewPhE.js +1 -0
- package/.storybook-static/assets/Tooltip-DyXIgFQH.css +1 -0
- package/.storybook-static/assets/Tooltip.stories-BbvfQkdB.js +953 -0
- package/.storybook-static/assets/UploadYourLogoApplication-nGy7BMKH.css +9 -0
- package/.storybook-static/assets/UploadYourLogoApplication.stories-BhZE8DD8.js +252 -0
- package/.storybook-static/assets/UploadYourLogoDropzone-DQqACf-e.css +1 -0
- package/.storybook-static/assets/UploadYourLogoDropzone-DjLMXjVf.js +24 -0
- package/.storybook-static/assets/UploadYourLogoDropzone.stories-DmrtZdrQ.js +55 -0
- package/.storybook-static/assets/UploadedLogoSearchResultCard.stories-H46TQzf5.js +79 -0
- package/.storybook-static/assets/WebsiteContextualUpgradeModal-Dec1RypL.css +1 -0
- package/.storybook-static/assets/WebsiteContextualUpgradeModal.stories-CF2wZFGr.js +211 -0
- package/.storybook-static/assets/_commonjsHelpers-D6-XlEtG.js +1 -0
- package/.storybook-static/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
- package/.storybook-static/assets/api-BlGvmpef.js +1 -0
- package/.storybook-static/assets/axe-CVuRbXyi.js +30 -0
- package/.storybook-static/assets/brand-crowd-api.client-CMc6GnPx.js +1 -0
- package/.storybook-static/assets/bundled-translations-BoWhEDU_.js +1 -0
- package/.storybook-static/assets/bundled-translations.de-DE-C4lqla4O.js +1 -0
- package/.storybook-static/assets/bundled-translations.es-ES-BxMIllUH.js +1 -0
- package/.storybook-static/assets/bundled-translations.fr-CA-MxZpyz0w.js +1 -0
- package/.storybook-static/assets/bundled-translations.fr-FR-N7UPCZVr.js +1 -0
- package/.storybook-static/assets/bundled-translations.pt-BR-C8tscYuG.js +1 -0
- package/.storybook-static/assets/bundled-translations.pt-PT-Dszj5Xfa.js +1 -0
- package/.storybook-static/assets/carousel-Dt2XmYc_.css +1 -0
- package/.storybook-static/assets/carousel.stories-CC4v-h62.js +668 -0
- package/.storybook-static/assets/event-constants-CMO9VQVu.js +1 -0
- package/.storybook-static/assets/iframe-ndUd-rmt.js +1126 -0
- package/.storybook-static/assets/index-Bz4la0P9.js +6 -0
- package/.storybook-static/assets/index-_aBqSnL8.js +29 -0
- package/.storybook-static/assets/matchers-7Z3WT2CE-OIiPHzXs.js +14 -0
- package/.storybook-static/assets/mediaQueryMixin-CISNqd93.js +1 -0
- package/.storybook-static/assets/tracking-ATsLLehC.js +1 -0
- package/.storybook-static/css/tailwind-brandCrowd.css +2623 -0
- package/.storybook-static/css/tailwind-brandPage.css +2295 -0
- package/.storybook-static/css/tailwind-crazyDomains.css +2623 -0
- package/.storybook-static/css/tailwind-designCom.css +2623 -0
- package/.storybook-static/css/tailwind-designCrowd.css +2623 -0
- package/.storybook-static/favicon.svg +1 -0
- package/.storybook-static/iframe.html +694 -0
- package/.storybook-static/index.html +156 -0
- package/.storybook-static/index.json +1 -0
- package/.storybook-static/nunito-sans-bold-italic.woff2 +0 -0
- package/.storybook-static/nunito-sans-bold.woff2 +0 -0
- package/.storybook-static/nunito-sans-italic.woff2 +0 -0
- package/.storybook-static/nunito-sans-regular.woff2 +0 -0
- package/.storybook-static/project.json +1 -0
- package/.storybook-static/sb-addons/a11y-1/manager-bundle.js +5 -0
- package/.storybook-static/sb-addons/links-2/manager-bundle.js +3 -0
- package/.storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +188 -0
- package/.storybook-static/sb-addons/themes-3/manager-bundle.js +3 -0
- package/.storybook-static/sb-common-assets/favicon.svg +1 -0
- package/.storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
- package/.storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
- package/.storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
- package/.storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
- package/.storybook-static/sb-manager/globals-module-info.js +797 -0
- package/.storybook-static/sb-manager/globals-runtime.js +72062 -0
- package/.storybook-static/sb-manager/globals.js +34 -0
- package/.storybook-static/sb-manager/runtime.js +13002 -0
- package/.vscode/settings.json +2 -0
- package/dist/css/tailwind-brandCrowd.css +81 -16
- package/dist/css/tailwind-brandPage.css +80 -11
- package/dist/css/tailwind-crazyDomains.css +81 -16
- package/dist/css/tailwind-designCom.css +81 -16
- package/dist/css/tailwind-designCrowd.css +81 -16
- package/package.json +1 -1
- package/public/css/tailwind-brandCrowd.css +2644 -0
- package/public/css/tailwind-brandPage.css +2312 -0
- package/public/css/tailwind-crazyDomains.css +2644 -0
- package/public/css/tailwind-designCom.css +2644 -0
- package/public/css/tailwind-designCrowd.css +2644 -0
- package/src/atoms/components/AiSwitch/AiSwitch.stories.js +31 -0
- package/src/atoms/components/AiSwitch/AiSwitch.vue +225 -0
- package/src/atoms/components/AiSwitch/StarIcon.vue +7 -0
- package/src/atoms/components/Button/variants/ButtonDarkModePill.vue +5 -5
- package/src/useVoiceToText.ts +6 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import AiSwitch from './AiSwitch.vue';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Components/AiSwitch',
|
|
5
|
+
component: AiSwitch,
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export const Default = () => ({
|
|
9
|
+
components: { AiSwitch },
|
|
10
|
+
template: '<AiSwitch />',
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export const DarkMode = () => ({
|
|
14
|
+
components: { AiSwitch },
|
|
15
|
+
template: '<AiSwitch :is-dark-mode="true" />',
|
|
16
|
+
});
|
|
17
|
+
DarkMode.decorators = [
|
|
18
|
+
() => ({
|
|
19
|
+
template: '<div style="background: #000; padding: 2rem;"><story /></div>',
|
|
20
|
+
}),
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
export const StarSwitch = () => ({
|
|
24
|
+
components: { AiSwitch },
|
|
25
|
+
template: '<AiSwitch :is-dark-mode="true" :show-stars="true" />',
|
|
26
|
+
});
|
|
27
|
+
StarSwitch.decorators = [
|
|
28
|
+
() => ({
|
|
29
|
+
template: '<div style="background: #000; padding: 2rem;"><story /></div>',
|
|
30
|
+
}),
|
|
31
|
+
];
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="switch-container" :class="{ 'dark-mode': isDarkMode }">
|
|
3
|
+
<div class="switch-labels">
|
|
4
|
+
<span class="off-label">Templates</span>
|
|
5
|
+
<span class="on-label">
|
|
6
|
+
<Icon name="ai" class="tw-mr-1" style="fill: linear-gradient(180deg, #d946ef 0%, #8b5cf6 100%)" />AI Mode</span
|
|
7
|
+
>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="switch-background" @click="toggleSwitch">
|
|
10
|
+
<div class="switch-block" :class="{ 'is-ai': isAi, 'star-block': showStars }"></div>
|
|
11
|
+
</div>
|
|
12
|
+
<StarIcon
|
|
13
|
+
v-for="star in stars"
|
|
14
|
+
:key="star.index"
|
|
15
|
+
class="star"
|
|
16
|
+
:class="{ 'throw-star': isAi && showStars }"
|
|
17
|
+
:style="{
|
|
18
|
+
left: `calc(19rem + ${star.x}px)`,
|
|
19
|
+
top: `calc(2.5rem + ${star.y}px)`,
|
|
20
|
+
transform: `rotate(${star.rotate}deg)`,
|
|
21
|
+
animationDelay: `0ms, ${star.fadeDelay}ms`,
|
|
22
|
+
fill: star.color,
|
|
23
|
+
}"
|
|
24
|
+
/>
|
|
25
|
+
<!-- <StarIcon class="star2" /> -->
|
|
26
|
+
</div>
|
|
27
|
+
</template>
|
|
28
|
+
|
|
29
|
+
<script setup lang="ts">
|
|
30
|
+
import { ref } from 'vue';
|
|
31
|
+
import Icon from '../Icon/Icon.vue';
|
|
32
|
+
import StarIcon from './StarIcon.vue';
|
|
33
|
+
|
|
34
|
+
interface Props {
|
|
35
|
+
isDarkMode: boolean;
|
|
36
|
+
showStars: boolean;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
40
|
+
isDarkMode: false,
|
|
41
|
+
showStars: false,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
const isAi = ref(false);
|
|
45
|
+
|
|
46
|
+
const ANGLE_CONST = 25;
|
|
47
|
+
const DIST_CONST = 25;
|
|
48
|
+
const ANGLE_JITTER = 90;
|
|
49
|
+
const DIST_JITTER = 30;
|
|
50
|
+
const NUM_STARS = 5;
|
|
51
|
+
const FADE_DELAY = 450;
|
|
52
|
+
const FADE_JITTER = 400;
|
|
53
|
+
|
|
54
|
+
const convertDegreesToRadians = (angle) => (angle * Math.PI) / 180;
|
|
55
|
+
|
|
56
|
+
const convertPolarToCartesian = (angle, distance) => {
|
|
57
|
+
const angleInRadians = convertDegreesToRadians(angle);
|
|
58
|
+
const x = Math.cos(angleInRadians) * distance;
|
|
59
|
+
const y = Math.sin(angleInRadians) * distance;
|
|
60
|
+
|
|
61
|
+
return [x, y];
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const stars = ref([
|
|
65
|
+
{
|
|
66
|
+
index: 0,
|
|
67
|
+
x: 0,
|
|
68
|
+
y: 0,
|
|
69
|
+
rotate: 0,
|
|
70
|
+
fadeDelay: 0,
|
|
71
|
+
color: '#D946EF',
|
|
72
|
+
},
|
|
73
|
+
]);
|
|
74
|
+
|
|
75
|
+
const randomizeStars = () => {
|
|
76
|
+
if (!isAi.value && !props.showStars) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
stars.value = Array.from({ length: NUM_STARS }, (_, index) => {
|
|
80
|
+
const angle = Math.floor(
|
|
81
|
+
ANGLE_CONST - index * (ANGLE_JITTER / NUM_STARS) - Math.random() * (ANGLE_JITTER / NUM_STARS),
|
|
82
|
+
);
|
|
83
|
+
const dist = Math.floor(DIST_CONST + Math.random() * DIST_JITTER);
|
|
84
|
+
const rotate = Math.floor(180 + Math.random() * 90);
|
|
85
|
+
const fadeDelay = Math.floor(FADE_DELAY + Math.random() * FADE_JITTER);
|
|
86
|
+
const color = index % 2 === 0 ? '#D946EF' : '#8B5CF6';
|
|
87
|
+
|
|
88
|
+
const [x, y] = convertPolarToCartesian(angle, dist);
|
|
89
|
+
return { index, x, y, rotate, fadeDelay, color };
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const toggleSwitch = () => {
|
|
94
|
+
// toggle left align class
|
|
95
|
+
// if moving right to left, play star animation after movement
|
|
96
|
+
isAi.value = !isAi.value;
|
|
97
|
+
console.log(`switch clicked, now ${isAi.value}`);
|
|
98
|
+
randomizeStars();
|
|
99
|
+
};
|
|
100
|
+
</script>
|
|
101
|
+
|
|
102
|
+
<style scoped>
|
|
103
|
+
.switch-container {
|
|
104
|
+
position: relative;
|
|
105
|
+
width: 23rem;
|
|
106
|
+
height: 6rem;
|
|
107
|
+
padding: 1rem 2rem;
|
|
108
|
+
display: flex;
|
|
109
|
+
align-items: center;
|
|
110
|
+
justify-content: space-around;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.switch-labels {
|
|
114
|
+
top: 0px;
|
|
115
|
+
left: 0px;
|
|
116
|
+
width: 100%;
|
|
117
|
+
height: 100%;
|
|
118
|
+
z-index: 10;
|
|
119
|
+
padding: 0 10px;
|
|
120
|
+
position: absolute;
|
|
121
|
+
display: flex;
|
|
122
|
+
align-items: center;
|
|
123
|
+
justify-content: space-evenly;
|
|
124
|
+
pointer-events: none;
|
|
125
|
+
> {
|
|
126
|
+
width: 8rem;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.switch-background {
|
|
131
|
+
position: relative;
|
|
132
|
+
width: 18rem;
|
|
133
|
+
height: 3rem;
|
|
134
|
+
background-color: bisque;
|
|
135
|
+
border-radius: 1.5rem;
|
|
136
|
+
padding: 6px;
|
|
137
|
+
z-index: 2;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.switch-block {
|
|
141
|
+
position: absolute;
|
|
142
|
+
height: 2.25rem;
|
|
143
|
+
width: 8.75rem;
|
|
144
|
+
border-radius: 1.125rem;
|
|
145
|
+
background-color: cornflowerblue;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.on-label {
|
|
149
|
+
display: flex;
|
|
150
|
+
align-items: center;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.switch-block.is-ai {
|
|
154
|
+
transform: translateX(97%);
|
|
155
|
+
background: linear-gradient(180deg, #d946ef 0%, #8b5cf6 100%);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.dark-mode {
|
|
159
|
+
@apply tw-text-grayscale-200;
|
|
160
|
+
.switch-background {
|
|
161
|
+
background-color: #3d3d3d;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.switch-block {
|
|
165
|
+
background-color: #252525;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.star {
|
|
170
|
+
position: absolute;
|
|
171
|
+
opacity: 0;
|
|
172
|
+
width: 0.75rem;
|
|
173
|
+
height: 0.75rem;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
@keyframes star-spread {
|
|
177
|
+
from {
|
|
178
|
+
left: 19rem;
|
|
179
|
+
top: 2.5rem;
|
|
180
|
+
transform: rotate(0deg);
|
|
181
|
+
}
|
|
182
|
+
40% {
|
|
183
|
+
left: 19rem;
|
|
184
|
+
top: 2.5rem;
|
|
185
|
+
transform: rotate(0deg);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@keyframes fade-out {
|
|
190
|
+
to {
|
|
191
|
+
opacity: 0;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
196
|
+
.switch-block.is-ai.star-block {
|
|
197
|
+
transition:
|
|
198
|
+
transform 300ms
|
|
199
|
+
linear(
|
|
200
|
+
0,
|
|
201
|
+
0.371 6.2%,
|
|
202
|
+
0.652 12.9%,
|
|
203
|
+
0.85 20.3%,
|
|
204
|
+
0.922 24.4%,
|
|
205
|
+
0.977 28.8%,
|
|
206
|
+
1.027 36.1%,
|
|
207
|
+
1.045 44.8%,
|
|
208
|
+
1.006 77.3%,
|
|
209
|
+
1
|
|
210
|
+
),
|
|
211
|
+
color 300ms;
|
|
212
|
+
}
|
|
213
|
+
.switch-block {
|
|
214
|
+
transition:
|
|
215
|
+
transform 300ms ease-in,
|
|
216
|
+
color 300ms ease-in;
|
|
217
|
+
}
|
|
218
|
+
.throw-star {
|
|
219
|
+
opacity: 1;
|
|
220
|
+
animation:
|
|
221
|
+
star-spread 450ms cubic-bezier(0.43, 1.032, 0.618, 1.003) forwards,
|
|
222
|
+
fade-out 400ms ease-out forwards;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
</style>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg class="star1" viewBox="18 23 48 48">
|
|
3
|
+
<path
|
|
4
|
+
d="M65.653886,47.229432c-13.71205,5.484135-18.128049,9.928695-23.576943,23.729431C36.62805,57.158127,32.212051,52.713567,18.5,47.229432C32.212051,41.745296,36.62805,37.300736,42.076943,23.5c5.448894,13.800736,9.864893,18.245296,23.576943,23.729432Z"
|
|
5
|
+
></path>
|
|
6
|
+
</svg>
|
|
7
|
+
</template>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<button
|
|
3
3
|
v-if="!url"
|
|
4
|
-
class="tw-rounded-full tw-font-sans tw-border
|
|
4
|
+
class="tw-rounded-full tw-font-sans tw-border tw-border-solid tw-font-bold tw-capitalize tw-transition-colors tw-duration-300 tw-border-grayscale-400 hover:tw-bg-secondary-400 tw-py-1.5 tw-px-4"
|
|
5
5
|
:class="[
|
|
6
6
|
classes,
|
|
7
7
|
{
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
'tw-cursor-not-allowed': disabled,
|
|
11
11
|
'tw-cursor-pointer': !disabled,
|
|
12
12
|
'tw-text-secondary-600 tw-bg-white': active,
|
|
13
|
-
'tw-text-
|
|
13
|
+
'tw-text-grayscale-300 tw-bg-transparent': !active || disabled,
|
|
14
14
|
},
|
|
15
15
|
]"
|
|
16
16
|
:disabled="disabled"
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<a
|
|
24
24
|
v-else
|
|
25
25
|
:href="computedUrl"
|
|
26
|
-
class="tw-rounded-full tw-font-sans tw-inline-flex tw-border
|
|
26
|
+
class="tw-rounded-full tw-font-sans tw-inline-flex tw-border tw-border-solid tw-font-bold tw-capitalize tw-transition-colors tw-duration-300 tw-border-grayscale-400 hover:tw-bg-secondary-400 tw-py-1.5 tw-px-4 tw-no-underline"
|
|
27
27
|
:class="[
|
|
28
28
|
classes,
|
|
29
29
|
{
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
'tw-text-sm': size !== 'small',
|
|
32
32
|
'tw-cursor-not-allowed': disabled,
|
|
33
33
|
'tw-cursor-pointer': !disabled,
|
|
34
|
-
'tw-text-secondary-600 tw-bg-
|
|
35
|
-
'tw-text-
|
|
34
|
+
'tw-text-secondary-600 tw-bg-grayscale-300': active,
|
|
35
|
+
'tw-text-grayscale-300 tw-bg-transparent': !active || disabled,
|
|
36
36
|
},
|
|
37
37
|
]"
|
|
38
38
|
:download="download"
|
package/src/useVoiceToText.ts
CHANGED
|
@@ -104,6 +104,8 @@ export function useVoiceToText(options: UseVoiceToTextOptions = {}): UseVoiceToT
|
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
isListening.value = false;
|
|
108
|
+
|
|
107
109
|
const message = ERROR_MESSAGES[event.error] || 'An error occurred with speech recognition.';
|
|
108
110
|
error.value = message;
|
|
109
111
|
|
|
@@ -118,6 +120,10 @@ export function useVoiceToText(options: UseVoiceToTextOptions = {}): UseVoiceToT
|
|
|
118
120
|
}, ERROR_CLEAR_DELAY);
|
|
119
121
|
};
|
|
120
122
|
|
|
123
|
+
recognition.onstart = () => {
|
|
124
|
+
isListening.value = true;
|
|
125
|
+
};
|
|
126
|
+
|
|
121
127
|
recognition.onend = () => {
|
|
122
128
|
isListening.value = false;
|
|
123
129
|
};
|
|
@@ -142,7 +148,6 @@ export function useVoiceToText(options: UseVoiceToTextOptions = {}): UseVoiceToT
|
|
|
142
148
|
|
|
143
149
|
try {
|
|
144
150
|
recognition.start();
|
|
145
|
-
isListening.value = true;
|
|
146
151
|
} catch (e: unknown) {
|
|
147
152
|
// eslint-disable-next-line no-console
|
|
148
153
|
console.warn('[useVoiceToText] Failed to start:', (e as Error).message);
|