@nuxt/ui 4.6.1 → 4.7.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 (168) hide show
  1. package/README.md +7 -4
  2. package/cli/package.json +1 -1
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +3 -2
  5. package/dist/runtime/components/Accordion.d.vue.ts +6 -1
  6. package/dist/runtime/components/Accordion.vue +1 -1
  7. package/dist/runtime/components/Accordion.vue.d.ts +6 -1
  8. package/dist/runtime/components/AuthForm.d.vue.ts +22 -29
  9. package/dist/runtime/components/AuthForm.vue +8 -6
  10. package/dist/runtime/components/AuthForm.vue.d.ts +22 -29
  11. package/dist/runtime/components/Calendar.vue +4 -4
  12. package/dist/runtime/components/Card.d.vue.ts +4 -0
  13. package/dist/runtime/components/Card.vue +16 -2
  14. package/dist/runtime/components/Card.vue.d.ts +4 -0
  15. package/dist/runtime/components/ChatMessage.d.vue.ts +27 -17
  16. package/dist/runtime/components/ChatMessage.vue +10 -16
  17. package/dist/runtime/components/ChatMessage.vue.d.ts +27 -17
  18. package/dist/runtime/components/ChatMessages.d.vue.ts +27 -21
  19. package/dist/runtime/components/ChatMessages.vue +22 -23
  20. package/dist/runtime/components/ChatMessages.vue.d.ts +27 -21
  21. package/dist/runtime/components/ChatPromptSubmit.vue +3 -1
  22. package/dist/runtime/components/Checkbox.vue +5 -3
  23. package/dist/runtime/components/CommandPalette.d.vue.ts +18 -3
  24. package/dist/runtime/components/CommandPalette.vue +11 -7
  25. package/dist/runtime/components/CommandPalette.vue.d.ts +18 -3
  26. package/dist/runtime/components/ContextMenuContent.vue +68 -65
  27. package/dist/runtime/components/DashboardSearch.d.vue.ts +8 -37
  28. package/dist/runtime/components/DashboardSearch.vue +11 -10
  29. package/dist/runtime/components/DashboardSearch.vue.d.ts +8 -37
  30. package/dist/runtime/components/DashboardSidebar.vue +1 -5
  31. package/dist/runtime/components/Drawer.vue +44 -41
  32. package/dist/runtime/components/DropdownMenuContent.vue +90 -87
  33. package/dist/runtime/components/EditorEmojiMenu.d.vue.ts +1 -1
  34. package/dist/runtime/components/EditorEmojiMenu.vue +2 -0
  35. package/dist/runtime/components/EditorEmojiMenu.vue.d.ts +1 -1
  36. package/dist/runtime/components/EditorMentionMenu.d.vue.ts +1 -1
  37. package/dist/runtime/components/EditorMentionMenu.vue +2 -0
  38. package/dist/runtime/components/EditorMentionMenu.vue.d.ts +1 -1
  39. package/dist/runtime/components/EditorSuggestionMenu.d.vue.ts +1 -1
  40. package/dist/runtime/components/EditorSuggestionMenu.vue +2 -0
  41. package/dist/runtime/components/EditorSuggestionMenu.vue.d.ts +1 -1
  42. package/dist/runtime/components/FileUpload.vue +7 -5
  43. package/dist/runtime/components/Header.vue +1 -5
  44. package/dist/runtime/components/Input.vue +2 -2
  45. package/dist/runtime/components/InputDate.vue +6 -6
  46. package/dist/runtime/components/InputMenu.d.vue.ts +3 -3
  47. package/dist/runtime/components/InputMenu.vue +40 -38
  48. package/dist/runtime/components/InputMenu.vue.d.ts +3 -3
  49. package/dist/runtime/components/InputNumber.vue +2 -2
  50. package/dist/runtime/components/InputTags.vue +2 -2
  51. package/dist/runtime/components/InputTime.vue +2 -2
  52. package/dist/runtime/components/Link.vue +64 -8
  53. package/dist/runtime/components/Listbox.d.vue.ts +228 -0
  54. package/dist/runtime/components/Listbox.vue +242 -0
  55. package/dist/runtime/components/Listbox.vue.d.ts +228 -0
  56. package/dist/runtime/components/Modal.vue +13 -10
  57. package/dist/runtime/components/Popover.vue +7 -4
  58. package/dist/runtime/components/PricingTable.vue +60 -58
  59. package/dist/runtime/components/RadioGroup.vue +5 -3
  60. package/dist/runtime/components/Select.d.vue.ts +1 -1
  61. package/dist/runtime/components/Select.vue +84 -73
  62. package/dist/runtime/components/Select.vue.d.ts +1 -1
  63. package/dist/runtime/components/SelectMenu.d.vue.ts +3 -3
  64. package/dist/runtime/components/SelectMenu.vue +54 -52
  65. package/dist/runtime/components/SelectMenu.vue.d.ts +3 -3
  66. package/dist/runtime/components/Sidebar.vue +1 -4
  67. package/dist/runtime/components/Slideover.vue +67 -64
  68. package/dist/runtime/components/Table.d.vue.ts +1 -2
  69. package/dist/runtime/components/Table.vue +17 -29
  70. package/dist/runtime/components/Table.vue.d.ts +1 -2
  71. package/dist/runtime/components/Tabs.d.vue.ts +5 -1
  72. package/dist/runtime/components/Tabs.vue +2 -2
  73. package/dist/runtime/components/Tabs.vue.d.ts +5 -1
  74. package/dist/runtime/components/Textarea.d.vue.ts +1 -0
  75. package/dist/runtime/components/Textarea.vue +2 -1
  76. package/dist/runtime/components/Textarea.vue.d.ts +1 -0
  77. package/dist/runtime/components/Tooltip.vue +12 -9
  78. package/dist/runtime/components/content/ContentSearch.d.vue.ts +19 -35
  79. package/dist/runtime/components/content/ContentSearch.vue +10 -9
  80. package/dist/runtime/components/content/ContentSearch.vue.d.ts +19 -35
  81. package/dist/runtime/components/content/ContentToc.vue +19 -9
  82. package/dist/runtime/components/prose/Img.vue +2 -1
  83. package/dist/runtime/components/prose/Pre.vue +8 -3
  84. package/dist/runtime/components/prose/Prompt.d.vue.ts +32 -0
  85. package/dist/runtime/components/prose/Prompt.vue +88 -0
  86. package/dist/runtime/components/prose/Prompt.vue.d.ts +32 -0
  87. package/dist/runtime/composables/index.d.ts +1 -0
  88. package/dist/runtime/composables/index.js +1 -0
  89. package/dist/runtime/composables/useContentSearch.js +19 -5
  90. package/dist/runtime/composables/useEditorMenu.d.ts +5 -0
  91. package/dist/runtime/composables/useEditorMenu.js +3 -1
  92. package/dist/runtime/composables/useFieldGroup.d.ts +3 -0
  93. package/dist/runtime/composables/useFieldGroup.js +11 -1
  94. package/dist/runtime/composables/useResolvedVariants.d.ts +21 -0
  95. package/dist/runtime/composables/useResolvedVariants.js +14 -0
  96. package/dist/runtime/locale/ar.js +9 -0
  97. package/dist/runtime/locale/az.js +9 -0
  98. package/dist/runtime/locale/be.js +9 -0
  99. package/dist/runtime/locale/bg.js +9 -0
  100. package/dist/runtime/locale/bn.js +9 -0
  101. package/dist/runtime/locale/ca.js +9 -0
  102. package/dist/runtime/locale/ckb.js +10 -1
  103. package/dist/runtime/locale/cs.js +9 -0
  104. package/dist/runtime/locale/da.js +9 -0
  105. package/dist/runtime/locale/de.js +9 -0
  106. package/dist/runtime/locale/de_ch.js +9 -0
  107. package/dist/runtime/locale/el.js +9 -0
  108. package/dist/runtime/locale/en.js +10 -1
  109. package/dist/runtime/locale/es.js +9 -0
  110. package/dist/runtime/locale/et.js +9 -0
  111. package/dist/runtime/locale/eu.js +11 -2
  112. package/dist/runtime/locale/fa_ir.js +9 -0
  113. package/dist/runtime/locale/fi.js +9 -0
  114. package/dist/runtime/locale/fr.js +9 -0
  115. package/dist/runtime/locale/gl.js +9 -0
  116. package/dist/runtime/locale/he.js +9 -0
  117. package/dist/runtime/locale/hi.js +9 -0
  118. package/dist/runtime/locale/hr.js +9 -0
  119. package/dist/runtime/locale/hu.js +9 -0
  120. package/dist/runtime/locale/hy.js +9 -0
  121. package/dist/runtime/locale/id.js +9 -0
  122. package/dist/runtime/locale/is.js +9 -0
  123. package/dist/runtime/locale/it.js +9 -0
  124. package/dist/runtime/locale/ja.js +9 -0
  125. package/dist/runtime/locale/ka.js +9 -0
  126. package/dist/runtime/locale/kk.js +9 -0
  127. package/dist/runtime/locale/km.js +9 -0
  128. package/dist/runtime/locale/ko.js +9 -0
  129. package/dist/runtime/locale/ky.js +9 -0
  130. package/dist/runtime/locale/lb.js +11 -2
  131. package/dist/runtime/locale/lo.js +15 -6
  132. package/dist/runtime/locale/lt.js +9 -0
  133. package/dist/runtime/locale/mn.js +9 -0
  134. package/dist/runtime/locale/ms.js +9 -0
  135. package/dist/runtime/locale/nb_no.js +9 -0
  136. package/dist/runtime/locale/nl.js +9 -0
  137. package/dist/runtime/locale/pl.js +9 -0
  138. package/dist/runtime/locale/pt.js +9 -0
  139. package/dist/runtime/locale/pt_br.js +9 -0
  140. package/dist/runtime/locale/ro.js +9 -0
  141. package/dist/runtime/locale/ru.js +9 -0
  142. package/dist/runtime/locale/sk.js +9 -0
  143. package/dist/runtime/locale/sl.js +9 -0
  144. package/dist/runtime/locale/sq.js +9 -0
  145. package/dist/runtime/locale/sv.js +9 -0
  146. package/dist/runtime/locale/th.js +9 -0
  147. package/dist/runtime/locale/tj.js +9 -0
  148. package/dist/runtime/locale/tr.js +9 -0
  149. package/dist/runtime/locale/ug_cn.js +9 -0
  150. package/dist/runtime/locale/uk.js +9 -0
  151. package/dist/runtime/locale/ur.js +9 -0
  152. package/dist/runtime/locale/uz.js +9 -0
  153. package/dist/runtime/locale/vi.js +9 -0
  154. package/dist/runtime/locale/zh_cn.js +9 -0
  155. package/dist/runtime/locale/zh_tw.js +9 -0
  156. package/dist/runtime/plugins/colors.js +1 -1
  157. package/dist/runtime/types/index.d.ts +1 -0
  158. package/dist/runtime/types/index.js +1 -0
  159. package/dist/runtime/types/locale.d.ts +9 -0
  160. package/dist/runtime/types/prose.d.ts +1 -0
  161. package/dist/runtime/types/prose.js +1 -0
  162. package/dist/runtime/vue/overrides/inertia/Link.vue +3 -3
  163. package/dist/runtime/vue/overrides/none/Link.vue +3 -2
  164. package/dist/runtime/vue/overrides/vue-router/Link.vue +27 -31
  165. package/dist/shared/{ui.DJUbBpE2.mjs → ui.BIQuJqNV.mjs} +186 -34
  166. package/dist/unplugin.mjs +1 -1
  167. package/dist/vite.mjs +1 -1
  168. package/package.json +48 -39
