@designcrowd/fe-shared-lib 1.8.7 → 1.8.9-edge-fallback-0

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 (158) hide show
  1. package/.storybook-static/assets/AiPoweredLoader-K9ofJ40T.js +1 -0
  2. package/.storybook-static/assets/AiPoweredLoader.stories-ek9rwGQG.js +567 -0
  3. package/.storybook-static/assets/Auth-BEjq1pFf.css +1 -0
  4. package/.storybook-static/assets/Auth.stories-D1247dT1.js +490 -0
  5. package/.storybook-static/assets/AuthCrazyDomains.stories-BIamICEC.js +73 -0
  6. package/.storybook-static/assets/Button-CkyYO9sU.js +1 -0
  7. package/.storybook-static/assets/Button-CsmXX2Kh.css +1 -0
  8. package/.storybook-static/assets/ButtonGroup-B1fnbW1G.css +1 -0
  9. package/.storybook-static/assets/ButtonGroup.stories-B_Y6Qiue.js +504 -0
  10. package/.storybook-static/assets/ButtonPrimary-Bu6bXb_c.css +1 -0
  11. package/.storybook-static/assets/ButtonPrimary-LDY_rMmo.js +1 -0
  12. package/.storybook-static/assets/Buttons.stories-UtLyTNDh.js +761 -0
  13. package/.storybook-static/assets/ButtonsCrazyDomains.stories-B_dAvsPN.js +199 -0
  14. package/.storybook-static/assets/Checkbox.mixin-DkHpdvGa.js +1 -0
  15. package/.storybook-static/assets/Checkbox.stories-C2JNNPiv.js +246 -0
  16. package/.storybook-static/assets/Checktile.stories-A2EEo588.js +88 -0
  17. package/.storybook-static/assets/CollapsiblePanel.stories-C1n7g5nQ.js +56 -0
  18. package/.storybook-static/assets/ColorPicker.stories-Qp6snl1f.js +73 -0
  19. package/.storybook-static/assets/CopyToClipboardText.stories-sChI7F7B.js +32 -0
  20. package/.storybook-static/assets/Dropdown.stories-b--FBRDl.js +159 -0
  21. package/.storybook-static/assets/DropdownItem-B-sUYaug.js +1 -0
  22. package/.storybook-static/assets/DropdownItem-BV-BdThU.css +1 -0
  23. package/.storybook-static/assets/FormControl.mixin-Du0pWSns.js +1 -0
  24. package/.storybook-static/assets/HashRouteModal.stories-CNcrRtbp.js +64 -0
  25. package/.storybook-static/assets/HelloBar-DEIIHhYa.js +1 -0
  26. package/.storybook-static/assets/HelloBar.stories-tyJmZL4_.js +342 -0
  27. package/.storybook-static/assets/Icon-B_xzgi_Q.js +145 -0
  28. package/.storybook-static/assets/Icon.stories-BZzjXimT.js +151 -0
  29. package/.storybook-static/assets/Icon.stories-Bgp3oN6t.js +787 -0
  30. package/.storybook-static/assets/Loader-w-8rPZZr.js +1 -0
  31. package/.storybook-static/assets/LogoBusinessBrandColours-CeAaMKke.css +1 -0
  32. package/.storybook-static/assets/LogoBusinessBrandColours-wfQKCU3x.js +1 -0
  33. package/.storybook-static/assets/LogoBusinessBrandColours.stories-Br6U96nz.js +36 -0
  34. package/.storybook-static/assets/LogoKeywords-eT_i8ucw.js +1 -0
  35. package/.storybook-static/assets/LogoKeywords.stories-2eAnYOwT.js +86 -0
  36. package/.storybook-static/assets/Masonry-C2MNiGg0.css +1 -0
  37. package/.storybook-static/assets/Masonry.stories-DvvP8ATW.js +71 -0
  38. package/.storybook-static/assets/Modal-CGwEIF5R.css +1 -0
  39. package/.storybook-static/assets/Modal-DKAacz7P.js +1 -0
  40. package/.storybook-static/assets/Modal.stories-B9faUP3R.js +345 -0
  41. package/.storybook-static/assets/Notice.stories-E5fzboZ_.js +222 -0
  42. package/.storybook-static/assets/NumberStepper-Blffv09R.css +1 -0
  43. package/.storybook-static/assets/NumberStepper.stories-DxFzm0J9.js +64 -0
  44. package/.storybook-static/assets/PaymentConfigList-BpUMV6cp.css +1 -0
  45. package/.storybook-static/assets/PaymentConfigList.stories-DgQ5DKoI.js +130 -0
  46. package/.storybook-static/assets/Picture-C-f6m6ze.js +1 -0
  47. package/.storybook-static/assets/Picture.stories-CDN0TmGy.js +119 -0
  48. package/.storybook-static/assets/Pill-40wjWWYr.js +1 -0
  49. package/.storybook-static/assets/Pill.stories-DlxPmQuw.js +18 -0
  50. package/.storybook-static/assets/PillBar-os4mJV3M.css +1 -0
  51. package/.storybook-static/assets/PillBar.stories-DuJpicaI.js +41 -0
  52. package/.storybook-static/assets/Price-DmIyQdA3.js +1 -0
  53. package/.storybook-static/assets/Price.stories-gvqiKJzs.js +358 -0
  54. package/.storybook-static/assets/PromoCard.stories-DCqsBuOI.js +299 -0
  55. package/.storybook-static/assets/PublishBrandPageModal-Q9-mNG1q.css +1 -0
  56. package/.storybook-static/assets/PublishBrandPageModal.stories-BFr76U5n.js +324 -0
  57. package/.storybook-static/assets/SearchBar.stories-BjqtXwFK.js +12 -0
  58. package/.storybook-static/assets/Select-Dw-zvSUg.css +1 -0
  59. package/.storybook-static/assets/Select.stories-LGfzNS8M.js +108 -0
  60. package/.storybook-static/assets/SellDomainNameList.fixtures-LC6fjr_b.js +1 -0
  61. package/.storybook-static/assets/SellDomainNameListModal-Cs6_cMyh.js +1 -0
  62. package/.storybook-static/assets/SellDomainNameListModal-DH6khE10.css +1 -0
  63. package/.storybook-static/assets/SellDomainNameListModal.stories-n-gs1OP1.js +71 -0
  64. package/.storybook-static/assets/SellDomainNameListSearchResult-Cpxq0jDA.css +1 -0
  65. package/.storybook-static/assets/SellDomainNameListSearchResult-DGov8cKY.js +1 -0
  66. package/.storybook-static/assets/SellDomainNameSearchWithResults-DHzu6fnp.js +1 -0
  67. package/.storybook-static/assets/SellDomainNameSearchWithResults.stories-CW_xjbiq.js +37 -0
  68. package/.storybook-static/assets/SellDomainNameWidget.stories-DwaHPJv8.js +36 -0
  69. package/.storybook-static/assets/SideNavigationPanel-CcuQm_Sc.css +1 -0
  70. package/.storybook-static/assets/SideNavigationPanel.stories-BkDnJq6A.js +143 -0
  71. package/.storybook-static/assets/SignIn-CE_SoJx-.css +1 -0
  72. package/.storybook-static/assets/SignIn-CVWfb7be.js +1 -0
  73. package/.storybook-static/assets/Slider-Cog2FFdj.css +1 -0
  74. package/.storybook-static/assets/Slider.stories-dEVLBxDH.js +141 -0
  75. package/.storybook-static/assets/SparkleIcon.stories-qzRF8GqJ.js +547 -0
  76. package/.storybook-static/assets/StarRating-BtKh7pzm.css +1 -0
  77. package/.storybook-static/assets/StarRating.stories-CaHUrkco.js +45 -0
  78. package/.storybook-static/assets/TabMenu.stories-zjRIYR91.js +47 -0
  79. package/.storybook-static/assets/TextCopyField-8fLItNK1.js +1 -0
  80. package/.storybook-static/assets/TextCopyField.stories-DhtlsOEJ.js +47 -0
  81. package/.storybook-static/assets/TextInput-ChcUAMVU.js +1 -0
  82. package/.storybook-static/assets/TextInput.stories-CYg-wtE3.js +233 -0
  83. package/.storybook-static/assets/Textarea.stories-CIbFJ5BC.js +207 -0
  84. package/.storybook-static/assets/Toggle.stories-PzUJM04E.js +161 -0
  85. package/.storybook-static/assets/Tooltip-DmYewPhE.js +1 -0
  86. package/.storybook-static/assets/Tooltip-DyXIgFQH.css +1 -0
  87. package/.storybook-static/assets/Tooltip.stories-BbvfQkdB.js +953 -0
  88. package/.storybook-static/assets/UploadYourLogoApplication-nGy7BMKH.css +9 -0
  89. package/.storybook-static/assets/UploadYourLogoApplication.stories-BhZE8DD8.js +252 -0
  90. package/.storybook-static/assets/UploadYourLogoDropzone-DQqACf-e.css +1 -0
  91. package/.storybook-static/assets/UploadYourLogoDropzone-DjLMXjVf.js +24 -0
  92. package/.storybook-static/assets/UploadYourLogoDropzone.stories-DmrtZdrQ.js +55 -0
  93. package/.storybook-static/assets/UploadedLogoSearchResultCard.stories-H46TQzf5.js +79 -0
  94. package/.storybook-static/assets/WebsiteContextualUpgradeModal-Dec1RypL.css +1 -0
  95. package/.storybook-static/assets/WebsiteContextualUpgradeModal.stories-CF2wZFGr.js +211 -0
  96. package/.storybook-static/assets/_commonjsHelpers-D6-XlEtG.js +1 -0
  97. package/.storybook-static/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
  98. package/.storybook-static/assets/api-BlGvmpef.js +1 -0
  99. package/.storybook-static/assets/axe-CVuRbXyi.js +30 -0
  100. package/.storybook-static/assets/brand-crowd-api.client-CMc6GnPx.js +1 -0
  101. package/.storybook-static/assets/bundled-translations-BoWhEDU_.js +1 -0
  102. package/.storybook-static/assets/bundled-translations.de-DE-C4lqla4O.js +1 -0
  103. package/.storybook-static/assets/bundled-translations.es-ES-BxMIllUH.js +1 -0
  104. package/.storybook-static/assets/bundled-translations.fr-CA-MxZpyz0w.js +1 -0
  105. package/.storybook-static/assets/bundled-translations.fr-FR-N7UPCZVr.js +1 -0
  106. package/.storybook-static/assets/bundled-translations.pt-BR-C8tscYuG.js +1 -0
  107. package/.storybook-static/assets/bundled-translations.pt-PT-Dszj5Xfa.js +1 -0
  108. package/.storybook-static/assets/carousel-Dt2XmYc_.css +1 -0
  109. package/.storybook-static/assets/carousel.stories-CC4v-h62.js +668 -0
  110. package/.storybook-static/assets/event-constants-CMO9VQVu.js +1 -0
  111. package/.storybook-static/assets/iframe-ndUd-rmt.js +1126 -0
  112. package/.storybook-static/assets/index-Bz4la0P9.js +6 -0
  113. package/.storybook-static/assets/index-_aBqSnL8.js +29 -0
  114. package/.storybook-static/assets/matchers-7Z3WT2CE-OIiPHzXs.js +14 -0
  115. package/.storybook-static/assets/mediaQueryMixin-CISNqd93.js +1 -0
  116. package/.storybook-static/assets/tracking-ATsLLehC.js +1 -0
  117. package/.storybook-static/css/tailwind-brandCrowd.css +2623 -0
  118. package/.storybook-static/css/tailwind-brandPage.css +2295 -0
  119. package/.storybook-static/css/tailwind-crazyDomains.css +2623 -0
  120. package/.storybook-static/css/tailwind-designCom.css +2623 -0
  121. package/.storybook-static/css/tailwind-designCrowd.css +2623 -0
  122. package/.storybook-static/favicon.svg +1 -0
  123. package/.storybook-static/iframe.html +694 -0
  124. package/.storybook-static/index.html +156 -0
  125. package/.storybook-static/index.json +1 -0
  126. package/.storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  127. package/.storybook-static/nunito-sans-bold.woff2 +0 -0
  128. package/.storybook-static/nunito-sans-italic.woff2 +0 -0
  129. package/.storybook-static/nunito-sans-regular.woff2 +0 -0
  130. package/.storybook-static/project.json +1 -0
  131. package/.storybook-static/sb-addons/a11y-1/manager-bundle.js +5 -0
  132. package/.storybook-static/sb-addons/links-2/manager-bundle.js +3 -0
  133. package/.storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +188 -0
  134. package/.storybook-static/sb-addons/themes-3/manager-bundle.js +3 -0
  135. package/.storybook-static/sb-common-assets/favicon.svg +1 -0
  136. package/.storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  137. package/.storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  138. package/.storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  139. package/.storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  140. package/.storybook-static/sb-manager/globals-module-info.js +797 -0
  141. package/.storybook-static/sb-manager/globals-runtime.js +72062 -0
  142. package/.storybook-static/sb-manager/globals.js +34 -0
  143. package/.storybook-static/sb-manager/runtime.js +13002 -0
  144. package/.vscode/settings.json +2 -0
  145. package/dist/css/tailwind-brandCrowd.css +81 -16
  146. package/dist/css/tailwind-brandPage.css +80 -11
  147. package/dist/css/tailwind-crazyDomains.css +81 -16
  148. package/dist/css/tailwind-designCom.css +81 -16
  149. package/dist/css/tailwind-designCrowd.css +81 -16
  150. package/package.json +1 -1
  151. package/public/css/tailwind-brandCrowd.css +2644 -0
  152. package/public/css/tailwind-brandPage.css +2312 -0
  153. package/public/css/tailwind-crazyDomains.css +2644 -0
  154. package/public/css/tailwind-designCom.css +2644 -0
  155. package/public/css/tailwind-designCrowd.css +2644 -0
  156. package/src/atoms/components/Button/variants/ButtonDarkModePill.vue +5 -5
  157. package/src/experiences/components/CompactSearchForm/CompactSearchForm.vue +140 -0
  158. package/src/useVoiceToText.ts +6 -1
