@xleddyl/443-components-vue 0.5.0 → 0.6.2

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 (315) hide show
  1. package/README.md +25 -6
  2. package/dist/chart/BarChart.vue +11 -4
  3. package/dist/chart/BarChart.vue.d.ts +2 -0
  4. package/dist/chart/ChartLegend.vue +43 -4
  5. package/dist/chart/ChartLegend.vue.d.ts +4 -2
  6. package/dist/chart/ChartPanel.vue +10 -10
  7. package/dist/chart/ChartPanel.vue.d.ts +11 -8
  8. package/dist/chart/ChartSummary.vue +8 -3
  9. package/dist/chart/ChartSummary.vue.d.ts +3 -1
  10. package/dist/chart/DoughnutChart.vue +11 -4
  11. package/dist/chart/LineChart.vue +8 -2
  12. package/dist/chart/LineChart.vue.d.ts +2 -0
  13. package/dist/chart/chart.css +19 -0
  14. package/dist/chart/patterns.d.ts +6 -0
  15. package/dist/chart/patterns.mjs +79 -0
  16. package/dist/chart/types.d.ts +5 -0
  17. package/dist/chart/useChartColors.mjs +1 -1
  18. package/dist/components/core/Button.vue +11 -1
  19. package/dist/components/core/Button.vue.d.ts +1 -1
  20. package/dist/components/core/FieldMessage.vue +6 -0
  21. package/dist/components/core/FieldMessage.vue.d.ts +1 -1
  22. package/dist/components/core/Form.vue +18 -1
  23. package/dist/components/core/FormAlerts.vue +41 -3
  24. package/dist/components/core/FormField.vue +43 -24
  25. package/dist/components/core/Input.vue.d.ts +6 -6
  26. package/dist/components/core/Root.vue +6 -1
  27. package/dist/components/core/Root.vue.d.ts +2 -2
  28. package/dist/components/core/Spinner.vue +6 -11
  29. package/dist/components/core/Spinner.vue.d.ts +2 -2
  30. package/dist/components/core/Textarea.vue.d.ts +2 -2
  31. package/dist/components/core/VisuallyHidden.vue.d.ts +2 -2
  32. package/dist/components/data/Avatar.vue +8 -5
  33. package/dist/components/data/AvatarGroup.vue +6 -3
  34. package/dist/components/data/Badge.vue.d.ts +1 -1
  35. package/dist/components/data/FilterPills.vue +18 -2
  36. package/dist/components/data/Pagination.vue +24 -18
  37. package/dist/components/data/Pagination.vue.d.ts +2 -2
  38. package/dist/components/data/SelectionBar.vue +32 -3
  39. package/dist/components/data/Stat.vue +7 -1
  40. package/dist/components/data/Stat.vue.d.ts +2 -2
  41. package/dist/components/data/Table.vue +62 -14
  42. package/dist/components/data/Tag.vue +24 -4
  43. package/dist/components/data/Tag.vue.d.ts +3 -3
  44. package/dist/components/data/Timeline.vue +12 -1
  45. package/dist/components/data/Tree.vue +137 -36
  46. package/dist/components/data/Tree.vue.d.ts +13 -14
  47. package/dist/components/data/types.d.ts +2 -1
  48. package/dist/components/feedback/Alert.vue +18 -9
  49. package/dist/components/feedback/Alert.vue.d.ts +2 -2
  50. package/dist/components/feedback/LoadingOverlay.vue +35 -3
  51. package/dist/components/feedback/Meter.vue +28 -3
  52. package/dist/components/feedback/Progress.vue +2 -7
  53. package/dist/components/feedback/Progress.vue.d.ts +1 -1
  54. package/dist/components/feedback/ProgressRing.vue +2 -6
  55. package/dist/components/feedback/ProgressRing.vue.d.ts +1 -1
  56. package/dist/components/forms/Calendar.vue +49 -26
  57. package/dist/components/forms/Calendar.vue.d.ts +9 -5
  58. package/dist/components/forms/CheckboxGroup.vue +14 -4
  59. package/dist/components/forms/CheckboxGroup.vue.d.ts +1 -0
  60. package/dist/components/forms/ColorInput.vue +68 -15
  61. package/dist/components/forms/ColorInput.vue.d.ts +16 -13
  62. package/dist/components/forms/Combobox.vue +18 -4
  63. package/dist/components/forms/DateInput.vue.d.ts +6 -6
  64. package/dist/components/forms/DatePicker.vue +23 -7
  65. package/dist/components/forms/DatePicker.vue.d.ts +4 -2
  66. package/dist/components/forms/FileInput.vue +31 -13
  67. package/dist/components/forms/FileInput.vue.d.ts +2 -2
  68. package/dist/components/forms/InputAddon.vue +18 -2
  69. package/dist/components/forms/InputGroup.vue +27 -0
  70. package/dist/components/forms/InputGroup.vue.d.ts +2 -0
  71. package/dist/components/forms/NumberInput.vue +6 -7
  72. package/dist/components/forms/NumberInput.vue.d.ts +6 -6
  73. package/dist/components/forms/PasswordInput.vue +12 -6
  74. package/dist/components/forms/PasswordInput.vue.d.ts +6 -7
  75. package/dist/components/forms/PinInput.vue +11 -1
  76. package/dist/components/forms/PinInput.vue.d.ts +8 -6
  77. package/dist/components/forms/RadioGroup.vue +15 -5
  78. package/dist/components/forms/RadioGroup.vue.d.ts +1 -0
  79. package/dist/components/forms/SegmentedControl.vue +15 -10
  80. package/dist/components/forms/SegmentedControl.vue.d.ts +1 -0
  81. package/dist/components/forms/Slider.vue +9 -0
  82. package/dist/components/forms/Slider.vue.d.ts +8 -6
  83. package/dist/components/forms/Switch.vue +7 -0
  84. package/dist/components/forms/Switch.vue.d.ts +2 -2
  85. package/dist/components/forms/TimeInput.vue.d.ts +6 -6
  86. package/dist/components/forms/types.d.ts +4 -0
  87. package/dist/components/layout/Accordion.vue.d.ts +2 -2
  88. package/dist/components/layout/AppShell.vue +40 -18
  89. package/dist/components/layout/AppShell.vue.d.ts +11 -9
  90. package/dist/components/layout/Card.vue +50 -16
  91. package/dist/components/layout/Card.vue.d.ts +13 -11
  92. package/dist/components/layout/CopyButton.vue +13 -5
  93. package/dist/components/layout/CopyButton.vue.d.ts +3 -3
  94. package/dist/components/layout/NavLink.vue +10 -1
  95. package/dist/components/layout/NavLink.vue.d.ts +2 -2
  96. package/dist/components/layout/PageHeader.vue +2 -2
  97. package/dist/components/layout/Separator.vue +6 -3
  98. package/dist/components/layout/Sidebar.vue +14 -7
  99. package/dist/components/layout/Sidebar.vue.d.ts +0 -2
  100. package/dist/components/layout/SidebarNav.vue +16 -44
  101. package/dist/components/layout/Stack.vue.d.ts +2 -2
  102. package/dist/components/layout/Tabs.vue +10 -18
  103. package/dist/components/layout/Tabs.vue.d.ts +2 -2
  104. package/dist/components/layout/Toolbar.vue +10 -4
  105. package/dist/components/layout/Toolbar.vue.d.ts +1 -0
  106. package/dist/components/layout/types.d.ts +1 -0
  107. package/dist/components/overlays/CommandPalette.vue +8 -4
  108. package/dist/components/overlays/CommandPalette.vue.d.ts +3 -8
  109. package/dist/components/overlays/ConfirmDialog.vue +7 -5
  110. package/dist/components/overlays/ConfirmDialog.vue.d.ts +12 -8
  111. package/dist/components/overlays/ConfirmHost.vue +22 -19
  112. package/dist/components/overlays/ConfirmHost.vue.d.ts +8 -6
  113. package/dist/components/overlays/ContextMenu.vue +9 -11
  114. package/dist/components/overlays/ContextMenu.vue.d.ts +2 -2
  115. package/dist/components/overlays/Drawer.vue +2 -0
  116. package/dist/components/overlays/Drawer.vue.d.ts +4 -2
  117. package/dist/components/overlays/DropdownMenu.vue +13 -21
  118. package/dist/components/overlays/DropdownMenu.vue.d.ts +2 -2
  119. package/dist/components/overlays/HoverCard.vue +8 -2
  120. package/dist/components/overlays/HoverCard.vue.d.ts +2 -2
  121. package/dist/components/overlays/Modal.vue +2 -0
  122. package/dist/components/overlays/Modal.vue.d.ts +4 -2
  123. package/dist/components/overlays/Popover.vue +19 -4
  124. package/dist/components/overlays/Popover.vue.d.ts +2 -2
  125. package/dist/components/overlays/Toaster.vue +39 -7
  126. package/dist/components/overlays/Tooltip.vue +39 -14
  127. package/dist/components/overlays/types.d.ts +6 -0
  128. package/dist/components/templates/AccountMenu.vue.d.ts +2 -2
  129. package/dist/components/templates/AppearanceSettings.vue +83 -77
  130. package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
  131. package/dist/components/templates/AuthLayout.vue +2 -2
  132. package/dist/components/templates/Brand.vue.d.ts +2 -2
  133. package/dist/components/templates/DashboardLayout.vue +3 -7
  134. package/dist/components/templates/DashboardLayout.vue.d.ts +8 -18
  135. package/dist/components/templates/DetailPage.vue +3 -1
  136. package/dist/components/templates/DetailPage.vue.d.ts +2 -2
  137. package/dist/components/templates/ErrorPage.vue +11 -5
  138. package/dist/components/templates/ErrorPage.vue.d.ts +10 -6
  139. package/dist/components/templates/FormPage.vue +16 -3
  140. package/dist/components/templates/ListPage.vue +19 -6
  141. package/dist/components/templates/ListPage.vue.d.ts +1 -0
  142. package/dist/components/templates/NotFoundPage.vue +2 -0
  143. package/dist/components/templates/NotFoundPage.vue.d.ts +4 -0
  144. package/dist/components/templates/SaveBar.vue +18 -3
  145. package/dist/components/templates/SaveBar.vue.d.ts +5 -5
  146. package/dist/components/templates/SettingsGroup.vue +1 -1
  147. package/dist/components/templates/SettingsGroup.vue.d.ts +3 -1
  148. package/dist/components/templates/SettingsModal.vue +73 -46
  149. package/dist/components/templates/SettingsModal.vue.d.ts +9 -11
  150. package/dist/components/templates/SettingsPage.vue.d.ts +2 -2
  151. package/dist/components/templates/SettingsSection.vue.d.ts +4 -2
  152. package/dist/components/templates/types.d.ts +4 -0
  153. package/dist/composables/useAlert.mjs +5 -10
  154. package/dist/composables/useConfirm.mjs +5 -5
  155. package/dist/composables/useField.d.ts +4 -0
  156. package/dist/composables/useField.mjs +16 -5
  157. package/dist/composables/useFileDrop.mjs +2 -1
  158. package/dist/composables/useOverlay.mjs +2 -1
  159. package/dist/composables/usePreset.mjs +4 -10
  160. package/dist/composables/usePrompt.mjs +6 -13
  161. package/dist/composables/useScrollLock.mjs +4 -3
  162. package/dist/composables/useTheme.mjs +3 -11
  163. package/dist/composables/useToast.mjs +2 -1
  164. package/dist/editor/RichTextEditor.vue +31 -6
  165. package/dist/editor/RichTextEditor.vue.d.ts +2 -2
  166. package/dist/editor/rich-text-editor.css +9 -4
  167. package/dist/grid/DataGrid.vue +72 -12
  168. package/dist/grid/GridToolbar.vue +1 -1
  169. package/dist/grid/GridToolbar.vue.d.ts +2 -2
  170. package/dist/grid/cells/BadgeCell.vue +3 -1
  171. package/dist/grid/cells/BadgeCell.vue.d.ts +17 -3
  172. package/dist/grid/cells/DateCell.vue +3 -1
  173. package/dist/grid/cells/DateCell.vue.d.ts +17 -3
  174. package/dist/grid/cells/EmptyCell.vue +15 -0
  175. package/dist/grid/cells/EmptyCell.vue.d.ts +392 -0
  176. package/dist/grid/cells/LinkCell.vue +9 -2
  177. package/dist/grid/cells/LinkCell.vue.d.ts +17 -3
  178. package/dist/grid/data-grid.css +5 -5
  179. package/dist/grid/types.d.ts +2 -0
  180. package/dist/internal/core/ButtonContent.vue +3 -0
  181. package/dist/internal/core/LiveRegion.vue +26 -0
  182. package/dist/internal/core/LiveRegion.vue.d.ts +393 -0
  183. package/dist/internal/core/copy.d.ts +6 -0
  184. package/dist/internal/core/copy.mjs +14 -0
  185. package/dist/internal/core/focus.d.ts +6 -0
  186. package/dist/internal/core/focus.mjs +46 -0
  187. package/dist/internal/core/intl.d.ts +4 -2
  188. package/dist/internal/core/intl.mjs +23 -22
  189. package/dist/internal/core/live.d.ts +6 -0
  190. package/dist/internal/core/live.mjs +22 -0
  191. package/dist/internal/core/preset.d.ts +0 -1
  192. package/dist/internal/core/preset.mjs +4 -14
  193. package/dist/internal/core/resize.d.ts +1 -0
  194. package/dist/internal/core/resize.mjs +11 -0
  195. package/dist/internal/core/roving.d.ts +7 -0
  196. package/dist/internal/core/roving.mjs +19 -1
  197. package/dist/internal/core/scroll-edges.d.ts +5 -0
  198. package/dist/internal/core/scroll-edges.mjs +63 -0
  199. package/dist/internal/core/storage.d.ts +2 -0
  200. package/dist/internal/core/storage.mjs +8 -0
  201. package/dist/internal/core/theme.d.ts +0 -1
  202. package/dist/internal/core/theme.mjs +4 -13
  203. package/dist/internal/core/tone.d.ts +1 -0
  204. package/dist/internal/core/tone.mjs +4 -0
  205. package/dist/internal/core/transition.d.ts +1 -0
  206. package/dist/internal/core/transition.mjs +20 -0
  207. package/dist/internal/data/rows.mjs +6 -5
  208. package/dist/internal/data/tree.d.ts +2 -3
  209. package/dist/internal/feedback/LoadingHost.vue +16 -6
  210. package/dist/internal/feedback/loading.mjs +2 -1
  211. package/dist/internal/feedback/progress.d.ts +12 -0
  212. package/dist/internal/feedback/progress.mjs +13 -0
  213. package/dist/internal/floating/layer.d.ts +1 -1
  214. package/dist/internal/floating/layer.mjs +17 -10
  215. package/dist/internal/forms/keys.d.ts +4 -0
  216. package/dist/internal/forms/keys.mjs +1 -0
  217. package/dist/internal/forms/name.d.ts +2 -0
  218. package/dist/internal/forms/name.mjs +12 -0
  219. package/dist/internal/forms/standard-schema.d.ts +0 -2
  220. package/dist/internal/forms/standard-schema.mjs +0 -18
  221. package/dist/internal/layout/NavGroup.vue +104 -0
  222. package/dist/internal/layout/NavGroup.vue.d.ts +412 -0
  223. package/dist/internal/overlays/DialogFrame.vue +53 -6
  224. package/dist/internal/overlays/DialogFrame.vue.d.ts +5 -2
  225. package/dist/internal/overlays/MenuList.vue +4 -11
  226. package/dist/internal/overlays/MenuList.vue.d.ts +6 -6
  227. package/dist/internal/overlays/OverlayView.vue +2 -0
  228. package/dist/internal/overlays/OverlayView.vue.d.ts +8 -6
  229. package/dist/internal/overlays/confirm.d.ts +6 -1
  230. package/dist/internal/overlays/confirm.mjs +5 -2
  231. package/dist/internal/overlays/dialog.d.ts +1 -0
  232. package/dist/internal/overlays/dialog.mjs +9 -9
  233. package/dist/internal/overlays/hover.d.ts +1 -0
  234. package/dist/internal/overlays/hover.mjs +20 -3
  235. package/dist/internal/overlays/menu.d.ts +9 -0
  236. package/dist/internal/overlays/menu.mjs +15 -0
  237. package/dist/internal/overlays/stack.d.ts +1 -0
  238. package/dist/locale/en.mjs +70 -18
  239. package/dist/locale/index.d.ts +1 -1
  240. package/dist/locale/index.mjs +5 -11
  241. package/dist/locale/it.mjs +70 -18
  242. package/dist/locale/types.d.ts +54 -2
  243. package/dist/nuxt/runtime/RouteAnnouncer.vue +21 -0
  244. package/dist/nuxt/runtime/RouteAnnouncer.vue.d.ts +3 -0
  245. package/dist/nuxt/runtime/layout-head.d.ts +2 -0
  246. package/dist/nuxt/runtime/layout-head.mjs +13 -0
  247. package/dist/nuxt/runtime/layouts/auth.vue +4 -0
  248. package/dist/nuxt/runtime/layouts/auth.vue.d.ts +2 -2
  249. package/dist/nuxt/runtime/layouts/dashboard.vue +4 -0
  250. package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +2 -2
  251. package/dist/nuxt/runtime/locale.mjs +9 -1
  252. package/dist/nuxt/runtime/theme.mjs +17 -12
  253. package/dist/styles/base.css +0 -13
  254. package/dist/styles/core/button.css +8 -8
  255. package/dist/styles/core/field-message.css +2 -2
  256. package/dist/styles/core/form-field.css +11 -2
  257. package/dist/styles/core/input.css +4 -7
  258. package/dist/styles/core/kbd.css +0 -1
  259. package/dist/styles/data/badge.css +8 -4
  260. package/dist/styles/data/description-list.css +2 -2
  261. package/dist/styles/data/filter-pills.css +5 -8
  262. package/dist/styles/data/pagination.css +2 -2
  263. package/dist/styles/data/stat.css +3 -3
  264. package/dist/styles/data/table.css +2 -2
  265. package/dist/styles/data/tag.css +1 -2
  266. package/dist/styles/data/timeline.css +1 -1
  267. package/dist/styles/data/tree.css +31 -10
  268. package/dist/styles/feedback/alert.css +0 -3
  269. package/dist/styles/feedback/loading-host.css +4 -0
  270. package/dist/styles/feedback/loading-overlay.css +4 -0
  271. package/dist/styles/forced-colors.css +215 -0
  272. package/dist/styles/forms/calendar.css +2 -2
  273. package/dist/styles/forms/choice.css +2 -2
  274. package/dist/styles/forms/color-input.css +1 -1
  275. package/dist/styles/forms/combobox.css +2 -24
  276. package/dist/styles/forms/date-input.css +2 -2
  277. package/dist/styles/forms/date-picker.css +3 -7
  278. package/dist/styles/forms/file-input.css +4 -3
  279. package/dist/styles/forms/input-group.css +6 -0
  280. package/dist/styles/forms/number-input.css +2 -2
  281. package/dist/styles/forms/password-input.css +5 -2
  282. package/dist/styles/forms/pin-input.css +4 -2
  283. package/dist/styles/forms/segmented.css +2 -2
  284. package/dist/styles/forms/select.css +6 -6
  285. package/dist/styles/forms/slider.css +5 -4
  286. package/dist/styles/forms/switch.css +5 -1
  287. package/dist/styles/index.css +1 -0
  288. package/dist/styles/layout/app-shell.css +15 -3
  289. package/dist/styles/layout/copy-button.css +1 -1
  290. package/dist/styles/layout/nav-link.css +1 -33
  291. package/dist/styles/layout/separator.css +1 -1
  292. package/dist/styles/layout/sidebar-nav.css +15 -4
  293. package/dist/styles/layout/sidebar.css +20 -6
  294. package/dist/styles/layout/tabs.css +9 -4
  295. package/dist/styles/layout/theme-switch.css +0 -6
  296. package/dist/styles/overlays/command.css +9 -15
  297. package/dist/styles/overlays/confirm.css +1 -1
  298. package/dist/styles/overlays/drawer.css +0 -1
  299. package/dist/styles/overlays/menu.css +2 -17
  300. package/dist/styles/overlays/modal.css +29 -6
  301. package/dist/styles/overlays/toast.css +1 -2
  302. package/dist/styles/presets.css +4 -4
  303. package/dist/styles/shared.css +96 -3
  304. package/dist/styles/templates/account-menu.css +3 -3
  305. package/dist/styles/templates/auth-layout.css +1 -1
  306. package/dist/styles/templates/brand.css +3 -3
  307. package/dist/styles/templates/empty-page.css +1 -1
  308. package/dist/styles/templates/form-page.css +10 -0
  309. package/dist/styles/templates/save-bar.css +10 -0
  310. package/dist/styles/templates/settings-modal.css +42 -44
  311. package/dist/styles/templates/settings-page.css +3 -3
  312. package/dist/styles/tokens.css +12 -2
  313. package/package.json +1 -1
  314. package/dist/internal/overlays/focus.d.ts +0 -1
  315. package/dist/internal/overlays/focus.mjs +0 -24