@@ -0,0 +1,88 @@
1
+ <script>
2
+ import theme from "#build/ui/prose/prompt";
3
+ </script>
4
+
5
+ <script setup>
6
+ import { computed } from "vue";
7
+ import { useClipboard } from "@vueuse/core";
8
+ import { useAppConfig } from "#imports";
9
+ import { useComponentUI } from "../../composables/useComponentUI";
10
+ import { useLocale } from "../../composables/useLocale";
11
+ import { getSlotChildrenText } from "../../utils";
12
+ import { tv } from "../../utils/tv";
13
+ import UIcon from "../Icon.vue";
14
+ import UButton from "../Button.vue";
15
+ defineOptions({ inheritAttrs: false });
16
+ const props = defineProps({
17
+ description: { type: String, required: false },
18
+ icon: { type: null, required: false },
19
+ actions: { type: Array, required: false, default: () => ["copy"] },
20
+ class: { type: null, required: false },
21
+ ui: { type: Object, required: false }
22
+ });
23
+ const slots = defineSlots();
24
+ const { t } = useLocale();
25
+ const { copy, copied } = useClipboard();
26
+ const appConfig = useAppConfig();
27
+ const uiProp = useComponentUI("prose.prompt", props);
28
+ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.prose?.prompt || {} })());
29
+ function getPromptText() {
30
+ const children = slots.default?.();
31
+ return children ? getSlotChildrenText(children).trim() : "";
32
+ }
33
+ function copyPrompt() {
34
+ copy(getPromptText());
35
+ }
36
+ function openInCursor() {
37
+ const url = new URL("cursor://anysphere.cursor-deeplink/prompt");
38
+ url.searchParams.set("text", getPromptText());
39
+ window.open(url.toString(), "_self");
40
+ }
41
+ function openInWindsurf() {
42
+ const url = new URL("windsurf://cascade/newChat");
43
+ url.searchParams.set("prompt", getPromptText());
44
+ window.open(url.toString(), "_self");
45
+ }
46
+ </script>
47
+
48
+ <template>
49
+ <div :class="ui.root({ class: [uiProp?.root, props.class] })" v-bind="$attrs">
50
+ <UIcon v-if="icon" :name="icon" :class="ui.icon({ class: uiProp?.icon })" />
51
+
52
+ <div :class="ui.content({ class: uiProp?.content })">
53
+ <p v-if="description" :class="ui.description({ class: uiProp?.description })">
54
+ {{ description }}
55
+ </p>
56
+ </div>
57
+
58
+ <div :class="ui.actions({ class: uiProp?.actions })">
59
+ <UButton
60
+ v-if="actions.includes('copy')"
61
+ :icon="copied ? appConfig.ui.icons.copyCheck : appConfig.ui.icons.copy"
62
+ size="sm"
63
+ :label="t('prose.prompt.copy')"
64
+ @click="copyPrompt"
65
+ />
66
+
67
+ <UButton
68
+ v-if="actions.includes('cursor')"
69
+ icon="i-simple-icons-cursor"
70
+ color="neutral"
71
+ variant="outline"
72
+ size="sm"
73
+ :label="t('prose.prompt.openIn', { name: 'Cursor' })"
74
+ @click="openInCursor"
75
+ />
76
+
77
+ <UButton
78
+ v-if="actions.includes('windsurf')"
79
+ icon="i-simple-icons-windsurf"
80
+ color="neutral"
81
+ variant="outline"
82
+ size="sm"
83
+ :label="t('prose.prompt.openIn', { name: 'Windsurf' })"
84
+ @click="openInWindsurf"
85
+ />
86
+ </div>
87
+ </div>
88
+ </template>
@@ -0,0 +1,32 @@
1
+ import type { VNode } from 'vue';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import theme from '#build/ui/prose/prompt';
4
+ import type { IconProps } from '../../types';
5
+ import type { ComponentConfig } from '../../types/tv';
6
+ type ProsePrompt = ComponentConfig<typeof theme, AppConfig, 'prompt', 'ui.prose'>;
7
+ export interface ProsePromptProps {
8
+ description?: string;
9
+ /**
10
+ * @IconifyIcon
11
+ */
12
+ icon?: IconProps['name'];
13
+ /**
14
+ * @defaultValue ['copy']
15
+ */
16
+ actions?: ('copy' | 'cursor' | 'windsurf')[];
17
+ class?: any;
18
+ ui?: ProsePrompt['slots'];
19
+ }
20
+ export interface ProsePromptSlots {
21
+ default(props?: {}): VNode[];
22
+ }
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
25
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ProsePromptProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ProsePromptProps> & Readonly<{}>, {
26
+ actions: ("copy" | "cursor" | "windsurf")[];
27
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ProsePromptSlots>;
28
+ type __VLS_WithSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -15,6 +15,7 @@ export * from './useLocale';
15
15
  export * from './useOverlay';
16
16
  export * from './usePortal';
17
17
  export * from './useResizable';
18
+ export * from './useResolvedVariants';
18
19
  export * from './useScrollShadow';
19
20
  export * from './useScrollspy';
20
21
  export * from './useToast';
@@ -15,6 +15,7 @@ export * from "./useLocale.js";
15
15
  export * from "./useOverlay.js";
16
16
  export * from "./usePortal.js";
17
17
  export * from "./useResizable.js";
18
+ export * from "./useResolvedVariants.js";
18
19
  export * from "./useScrollShadow.js";
19
20
  export * from "./useScrollspy.js";
20
21
  export * from "./useToast.js";
@@ -16,12 +16,26 @@ function _useContentSearch() {
16
16
  };
17
17
  }