@@ -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-2 tw-border-solid tw-font-bold tw-capitalize tw-transition-colors tw-duration-300 tw-border-white hover:tw-bg-secondary-400 tw-py-1.5 tw-px-4"
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-white tw-bg-transparent': !active || disabled,
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-2 tw-border-solid tw-font-bold tw-capitalize tw-transition-colors tw-duration-300 tw-border-white hover:tw-bg-secondary-400 tw-py-1.5 tw-px-4 tw-no-underline"
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-white': active,
35
- 'tw-text-white tw-bg-transparent': !active || disabled,
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"
@@ -0,0 +1,140 @@
1
+ <template>
2
+ <div class="ai-generator-hero-input tw-w-full tw-max-w-4xl tw-mx-auto tw-px-8 xl:tw-px-0">
3
+ <div
4
+ class="tw-shadow-sm tw-p-2 tw-pb-3 tw-pr-3 tw-pl-3 tw-rounded-2xl"
5
+ :class="[containerClasses]"
6
+ @keydown="onGlobalKeydown"
7
+ >
8
+ <div class="tw-flex tw-items-start tw-gap-2">
9
+ <!-- Convert to BYO Logo Preview component -->
10
+ <div v-if="byoLogoPreviewUrl" class="tw-relative tw-group tw-flex-shrink-0 tw-mt-1 tw-mb-2">
11
+ <img
12
+ :src="byoLogoPreviewUrl"
13
+ alt="Uploaded logo"
14
+ class="tw-w-20 tw-h-20 tw-rounded-lg tw-object-cover tw-block"
15
+ data-test-byo-logo-preview
16
+ />
17
+ <button
18
+ type="button"
19
+ class="tw-absolute tw-top-1 tw-right-1 tw-z-10 tw-w-5 tw-h-5 tw-rounded-full tw-bg-white tw-text-grayscale-800 tw-shadow tw-flex tw-items-center tw-justify-center tw-opacity-0 group-hover:tw-opacity-100 tw-transition-opacity tw-cursor-pointer"
20
+ data-test-byo-remove-logo
21
+ @click.stop="onByoRemoveLogo"
22
+ >
23
+ <svg xmlns="http://www.w3.org/2000/svg" class="tw-w-3 tw-h-3" viewBox="0 0 20 20" fill="currentColor">
24
+ <path
25
+ fill-rule="evenodd"
26
+ d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
27
+ clip-rule="evenodd"
28
+ />
29
+ </svg>
30
+ </button>
31
+ </div>
32
+ <textarea
33
+ :value="modelValue"
34
+ :placeholder="placeholder"
35
+ :maxlength="maxLength"
36
+ :class="textareaClasses"
37
+ :readonly="!isHydrated"
38
+ aria-label="AI Prompt"
39
+ data-test-business-description-input
40
+ @input="onInput"
41
+ @keydown.enter.exact.prevent="onSubmit"
42
+ />
43
+ </div>
44
+ <div class="tw-flex tw-flex-col tw-gap-6 sm:tw-flex-row sm:tw-items-end sm:tw-gap-2">
45
+ <div v-if="showByoUploadButton" class="tw-relative tw-group tw-flex-shrink-0">
46
+ <button
47
+ class="tw-flex tw-items-center tw-justify-center tw-w-10 tw-h-10 tw-rounded-full tw-bg-grayscale-700 hover:tw-bg-grayscale-800 tw-text-grayscale-400 hover:tw-border-white hover:tw-text-white tw-transition-colors"
48
+ data-test-byo-upload-button
49
+ @click.stop="onShowUploadContextMenu"
50
+ >
51
+ <Icon name="plus" />
52
+ </button>
53
+ <div
54
+ v-if="showUploadContextMenu"
55
+ class="tw-absolute tw-top-full tw-left-0 tw-mt-2 tw-z-20 tw-bg-grayscale-800 tw-text-white tw-text-sm tw-rounded tw-shadow-lg tw-whitespace-nowrap tw-py-3 tw-pl-3 tw-pr-6 tw-cursor-pointer hover:tw-bg-grayscale-700 tw-transition-colors"
56
+ data-test-byo-upload-context-menu
57
+ @click.stop="onByoUploadClick"
58
+ >
59
+ {{ byoUploadTooltip }}
60
+ </div>
61
+ </div>
62
+ <!-- DesignTypeDropdown -->
63
+ <AiPoweredMakerDropdown
64
+ v-if="makerOptions && makerOptions.length > 0"
65
+ :maker-options="makerOptions"
66
+ :theme="theme"
67
+ :default-selected="defaultSelectedMaker"
68
+ @maker-change="onMakerChange"
69
+ />
70
+ <!-- FilterGroups -->
71
+ <AiPoweredOverlays
72
+ v-if="enhancedFilterGroups && enhancedFilterGroups.length > 0"
73
+ class="tw-w-full sm:tw-w-auto"
74
+ :filter-groups="enhancedFilterGroups"
75
+ :selected-filters="selectedFilters"
76
+ :theme="theme"
77
+ @update:filters="onFilterOverlayUpdate"
78
+ />
79
+ <Button
80
+ v-if="ctaVariant === 'primary-round'"
81
+ variant="primary"
82
+ :icon="isLoading ? undefined : 'arrow-up'"
83
+ icon-size="sm"
84
+ classes="tw-rounded-full !tw-py-2 !tw-px-3"
85
+ container-classes="tw-flex tw-justify-center tw-flex-shrink-0 tw-min-h-[2.75rem] sm:tw-ml-auto"
86
+ :disabled="!isHydrated || disabled || isLoading"
87
+ :is-busy="isLoading"
88
+ data-test-hero-submit-button
89
+ @on-click="onSubmit"
90
+ />
91
+ <Button
92
+ v-else
93
+ :label="ctaLabel"
94
+ variant="ai"
95
+ container-classes="tw-w-full sm:tw-ml-auto sm:tw-flex-shrink-0 sm:tw-w-auto tw-min-h-[2.75rem]"
96
+ :disabled="!isHydrated || disabled || isLoading"
97
+ :is-busy="isLoading"
98
+ :full-width="true"
99
+ data-test-hero-submit-button
100
+ @on-click="onSubmit"
101
+ />
102
+ </div>
103
+ </div>
104
+
105
+ <div v-if="hasError" class="tw-mt-4 tw-w-full">
106
+ <slot></slot>
107
+ </div>
108
+ </div>
109
+ </template>
110
+ <script setup lang="ts">
111
+ import { computed } from 'vue';
112
+
113
+ const props = withDefaults(defineProps<any>(), {
114
+ placeholder: 'What would you like to design?',
115
+ maxLength: 1000,
116
+ ctaLabel: '',
117
+ disabled: false,
118
+ assetType: 'logo',
119
+ isUserModifiedName: false,
120
+ isUserModifiedKeywords: false,
121
+ childTranslations: () => ({}),
122
+ selectedFilters: () => [],
123
+ showOverlayFilters: false,
124
+ shouldSkipAiGenerationOnMount: false,
125
+ shouldWaitForUserInput: true,
126
+ showByoUploadButton: false,
127
+ byoUploadTooltip: 'Upload logo',
128
+ byoLogoPreviewUrl: undefined,
129
+ ctaVariant: 'ai',
130
+ hideStyleAndColorFilters: false,
131
+ useSimpleSearch: false,
132
+ gt9770SearchBehavior: undefined,
133
+ });
134
+
135
+ const containerClasses = computed(() => {
136
+ return props.theme === 'dark'
137
+ ? 'tw-bg-secondary-500 tw-border tw-border-grayscale-600'
138
+ : 'tw-bg-white tw-border tw-border-grayscale-300';
139
+ });
140
+ </script>
@@ -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);