@@ -23,7 +23,12 @@ export const it = {
23
23
  retry: "Riprova",
24
24
  unsavedChanges: "Modifiche non salvate",
25
25
  somethingWentWrong: "Qualcosa \xE8 andato storto",
26
- selected: "{count} selezionato | {count} selezionati"
26
+ selected: "{count} selezionato | {count} selezionati",
27
+ removeItem: "Rimuovi {label}",
28
+ opensInNewTab: "(si apre in una nuova scheda)",
29
+ copyFailed: "Impossibile copiare",
30
+ readonly: "Sola lettura",
31
+ empty: "Vuoto"
27
32
  },
28
33
  form: {
29
34
  required: "Campo obbligatorio",
@@ -34,7 +39,8 @@ export const it = {
34
39
  minItems: "Seleziona almeno {count} elemento | Seleziona almeno {count} elementi",
35
40
  maxItems: "Seleziona al massimo {count} elemento | Seleziona al massimo {count} elementi",
36
41
  pattern: "Formato non valido",
37
- invalid: "Valore non valido"
42
+ invalid: "Valore non valido",
43
+ requiredHint: "(obbligatorio)"
38
44
  },
39
45
  editor: {
40
46
  bold: "Grassetto",
@@ -52,7 +58,9 @@ export const it = {
52
58
  linkUrl: "URL del link",
53
59
  applyLink: "Applica",
54
60
  removeLink: "Rimuovi link",
55
- characters: "{count} carattere | {count} caratteri"
61
+ characters: "{count} carattere | {count} caratteri",
62
+ limit: "{count} di {max} caratteri",
63
+ limitReached: "Limite di caratteri raggiunto"
56
64
  },
57
65
  grid: {
58
66
  noRows: "Nessuna riga da mostrare",
@@ -67,10 +75,23 @@ export const it = {
67
75
  previousPage: "Pagina precedente",
68
76
  nextPage: "Pagina successiva",
69
77
  pageStatus: "{from}-{to} di {total}",
70
- selected: "{count} selezionati",
78
+ selected: "{count} selezionato | {count} selezionati",
71
79
  copied: "Copiato negli appunti",
72
80
  yes: "S\xEC",
73
- no: "No"
81
+ no: "No",
82
+ label: "Griglia dati",
83
+ rowCount: "Nessuna riga | {count} riga | {count} righe",
84
+ checked: "selezionato",
85
+ unchecked: "non selezionato",
86
+ indeterminate: "parzialmente selezionato",
87
+ selectRowHint: "Premi Spazio per selezionare questa riga",
88
+ deselectRowHint: "Premi Spazio per deselezionare questa riga",
89
+ toggleRowHint: "Premi Spazio per selezionare o deselezionare la riga",
90
+ rowSelectionDisabled: "Questa riga non pu\xF2 essere selezionata",
91
+ selectAllHint: "Premi Spazio per selezionare o deselezionare tutte le righe",
92
+ selectAllRows: "Seleziona tutte le righe",
93
+ sortHint: "Premi Invio per ordinare",
94
+ tooltip: "Suggerimento"
74
95
  },
75
96
  account: {
76
97
  label: "Account"
@@ -95,22 +116,26 @@ export const it = {
95
116
  offline: "offline"
96
117
  },
97
118
  avatarGroup: {
98
- more: "altri"
119
+ more: "altri {count}"
99
120
  },
100
121
  breadcrumbs: {
101
122
  label: "Percorso"
102
123
  },
103
124
  calendar: {
104
125
  previousMonth: "Mese precedente",
105
- nextMonth: "Mese successivo"
126
+ nextMonth: "Mese successivo",
127
+ rangeStart: "inizio intervallo",
128
+ rangeEnd: "fine intervallo"
106
129
  },
107
130
  chart: {
108
131
  empty: "Nessun dato da mostrare",
109
- loading: "Caricamento grafico"
132
+ loading: "Caricamento grafico",
133
+ legend: "Legenda"
110
134
  },
111
135
  colorInput: {
112
136
  pick: "Scegli un colore",
113
- swatches: "Colori predefiniti"
137
+ swatches: "Colori predefiniti",
138
+ invalid: "Inserisci un colore esadecimale, ad esempio #3366ff"
114
139
  },
115
140
  combobox: {
116
141
  clear: "Cancella selezione",
@@ -144,7 +169,8 @@ export const it = {
144
169
  placeholder: "Scegli una data",
145
170
  clear: "Cancella data",
146
171
  dialog: "Scegli la data",
147
- range: "{start} - {end}"
172
+ range: "{start} - {end}",
173
+ rangePending: "{start} - ..."
148
174
  },
149
175
  descriptionList: {
150
176
  empty: "Non impostato"
@@ -192,7 +218,8 @@ export const it = {
192
218
  mixedTitle: "Trascina file o cartelle qui o fai clic per sfogliare",
193
219
  browseDirectory: "Carica una cartella",
194
220
  loading: "Caricamento in corso",
195
- added: "{count} file aggiunto | {count} file aggiunti"
221
+ added: "{count} file aggiunto | {count} file aggiunti",
222
+ rejected: "{count} file non accettato | {count} file non accettati"
196
223
  },
197
224
  filterPills: {
198
225
  label: "Filtri"
@@ -201,7 +228,8 @@ export const it = {
201
228
  toolbar: "Filtra i risultati",
202
229
  emptyTitle: "Ancora niente qui",
203
230
  noResultsDescription: "Prova una ricerca diversa o cancella i filtri.",
204
- clearFilters: "Cancella filtri"
231
+ clearFilters: "Cancella filtri",
232
+ results: "Nessun risultato | {count} risultato | {count} risultati"
205
233
  },
206
234
  numberInput: {
207
235
  increase: "Aumenta",
@@ -209,7 +237,7 @@ export const it = {
209
237
  },
210
238
  pagination: {
211
239
  label: "Paginazione",
212
- page: "Pagina",
240
+ page: "Pagina {page}",
213
241
  previous: "Pagina precedente",
214
242
  next: "Pagina successiva",
215
243
  pageSize: "Righe per pagina",
@@ -267,17 +295,24 @@ export const it = {
267
295
  openNavigation: "Apri navigazione",
268
296
  skipToContent: "Vai al contenuto",
269
297
  main: "Principale",
270
- collapse: "Comprimi barra laterale",
271
- expand: "Espandi barra laterale"
298
+ closeNavigation: "Chiudi navigazione",
299
+ navigation: "Navigazione"
272
300
  },
273
301
  stat: {
274
302
  increased: "Aumento di",
275
- decreased: "Diminuzione di"
303
+ decreased: "Diminuzione di",
304
+ favorable: "favorevole",
305
+ unfavorable: "sfavorevole"
276
306
  },
277
307
  table: {
278
308
  selectAll: "Seleziona tutte le righe",
279
309
  loading: "Caricamento righe",
280
- selectRow: "Seleziona riga {index}"
310
+ selectRow: "Seleziona riga {index}",
311
+ label: "Tabella",
312
+ sortedBy: "Ordinata per {column}, {direction}",
313
+ ascending: "crescente",
314
+ descending: "decrescente",
315
+ sortCleared: "Ordinamento rimosso"
281
316
  },
282
317
  theme: {
283
318
  label: "Tema",
@@ -296,7 +331,24 @@ export const it = {
296
331
  reorderHint: "Premi Alt con la freccia su o gi\xF9 per spostare",
297
332
  reorderNestedHint: "Premi Alt con le frecce per spostare: su e gi\xF9 cambiano la posizione, sinistra e destra il livello",
298
333
  moved: "{label} ora in posizione {position} di {count}",
299
- movedInto: "{label} ora dentro {parent}, in posizione {position} di {count}"
334
+ movedInto: "{label} ora dentro {parent}, in posizione {position} di {count}",
335
+ moveUp: "Sposta {label} in su",
336
+ moveDown: "Sposta {label} in gi\xF9",
337
+ indent: "Aumenta il rientro di {label}",
338
+ outdent: "Riduci il rientro di {label}"
339
+ },
340
+ meter: {
341
+ label: "Indicatore",
342
+ valueText: "{value}, {state}",
343
+ good: "buono",
344
+ fair: "discreto",
345
+ poor: "scarso"
346
+ },
347
+ tone: {
348
+ danger: "Errore",
349
+ warning: "Avviso",
350
+ info: "Informazione",
351
+ success: "Operazione riuscita"
300
352
  }
301
353
  }
302
354
  };
@@ -22,6 +22,11 @@ export interface KMessages {
22
22
  unsavedChanges: string;
23
23
  somethingWentWrong: string;
24
24
  selected: string;
25
+ removeItem: string;
26
+ opensInNewTab: string;
27
+ copyFailed: string;
28
+ readonly: string;
29
+ empty: string;
25
30
  };
26
31
  form: {
27
32
  required: string;
@@ -33,6 +38,7 @@ export interface KMessages {
33
38
  maxItems: string;
34
39
  pattern: string;
35
40
  invalid: string;
41
+ requiredHint: string;
36
42
  };
37
43
  editor: {
38
44
  bold: string;
@@ -51,6 +57,8 @@ export interface KMessages {
51
57
  applyLink: string;
52
58
  removeLink: string;
53
59
  characters: string;
60
+ limit: string;
61
+ limitReached: string;
54
62
  };
55
63
  grid: {
56
64
  noRows: string;
@@ -69,6 +77,19 @@ export interface KMessages {
69
77
  copied: string;
70
78
  yes: string;
71
79
  no: string;
80
+ label: string;
81
+ rowCount: string;
82
+ checked: string;
83
+ unchecked: string;
84
+ indeterminate: string;
85
+ selectRowHint: string;
86
+ deselectRowHint: string;
87
+ toggleRowHint: string;
88
+ rowSelectionDisabled: string;
89
+ selectAllHint: string;
90
+ selectAllRows: string;
91
+ sortHint: string;
92
+ tooltip: string;
72
93
  };
73
94
  account: {
74
95
  label: string;
@@ -101,14 +122,18 @@ export interface KMessages {
101
122
  calendar: {
102
123
  previousMonth: string;
103
124
  nextMonth: string;
125
+ rangeStart: string;
126
+ rangeEnd: string;
104
127
  };
105
128
  chart: {
106
129
  empty: string;
107
130
  loading: string;
131
+ legend: string;
108
132
  };
109
133
  colorInput: {
110
134
  pick: string;
111
135
  swatches: string;
136
+ invalid: string;
112
137
  };
113
138
  combobox: {
114
139
  clear: string;
@@ -143,6 +168,7 @@ export interface KMessages {
143
168
  clear: string;
144
169
  dialog: string;
145
170
  range: string;
171
+ rangePending: string;
146
172
  };
147
173
  descriptionList: {
148
174
  empty: string;
@@ -191,6 +217,7 @@ export interface KMessages {
191
217
  browseDirectory: string;
192
218
  loading: string;
193
219
  added: string;
220
+ rejected: string;
194
221
  };
195
222
  filterPills: {
196
223
  label: string;
@@ -200,6 +227,7 @@ export interface KMessages {
200
227
  emptyTitle: string;
201
228
  noResultsDescription: string;
202
229
  clearFilters: string;
230
+ results: string;
203
231
  };
204
232
  numberInput: {
205
233
  increase: string;
@@ -265,17 +293,24 @@ export interface KMessages {
265
293
  openNavigation: string;
266
294
  skipToContent: string;
267
295
  main: string;
268
- collapse: string;
269
- expand: string;
296
+ closeNavigation: string;
297
+ navigation: string;
270
298
  };
271
299
  stat: {
272
300
  increased: string;
273
301
  decreased: string;
302
+ favorable: string;
303
+ unfavorable: string;
274
304
  };
275
305
  table: {
276
306
  selectAll: string;
277
307
  loading: string;
278
308
  selectRow: string;
309
+ label: string;
310
+ sortedBy: string;
311
+ ascending: string;
312
+ descending: string;
313
+ sortCleared: string;
279
314
  };
280
315
  theme: {
281
316
  label: string;
@@ -295,6 +330,23 @@ export interface KMessages {
295
330
  reorderNestedHint: string;
296
331
  moved: string;
297
332
  movedInto: string;
333
+ moveUp: string;
334
+ moveDown: string;
335
+ indent: string;
336
+ outdent: string;
337
+ };
338
+ meter: {
339
+ label: string;
340
+ valueText: string;
341
+ good: string;
342
+ fair: string;
343
+ poor: string;
344
+ };
345
+ tone: {
346
+ danger: string;
347
+ warning: string;
348
+ info: string;
349
+ success: string;
298
350
  };
299
351
  }
300
352
  export interface KLocale {
@@ -0,0 +1,21 @@
1
+ <template>
2
+ <span
3
+ v-if="announce"
4
+ class="k-route-announcer k-visually-hidden"
5
+ :role="politeness === 'assertive' ? 'alert' : 'status'"
6
+ :aria-live="politeness"
7
+ >{{ message }}</span
8
+ >
9
+ </template>
10
+
11
+ <script setup>
12
+ import { useRouteAnnouncer } from "nuxt/app";
13
+ import { onMounted, ref } from "vue";
14
+ const { message, politeness } = useRouteAnnouncer();
15
+ const announce = ref(false);
16
+ onMounted(
17
+ () => requestAnimationFrame(() => {
18
+ announce.value = !document.querySelector(".nuxt-route-announcer, .k-route-announcer");
19
+ })
20
+ );
21
+ </script>
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<Partial<import("vue").HTMLAttributes & import("vue").ReservedProps>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Partial<import("vue").HTMLAttributes & import("vue").ReservedProps>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import type { MaybeRefOrGetter } from 'vue';
2
+ export declare function useLayoutHead(brandName: MaybeRefOrGetter<string | undefined>): void;
@@ -0,0 +1,13 @@
1
+ import { useHead, useRoute } from "nuxt/app";
2
+ import { toValue } from "vue";
3
+ export function useLayoutHead(brandName) {
4
+ const route = useRoute();
5
+ useHead({
6
+ title: () => typeof route.meta.title === "string" ? route.meta.title : void 0,
7
+ titleTemplate: (title) => {
8
+ const brand = toValue(brandName);
9
+ if (!brand) return title ?? null;
10
+ return title && title !== brand ? `${title} \xB7 ${brand}` : brand;
11
+ }
12
+ });
13
+ }
@@ -17,6 +17,7 @@
17
17
  <slot />
18
18
  </AuthLayout>
19
19
  <OverlayHost v-if="config.toaster !== false" />
20
+ <RouteAnnouncer />
20
21
  </Root>
21
22
  </template>
22
23
 
@@ -26,10 +27,13 @@ import { computed } from "vue";
26
27
  import Root from "../../../components/core/Root.vue";
27
28
  import OverlayHost from "../../../components/overlays/OverlayHost.vue";
28
29
  import AuthLayout from "../../../components/templates/AuthLayout.vue";
30
+ import { useLayoutHead } from "../layout-head";
31
+ import RouteAnnouncer from "../RouteAnnouncer.vue";
29
32
  const appConfig = useAppConfig();
30
33
  const route = useRoute();
31
34
  const config = computed(() => appConfig.k ?? {});
32
35
  const brand = computed(() => config.value.brand ?? {});
36
+ useLayoutHead(() => brand.value.name);
33
37
  const auth = computed(() => config.value.auth ?? {});
34
38
  const title = computed(() => typeof route.meta.title === "string" ? route.meta.title : void 0);
35
39
  const description = computed(
@@ -21,6 +21,7 @@ declare const __VLS_base: import("vue").DefineComponent<Partial<NonNullable<{
21
21
  readonly results?: (string | number) | undefined;
22
22
  readonly placeholder?: string | undefined | undefined;
23
23
  readonly bind?: Record<string, unknown> | undefined;
24
+ readonly dir?: string | undefined | undefined;
24
25
  readonly class?: import("vue").ClassValue;
25
26
  readonly role?: string | undefined | undefined;
26
27
  readonly 'aria-label'?: string | undefined | undefined;
@@ -180,7 +181,6 @@ declare const __VLS_base: import("vue").DefineComponent<Partial<NonNullable<{
180
181
  readonly accesskey?: string | undefined | undefined;
181
182
  readonly contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
182
183
  readonly contextmenu?: string | undefined | undefined;
183
- readonly dir?: string | undefined | undefined;
184
184
  readonly draggable?: (boolean | "true" | "false") | undefined;
185
185
  readonly enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
186
186
  readonly enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
@@ -239,6 +239,7 @@ declare const __VLS_base: import("vue").DefineComponent<Partial<NonNullable<{
239
239
  readonly results?: (string | number) | undefined;
240
240
  readonly placeholder?: string | undefined | undefined;
241
241
  readonly bind?: Record<string, unknown> | undefined;
242
+ readonly dir?: string | undefined | undefined;
242
243
  readonly class?: import("vue").ClassValue;
243
244
  readonly role?: string | undefined | undefined;
244
245
  readonly 'aria-label'?: string | undefined | undefined;
@@ -398,7 +399,6 @@ declare const __VLS_base: import("vue").DefineComponent<Partial<NonNullable<{
398
399
  readonly accesskey?: string | undefined | undefined;
399
400
  readonly contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
400
401
  readonly contextmenu?: string | undefined | undefined;
401
- readonly dir?: string | undefined | undefined;
402
402
  readonly draggable?: (boolean | "true" | "false") | undefined;
403
403
  readonly enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
404
404
  readonly enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
@@ -24,6 +24,7 @@
24
24
  <slot />
25
25
  </DashboardLayout>
26
26
  <OverlayHost v-if="config.toaster !== false" />
27
+ <RouteAnnouncer />
27
28
  </Root>
28
29
  </template>
29
30
 
@@ -33,6 +34,8 @@ import { computed } from "vue";
33
34
  import Root from "../../../components/core/Root.vue";
34
35
  import OverlayHost from "../../../components/overlays/OverlayHost.vue";
35
36
  import DashboardLayout from "../../../components/templates/DashboardLayout.vue";
37
+ import { useLayoutHead } from "../layout-head";
38
+ import RouteAnnouncer from "../RouteAnnouncer.vue";
36
39
  import { navBreadcrumbs, navTarget, toNavSections } from "../../../internal/layout/navigation";
37
40
  import { useDashboard } from "../dashboard";
38
41
  const appConfig = useAppConfig();
@@ -40,6 +43,7 @@ const route = useRoute();
40
43
  const state = useDashboard();
41
44
  const config = computed(() => appConfig.k ?? {});
42
45
  const brand = computed(() => config.value.brand ?? {});
46
+ useLayoutHead(() => brand.value.name);
43
47
  const dashboard = computed(() => config.value.dashboard ?? {});
44
48
  const account = computed(() => state.value.account ?? config.value.account);
45
49
  const settings = computed(() => config.value.settings ?? {});
@@ -21,6 +21,7 @@ declare const __VLS_base: import("vue").DefineComponent<Partial<NonNullable<{
21
21
  readonly results?: (string | number) | undefined;
22
22
  readonly placeholder?: string | undefined | undefined;
23
23
  readonly bind?: Record<string, unknown> | undefined;
24
+ readonly dir?: string | undefined | undefined;
24
25
  readonly class?: import("vue").ClassValue;
25
26
  readonly role?: string | undefined | undefined;
26
27
  readonly 'aria-label'?: string | undefined | undefined;
@@ -180,7 +181,6 @@ declare const __VLS_base: import("vue").DefineComponent<Partial<NonNullable<{
180
181
  readonly accesskey?: string | undefined | undefined;
181
182
  readonly contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
182
183
  readonly contextmenu?: string | undefined | undefined;
183
- readonly dir?: string | undefined | undefined;
184
184
  readonly draggable?: (boolean | "true" | "false") | undefined;
185
185
  readonly enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
186
186
  readonly enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
@@ -239,6 +239,7 @@ declare const __VLS_base: import("vue").DefineComponent<Partial<NonNullable<{
239
239
  readonly results?: (string | number) | undefined;
240
240
  readonly placeholder?: string | undefined | undefined;
241
241
  readonly bind?: Record<string, unknown> | undefined;
242
+ readonly dir?: string | undefined | undefined;
242
243
  readonly class?: import("vue").ClassValue;
243
244
  readonly role?: string | undefined | undefined;
244
245
  readonly 'aria-label'?: string | undefined | undefined;
@@ -398,7 +399,6 @@ declare const __VLS_base: import("vue").DefineComponent<Partial<NonNullable<{
398
399
  readonly accesskey?: string | undefined | undefined;
399
400
  readonly contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
400
401
  readonly contextmenu?: string | undefined | undefined;
401
- readonly dir?: string | undefined | undefined;
402
402
  readonly draggable?: (boolean | "true" | "false") | undefined;
403
403
  readonly enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
404
404
  readonly enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
@@ -1,9 +1,10 @@
1
- import { defineNuxtPlugin, useRuntimeConfig } from "nuxt/app";
1
+ import { defineNuxtPlugin, useHead, useRuntimeConfig } from "nuxt/app";
2
2
  import { computed } from "vue";
3
3
  import { LOCALE_KEY } from "../../internal/keys.mjs";
4
4
  import { defineLocale } from "../../locale/index.mjs";
5
5
  export default defineNuxtPlugin({
6
6
  name: "k:locale",
7
+ enforce: "post",
7
8
  setup(nuxtApp) {
8
9
  const config = useRuntimeConfig().public.k ?? {};
9
10
  const code = computed(
@@ -16,5 +17,12 @@ export default defineNuxtPlugin({
16
17
  return defineLocale({ code: code.value, base, messages: config.messages?.[code.value] });
17
18
  });
18
19
  nuxtApp.vueApp.provide(LOCALE_KEY, locale);
20
+ const owned = () => !nuxtApp.$i18n;
21
+ useHead({
22
+ htmlAttrs: {
23
+ lang: () => owned() ? locale.value.code : void 0,
24
+ dir: () => owned() ? locale.value.dir : void 0
25
+ }
26
+ });
19
27
  }
20
28
  });
@@ -4,22 +4,27 @@ import { isThemePreference, THEME_STORAGE_KEY } from "../../composables/useTheme
4
4
  import { isThemePreset, PRESET_STORAGE_KEY } from "../../internal/core/preset-data.mjs";
5
5
  import { PRESET_KEY, THEME_KEY } from "../../internal/keys.mjs";
6
6
  import { persistentCookieOptions } from "./cookie.mjs";
7
+ function preferenceRef(cookieName, key, isValid, fallback) {
8
+ const store = cookieName === false ? useState(key, () => fallback) : useCookie(cookieName ?? key, { ...persistentCookieOptions, default: () => fallback });
9
+ if (!isValid(store.value)) store.value = fallback;
10
+ return store;
11
+ }
7
12
  export default defineNuxtPlugin({
8
13
  name: "k:theme",
9
14
  setup(nuxtApp) {
10
15
  const config = useRuntimeConfig().public.k ?? {};
11
- const fallback = isThemePreference(config.themeDefault) ? config.themeDefault : "system";
12
- const cookie = config.themeCookie === false ? useState("k-theme", () => fallback) : useCookie(config.themeCookie ?? THEME_STORAGE_KEY, {
13
- ...persistentCookieOptions,
14
- default: () => fallback
15
- });
16
- if (!isThemePreference(cookie.value)) cookie.value = fallback;
17
- const presetFallback = isThemePreset(config.presetDefault) ? config.presetDefault : "default";
18
- const presetCookie = config.presetCookie === false ? useState("k-preset", () => presetFallback) : useCookie(config.presetCookie ?? PRESET_STORAGE_KEY, {
19
- ...persistentCookieOptions,
20
- default: () => presetFallback
21
- });
22
- if (!isThemePreset(presetCookie.value)) presetCookie.value = presetFallback;
16
+ const cookie = preferenceRef(
17
+ config.themeCookie,
18
+ THEME_STORAGE_KEY,
19
+ isThemePreference,
20
+ isThemePreference(config.themeDefault) ? config.themeDefault : "system"
21
+ );
22
+ const presetCookie = preferenceRef(
23
+ config.presetCookie,
24
+ PRESET_STORAGE_KEY,
25
+ isThemePreset,
26
+ isThemePreset(config.presetDefault) ? config.presetDefault : "default"
27
+ );
23
28
  nuxtApp.vueApp.provide(THEME_KEY, cookie);
24
29
  nuxtApp.vueApp.provide(PRESET_KEY, presetCookie);
25
30
  if (config.global) {
@@ -153,19 +153,6 @@ html.k-root > body {
153
153
  }
154
154
  }
155
155
 
156
- @keyframes k-icon-spin {
157
- from {
158
- transform: rotate(-60deg) scale(0.6);
159
- opacity: 0.4;
160
- }
161
- }
162
-
163
- @keyframes k-float {
164
- 50% {
165
- transform: translateY(-3px);
166
- }
167
- }
168
-
169
156
  @keyframes k-pulse {
170
157
  50% {
171
158
  opacity: 0.45;
@@ -59,7 +59,7 @@
59
59
  display: inline-flex;
60
60
  align-items: center;
61
61
  min-width: 0;
62
- overflow: hidden;
62
+ overflow-x: clip;
63
63
  text-overflow: ellipsis;
64
64
  }
65
65
 
@@ -90,7 +90,7 @@
90
90
  --k-btn-size: var(--k-size-sm);
91
91
  font-size: 0.8125rem;
92
92
  padding: 0.25rem 0.625rem;
93
- border-radius: calc(7px * var(--k-radius-scale));
93
+ border-radius: var(--k-radius-sm);
94
94
  }
95
95
 
96
96
  .k-btn-md {
@@ -109,25 +109,25 @@
109
109
 
110
110
  .k-btn-danger {
111
111
  --k-btn-tone: var(--k-danger);
112
- --k-btn-tone-text: var(--k-danger);
112
+ --k-btn-tone-text: var(--k-danger-text);
113
113
  --k-btn-on-tone: var(--k-text-inverted);
114
114
  }
115
115
 
116
116
  .k-btn-info {
117
117
  --k-btn-tone: var(--k-info);
118
- --k-btn-tone-text: var(--k-info);
118
+ --k-btn-tone-text: var(--k-info-text);
119
119
  --k-btn-on-tone: var(--k-text-inverted);
120
120
  }
121
121
 
122
122
  .k-btn-success {
123
- --k-btn-tone: var(--k-success);
124
- --k-btn-tone-text: var(--k-success);
123
+ --k-btn-tone: light-dark(color-mix(in oklab, var(--k-success) 94%, black), var(--k-success));
124
+ --k-btn-tone-text: var(--k-success-text);
125
125
  --k-btn-on-tone: var(--k-text-inverted);
126
126
  }
127
127
 
128
128
  .k-btn-warning {
129
- --k-btn-tone: var(--k-warning);
130
- --k-btn-tone-text: var(--k-warning);
129
+ --k-btn-tone: light-dark(color-mix(in oklab, var(--k-warning) 94%, black), var(--k-warning));
130
+ --k-btn-tone-text: var(--k-warning-text);
131
131
  --k-btn-on-tone: var(--k-text-inverted);
132
132
  }
133
133
 
@@ -2,7 +2,7 @@
2
2
  .k-form-field-error,
3
3
  .k-form-field-warning {
4
4
  --k-icon-size: 0.875rem;
5
- --k-field-message-tone: var(--k-danger);
5
+ --k-field-message-tone: var(--k-danger-text);
6
6
  display: flex;
7
7
  align-items: flex-start;
8
8
  gap: 0.375rem;
@@ -14,7 +14,7 @@
14
14
 
15
15
  .k-field-message-warning,
16
16
  .k-form-field-warning {
17
- --k-field-message-tone: var(--k-warning);
17
+ --k-field-message-tone: var(--k-warning-text);
18
18
  }
19
19
 
20
20
  .k-field-message-neutral {
@@ -34,13 +34,13 @@
34
34
 
35
35
  .k-form-field-required {
36
36
  margin-left: -0.25rem;
37
- color: var(--k-danger);
37
+ color: var(--k-danger-text);
38
38
  }
39
39
 
40
40
  .k-form-field-hint {
41
41
  margin-left: auto;
42
42
  font-size: 0.75rem;
43
- color: var(--k-text-dimmed);
43
+ color: var(--k-text-muted);
44
44
  }
45
45
 
46
46
  .k-form-field-description {
@@ -57,3 +57,12 @@
57
57
  .k-form-field.is-disabled .k-form-field-label {
58
58
  color: var(--k-text-muted);
59
59
  }
60
+
61
+ .k-form-field-messages {
62
+ display: flex;
63
+ flex-direction: column;
64
+ }
65
+
66
+ .k-form-field-messages:empty {
67
+ margin-top: -0.375rem;
68
+ }