18
18
  function mapNavigationItems(children, files, parent) {
19
- return children.flatMap((link) => {
20
- if (link.children?.length) {
21
- return mapNavigationItems(link.children, files, link);
19
+ const filesByPath = /* @__PURE__ */ new Map();
20
+ for (const file of files || []) {
21
+ const basePath = file.id.split("#")[0] || file.id;
22
+ let bucket = filesByPath.get(basePath);
23
+ if (!bucket) {
24
+ bucket = [];
25
+ filesByPath.set(basePath, bucket);
22
26
  }
23
- return files?.filter((file) => file.id === link.path || file.id.startsWith(`${link.path}#`))?.map((file) => mapFile(file, link, parent)) || [];
24
- });
27
+ bucket.push(file);
28
+ }
29
+ function visit(nodes, nodeParent) {
30
+ return nodes.flatMap((link) => {
31
+ if (link.children?.length) {
32
+ return visit(link.children, link);
33
+ }
34
+ const matched = link.path ? filesByPath.get(link.path) : void 0;
35
+ return matched?.map((file) => mapFile(file, link, nodeParent)) || [];
36
+ });
37
+ }
38
+ return visit(children, parent);
25
39
  }
26
40
  function postFilter(query, items) {
27
41
  if (!query) {
@@ -1,5 +1,6 @@
1
1
  import type { Ref, ComputedRef, MaybeRef } from 'vue';
2
2
  import type { Editor } from '@tiptap/vue-3';
3
+ import type { SuggestionOptions } from '@tiptap/suggestion';
3
4
  import type { FloatingUIOptions } from '../types/editor';
4
5
  export interface EditorMenuOptions<T = any> {
5
6
  editor: Editor;
@@ -53,6 +54,10 @@ export interface EditorMenuOptions<T = any> {
53
54
  * @see https://floating-ui.com/docs/computePosition#options
54
55
  */
55
56
  options?: FloatingUIOptions;
57
+ /**
58
+ * Optional TipTap Suggestion matching options.
59
+ */
60
+ suggestion?: Omit<Partial<SuggestionOptions>, 'pluginKey' | 'editor' | 'char' | 'items' | 'command' | 'render'>;
56
61
  /**
57
62
  * The DOM element to append the menu to. Default is the editor's parent element.
58
63
  *
@@ -195,7 +195,8 @@ export function useEditorMenu(options) {
195
195
  };
196
196
  element.addEventListener("mousedown", handleMouseDown);
197
197
  const appendToElement = typeof options.appendTo === "function" ? options.appendTo() : options.appendTo;
198
- (appendToElement ?? options.editor.view.dom.parentElement)?.appendChild(element);
198
+ const container = appendToElement ?? options.editor.view.dom.parentElement;
199
+ container?.appendChild(element);
199
200
  if (renderer.element) {
200
201
  element.appendChild(renderer.element);
201
202
  }
@@ -311,6 +312,7 @@ export function useEditorMenu(options) {
311
312
  }
312
313
  };
313
314
  const plugin = Suggestion({
315
+ ...options.suggestion || {},
314
316
  pluginKey: pluginKeyInstance,
315
317
  editor: options.editor,
316
318
  char: options.char,
@@ -12,4 +12,7 @@ export declare function useFieldGroup<T>(props: Props<T>): {
12
12
  orientation: ComputedRef<"horizontal" | "vertical" | undefined>;
13
13
  size: ComputedRef<"xs" | "sm" | "md" | "lg" | "xl" | NonNullable<GetObjectField<T, "size">> | undefined>;
14
14
  };
15
+ export declare const FieldGroupReset: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
16
+ [key: string]: any;
17
+ }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
15
18
  export {};
@@ -1,4 +1,4 @@
1
- import { inject, computed } from "vue";
1
+ import { computed, defineComponent, inject, provide } from "vue";
2
2
  export const fieldGroupInjectionKey = Symbol("nuxt-ui.field-group");
3
3
  export function useFieldGroup(props) {
4
4
  const fieldGroup = inject(fieldGroupInjectionKey, void 0);
@@ -7,3 +7,13 @@ export function useFieldGroup(props) {
7
7
  size: computed(() => props?.size ?? fieldGroup?.value.size)
8
8
  };
9
9
  }
10
+ export const FieldGroupReset = defineComponent({
11
+ name: "FieldGroupReset",
12
+ setup(_, { slots }) {
13
+ provide(fieldGroupInjectionKey, computed(() => ({
14
+ size: void 0,
15
+ orientation: void 0
16
+ })));
17
+ return () => slots.default?.();
18
+ }
19
+ });
@@ -0,0 +1,21 @@
1
+ import type { ComputedRef, MaybeRefOrGetter } from 'vue';
2
+ /**
3
+ * Resolve variant values that are consumed in template logic (e.g. `<component :is="...">`).
4
+ *
5
+ * `tv()`'s `defaultVariants` only apply when computing classes — they don't affect
6
+ * template conditionals that read the prop directly. This mirrors tv's priority:
7
+ * `props[key]` > `app.config.ts` `defaultVariants[key]` > `theme.defaultVariants[key]`.
8
+ *
9
+ * @example
10
+ * const { variant } = useResolvedVariants('radioGroup', props, theme, ['variant'])
11
+ *
12
+ * // For nested prop paths, override with a getter:
13
+ * const { position } = useResolvedVariants('select', props, theme, ['position'], {
14
+ * position: () => props.content?.position
15
+ * })
16
+ *
17
+ * Related: #6360
18
+ */
19
+ export declare function useResolvedVariants<K extends string>(name: string, props: Record<string, any>, theme: Record<string, any>, keys: K[], overrides?: Partial<Record<K, MaybeRefOrGetter<any>>>): {
20
+ [P in K]: ComputedRef<any>;
21
+ };
@@ -0,0 +1,14 @@
1
+ import { computed, toValue } from "vue";
2
+ import { useAppConfig } from "#imports";
3
+ import { get } from "../utils/index.js";
4
+ export function useResolvedVariants(name, props, theme, keys, overrides) {
5
+ const appConfig = useAppConfig();
6
+ const result = {};
7
+ for (const key of keys) {
8
+ result[key] = computed(() => {
9
+ const value = overrides?.[key] !== void 0 ? toValue(overrides[key]) : get(props, key);
10
+ return value ?? appConfig.ui?.[name]?.defaultVariants?.[key] ?? theme.defaultVariants?.[key];
11
+ });
12
+ }
13
+ return result;
14
+ }
@@ -99,6 +99,11 @@ export default defineLocale({
99
99
  decrement: "\u062A\u0642\u0644\u064A\u0644",
100
100
  increment: "\u0632\u064A\u0627\u062F\u0629"
101
101
  },
102
+ listbox: {
103
+ noData: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A",
104
+ noMatch: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0646\u062A\u0627\u0626\u062C \u0645\u0637\u0627\u0628\u0642\u0629",
105
+ search: "\u0628\u062D\u062B\u2026"
106
+ },
102
107
  modal: {
103
108
  close: "\u0625\u063A\u0644\u0627\u0642"
104
109
  },
@@ -118,6 +123,10 @@ export default defineLocale({
118
123
  },
119
124
  pre: {
120
125
  copy: "\u0646\u0633\u062E \u0627\u0644\u0643\u0648\u062F \u0625\u0644\u0649 \u0627\u0644\u062D\u0627\u0641\u0638\u0629"
126
+ },
127
+ prompt: {
128
+ copy: "\u0646\u0633\u062E \u0627\u0644\u062A\u0639\u0644\u064A\u0645\u0627\u062A",
129
+ openIn: "\u0641\u062A\u062D \u0641\u064A {name}"
121
130
  }
122
131
  },
123
132
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "Azalt",
99
99
  increment: "Art\u0131r"
100
100
  },
101
+ listbox: {
102
+ noData: "M\u0259lumat yoxdur",
103
+ noMatch: "Uy\u011Fun m\u0259lumat tap\u0131lmad\u0131",
104
+ search: "Axtar\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "Ba\u011Fla"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "Kodu bufer\u0259 kopyala"
125
+ },
126
+ prompt: {
127
+ copy: "T\u0259limat\u0131 kopyala",
128
+ openIn: "{name} il\u0259 a\xE7"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "\u041F\u0430\u043C\u0435\u043D\u0448\u044B\u0446\u044C",
99
99
  increment: "\u041F\u0430\u0432\u044F\u043B\u0456\u0447\u044B\u0446\u044C"
100
100
  },
101
+ listbox: {
102
+ noData: "\u041D\u044F\u043C\u0430 \u0434\u0430\u043D\u044B\u0445",
103
+ noMatch: "\u0421\u0443\u043F\u0430\u0434\u0437\u0435\u043D\u043D\u044F\u045E \u043D\u0435 \u0437\u043D\u043E\u0439\u0434\u0437\u0435\u043D\u0430",
104
+ search: "\u041F\u043E\u0448\u0443\u043A\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "\u0417\u0430\u043A\u0440\u044B\u0446\u044C"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "\u0421\u043A\u0430\u043F\u0456\u044F\u0432\u0430\u0446\u044C \u043A\u043E\u0434 \u0443 \u0431\u0443\u0444\u0435\u0440 \u0430\u0431\u043C\u0435\u043D\u0443"
125
+ },
126
+ prompt: {
127
+ copy: "\u0421\u043A\u0430\u043F\u0456\u044F\u0432\u0430\u0446\u044C \u0437\u0430\u043F\u044B\u0442",
128
+ openIn: "\u0410\u0434\u043A\u0440\u044B\u0446\u044C \u0443 {name}"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "\u041D\u0430\u043C\u0430\u043B\u044F\u0432\u0430\u043D\u0435",
99
99
  increment: "\u0423\u0432\u0435\u043B\u0438\u0447\u0430\u0432\u0430\u043D\u0435"
100
100
  },
101
+ listbox: {
102
+ noData: "\u041D\u044F\u043C\u0430 \u0434\u0430\u043D\u043D\u0438",
103
+ noMatch: "\u041D\u044F\u043C\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438",
104
+ search: "\u041F\u043E\u0442\u044A\u0440\u0441\u0435\u0442\u0435\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0435\u0442\u0435"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "\u041A\u043E\u043F\u0438\u0440\u0430\u0439 \u043A\u043E\u0434\u0430 \u0432 \u043A\u043B\u0438\u043F\u0431\u043E\u0440\u0434\u0430"
125
+ },
126
+ prompt: {
127
+ copy: "\u041A\u043E\u043F\u0438\u0440\u0430\u0439 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\u0442\u0430",
128
+ openIn: "\u041E\u0442\u0432\u043E\u0440\u0438 \u0432 {name}"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "\u09B9\u09CD\u09B0\u09BE\u09B8 \u0995\u09B0\u09C1\u09A8",
99
99
  increment: "\u09AC\u09C3\u09A6\u09CD\u09A7\u09BF \u0995\u09B0\u09C1\u09A8"
100
100
  },
101
+ listbox: {
102
+ noData: "\u0995\u09CB\u09A8 \u09A4\u09A5\u09CD\u09AF \u09A8\u09C7\u0987",
103
+ noMatch: "\u0995\u09CB\u09A8 \u09AE\u09BF\u09B2 \u09AA\u09BE\u0993\u09AF\u09BC\u09BE \u09AF\u09BE\u09AF\u09BC\u09A8\u09BF",
104
+ search: "\u0985\u09A8\u09C1\u09B8\u09A8\u09CD\u09A7\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "\u09AC\u09A8\u09CD\u09A7 \u0995\u09B0\u09C1\u09A8"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "\u0995\u09CB\u09A1 \u0995\u09CD\u09B2\u09BF\u09AA\u09AC\u09CB\u09B0\u09CD\u09A1\u09C7 \u0995\u09AA\u09BF \u0995\u09B0\u09C1\u09A8"
125
+ },
126
+ prompt: {
127
+ copy: "\u09AA\u09CD\u09B0\u09AE\u09CD\u09AA\u099F \u0995\u09AA\u09BF \u0995\u09B0\u09C1\u09A8",
128
+ openIn: "{name}-\u098F \u0996\u09C1\u09B2\u09C1\u09A8"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "Decrementar",
99
99
  increment: "Incrementar"
100
100
  },
101
+ listbox: {
102
+ noData: "Sense dades",
103
+ noMatch: "No hi ha dades coincidents",
104
+ search: "Cerca\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "Tancar"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "Copiar codi al portapapers"
125
+ },
126
+ prompt: {
127
+ copy: "Copiar instrucci\xF3",
128
+ openIn: "Obrir a {name}"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -28,7 +28,7 @@ export default defineLocale({
28
28
  prev: "\u067E\u06CE\u0634\u062A\u0631"
29
29
  },
30
30
  chatPrompt: {
31
- placeholder: "\u0646\u0627\u0645\u06D5\u06A9\u06D5\u062A \u0644\u06CE\u0631\u06D5 \u0628\u0646\u0648\u0633\u06D5..."
31
+ placeholder: "\u0646\u0627\u0645\u06D5\u06A9\u06D5\u062A \u0644\u06CE\u0631\u06D5 \u0628\u0646\u0648\u0633\u06D5\u2026"
32
32
  },
33
33
  chatPromptSubmit: {
34
34
  label: "\u0646\u0627\u0631\u062F\u0646"
@@ -99,6 +99,11 @@ export default defineLocale({
99
99
  decrement: "\u06A9\u06D5\u0645\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5",
100
100
  increment: "\u0632\u06CC\u0627\u062F\u06A9\u0631\u062F\u0646"
101
101
  },
102
+ listbox: {
103
+ noData: "\u0647\u06CC\u0686 \u062F\u0627\u062A\u0627\u06CC\u06D5\u06A9 \u0646\u06CC\u06CC\u06D5",
104
+ noMatch: "\u0647\u06CC\u0686 \u0626\u06D5\u0646\u062C\u0627\u0645\u06CE\u06A9 \u0646\u06D5\u062F\u06C6\u0632\u0631\u0627\u06CC\u06D5\u0648\u06D5",
105
+ search: "\u06AF\u06D5\u0695\u0627\u0646\u2026"
106
+ },
102
107
  modal: {
103
108
  close: "\u062F\u0627\u062E\u0633\u062A\u0646"
104
109
  },
@@ -118,6 +123,10 @@ export default defineLocale({
118
123
  },
119
124
  pre: {
120
125
  copy: "\u0644\u06D5\u0628\u06D5\u0631\u06AF\u0631\u062A\u0646\u06D5\u0648\u06D5\u06CC \u06A9\u06C6\u062F"
126
+ },
127
+ prompt: {
128
+ copy: "\u0644\u06D5\u0628\u06D5\u0631\u06AF\u0631\u062A\u0646\u06D5\u0648\u06D5\u06CC \u0641\u06D5\u0631\u0645\u0627\u0646",
129
+ openIn: "\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5 \u0644\u06D5 {name}"
121
130
  }
122
131
  },
123
132
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "Sn\xED\u017Eit",
99
99
  increment: "Zv\xFD\u0161it"
100
100
  },
101
+ listbox: {
102
+ noData: "\u017D\xE1dn\xE1 data",
103
+ noMatch: "\u017D\xE1dn\xE1 shoda",
104
+ search: "Hledat\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "Zav\u0159\xEDt"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "Kop\xEDrovat k\xF3d do schr\xE1nky"
125
+ },
126
+ prompt: {
127
+ copy: "Kop\xEDrovat prompt",
128
+ openIn: "Otev\u0159\xEDt v {name}"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "Reducer",
99
99
  increment: "\xD8g"
100
100
  },
101
+ listbox: {
102
+ noData: "Ingen data",
103
+ noMatch: "Ingen matchende data",
104
+ search: "S\xF8g\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "Luk"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "Kopi\xE9r kode til udklipsholder"
125
+ },
126
+ prompt: {
127
+ copy: "Kopi\xE9r prompt",
128
+ openIn: "\xC5bn i {name}"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "Verringern",
99
99
  increment: "Erh\xF6hen"
100
100
  },
101
+ listbox: {
102
+ noData: "Keine Daten",
103
+ noMatch: "Nichts gefunden",
104
+ search: "Suchen\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "Schlie\xDFen"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "Code in die Zwischenablage kopieren"
125
+ },
126
+ prompt: {
127
+ copy: "Prompt kopieren",
128
+ openIn: "In {name} \xF6ffnen"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "Verringern",
99
99
  increment: "Erh\xF6hen"
100
100
  },
101
+ listbox: {
102
+ noData: "Keine Daten",
103
+ noMatch: "Nichts gefunden",
104
+ search: "Suchen\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "Schliessen"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "Code in die Zwischenablage kopieren"
125
+ },
126
+ prompt: {
127
+ copy: "Prompt kopieren",
128
+ openIn: "In {name} \xF6ffnen"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "\u039C\u03B5\u03AF\u03C9\u03C3\u03B7",
99
99
  increment: "\u0391\u03CD\u03BE\u03B7\u03C3\u03B7"
100
100
  },
101
+ listbox: {
102
+ noData: "\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B4\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1",
103
+ noMatch: "\u0394\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B1\u03BD \u03B4\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1",
104
+ search: "\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u03BA\u03CE\u03B4\u03B9\u03BA\u03B1 \u03C3\u03C4\u03BF \u03C0\u03C1\u03CC\u03C7\u03B5\u03B9\u03C1\u03BF"
125
+ },
126
+ prompt: {
127
+ copy: "\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u03B5\u03BD\u03C4\u03BF\u03BB\u03AE\u03C2",
128
+ openIn: "\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u03C3\u03B5 {name}"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -93,6 +93,11 @@ export default defineLocale({
93
93
  decrement: "Decrement",
94
94
  increment: "Increment"
95
95
  },
96
+ listbox: {
97
+ noData: "No data",
98
+ noMatch: "No matching data",
99
+ search: "Search\u2026"
100
+ },
96
101
  modal: {
97
102
  close: "Close"
98
103
  },
@@ -112,10 +117,14 @@ export default defineLocale({
112
117
  },
113
118
  pre: {
114
119
  copy: "Copy code to clipboard"
120
+ },
121
+ prompt: {
122
+ copy: "Copy prompt",
123
+ openIn: "Open in {name}"
115
124
  }
116
125
  },
117
126
  chatReasoning: {
118
- thinking: "Thinking...",
127
+ thinking: "Thinking\u2026",
119
128
  thought: "Thought",
120
129
  thoughtFor: "Thought for {duration}"
121
130
  },
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "Decrementar",
99
99
  increment: "Incrementar"
100
100
  },
101
+ listbox: {
102
+ noData: "Sin datos",
103
+ noMatch: "No hay datos coincidentes",
104
+ search: "Buscar\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "Cerrar"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "Copiar c\xF3digo al portapapeles"
125
+ },
126
+ prompt: {
127
+ copy: "Copiar prompt",
128
+ openIn: "Abrir en {name}"
120
129
  }
121
130
  },
122
131
  sidebar: {
@@ -98,6 +98,11 @@ export default defineLocale({
98
98
  decrement: "V\xE4henda",
99
99
  increment: "Suurenda"
100
100
  },
101
+ listbox: {
102
+ noData: "Pole andmeid",
103
+ noMatch: "Pole vastavaid andmeid",
104
+ search: "Otsi\u2026"
105
+ },
101
106
  modal: {
102
107
  close: "Sulge"
103
108
  },
@@ -117,6 +122,10 @@ export default defineLocale({
117
122
  },
118
123
  pre: {
119
124
  copy: "Kopeeri kood l\xF5ikelauale"
125
+ },
126
+ prompt: {
127
+ copy: "Kopeeri viip",
128
+ openIn: "Ava rakenduses {name}"
120
129
  }
121
130
  },
122
131
  sidebar: {