@nexdom/uimed-vue 2.0.0-beta.9 → 2.0.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 (220) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +7 -0
  2. package/dist/components/app-bar/app-bar.js +5 -0
  3. package/dist/components/app-bar/app-bar.vue_vue_type_script_setup_true_lang.js +286 -0
  4. package/dist/components/app-bar/types.d.ts +96 -0
  5. package/dist/components/button/button.js +5 -0
  6. package/dist/components/button/button.vue.d.ts +31 -0
  7. package/dist/components/button/button.vue_vue_type_script_setup_true_lang.js +97 -0
  8. package/dist/components/button/types.d.ts +65 -0
  9. package/dist/components/data-sets/data-set/data-set.js +5 -0
  10. package/dist/components/data-sets/data-set/data-set.vue.d.ts +47 -0
  11. package/dist/components/data-sets/data-set/data-set.vue_vue_type_script_setup_true_lang.js +157 -0
  12. package/dist/components/data-sets/data-set/types.d.ts +93 -0
  13. package/dist/components/data-sets/data-set-bar.js +5 -0
  14. package/dist/components/data-sets/data-set-bar.vue_vue_type_script_setup_true_lang.js +99 -0
  15. package/dist/components/data-sets/data-set-item/data-set-item.js +5 -0
  16. package/dist/components/data-sets/data-set-item/data-set-item.vue.d.ts +35 -0
  17. package/dist/components/data-sets/data-set-item/data-set-item.vue_vue_type_script_setup_true_lang.js +57 -0
  18. package/dist/components/data-sets/data-set-item/types.d.ts +42 -0
  19. package/dist/components/details/details.js +5 -0
  20. package/dist/components/details/details.vue.d.ts +28 -0
  21. package/dist/components/details/details.vue_vue_type_script_setup_true_lang.js +56 -0
  22. package/dist/components/details/types.d.ts +29 -0
  23. package/dist/components/dialogs/dialog/dialog-host-key.js +10 -0
  24. package/dist/components/dialogs/dialog/dialog.js +5 -0
  25. package/dist/components/dialogs/dialog/dialog.vue.d.ts +36 -0
  26. package/dist/components/dialogs/dialog/dialog.vue_vue_type_script_setup_true_lang.js +112 -0
  27. package/dist/components/dialogs/dialog/types.d.ts +47 -0
  28. package/dist/components/dialogs/dialog-host.js +5 -0
  29. package/dist/components/dialogs/dialog-host.vue_vue_type_script_setup_true_lang.js +81 -0
  30. package/dist/components/dialogs/toast.js +5 -0
  31. package/dist/components/dialogs/toast.vue_vue_type_script_setup_true_lang.js +35 -0
  32. package/dist/components/footer/footer.js +5 -0
  33. package/dist/components/footer/footer.vue_vue_type_script_setup_true_lang.js +31 -0
  34. package/dist/components/footer/types.d.ts +16 -0
  35. package/dist/components/form/form.js +5 -0
  36. package/dist/components/form/form.vue.d.ts +32 -0
  37. package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js +37 -0
  38. package/dist/components/form/types.d.ts +15 -0
  39. package/dist/components/grid/column/column.js +5 -0
  40. package/dist/components/grid/column/column.vue.d.ts +33 -0
  41. package/dist/components/grid/column/column.vue_vue_type_script_setup_true_lang.js +45 -0
  42. package/dist/components/grid/column/types.d.ts +27 -0
  43. package/dist/components/grid/container/container.js +5 -0
  44. package/dist/components/grid/container/container.vue.d.ts +27 -0
  45. package/dist/components/grid/container/container.vue_vue_type_script_setup_true_lang.js +33 -0
  46. package/dist/components/grid/container/types.d.ts +17 -0
  47. package/dist/components/grid/row/row.js +5 -0
  48. package/dist/components/grid/row/row.vue.d.ts +29 -0
  49. package/dist/components/grid/row/row.vue_vue_type_script_setup_true_lang.js +61 -0
  50. package/dist/components/grid/row/types.d.ts +63 -0
  51. package/dist/components/icon-button/icon-button.js +5 -0
  52. package/dist/components/icon-button/icon-button.vue.d.ts +23 -0
  53. package/dist/components/icon-button/icon-button.vue_vue_type_script_setup_true_lang.js +51 -0
  54. package/dist/components/icon-button/types.d.ts +32 -0
  55. package/dist/components/img/img.js +5 -0
  56. package/dist/components/img/img.vue.d.ts +23 -0
  57. package/dist/components/img/img.vue_vue_type_script_setup_true_lang.js +61 -0
  58. package/dist/components/img/types.d.ts +43 -0
  59. package/dist/components/inputs/autocomplete-field/autocomplete-field.js +5 -0
  60. package/dist/components/inputs/autocomplete-field/autocomplete-field.vue.d.ts +33 -0
  61. package/dist/components/inputs/autocomplete-field/autocomplete-field.vue_vue_type_script_setup_true_lang.js +161 -0
  62. package/dist/components/inputs/autocomplete-field/types.d.ts +84 -0
  63. package/dist/components/inputs/checkbox/checkbox.js +5 -0
  64. package/dist/components/inputs/checkbox/checkbox.vue.d.ts +33 -0
  65. package/dist/components/inputs/checkbox/checkbox.vue_vue_type_script_setup_true_lang.js +71 -0
  66. package/dist/components/inputs/checkbox/types.d.ts +35 -0
  67. package/dist/components/inputs/date-time-field/date-time-field.js +5 -0
  68. package/dist/components/inputs/date-time-field/date-time-field.vue.d.ts +32 -0
  69. package/dist/components/inputs/date-time-field/date-time-field.vue_vue_type_script_setup_true_lang.js +205 -0
  70. package/dist/components/inputs/date-time-field/types.d.ts +84 -0
  71. package/dist/components/inputs/field-loader.js +5 -0
  72. package/dist/components/inputs/field-loader.vue_vue_type_script_setup_true_lang.js +30 -0
  73. package/dist/components/inputs/mask-field/mask-field.js +5 -0
  74. package/dist/components/inputs/mask-field/mask-field.vue.d.ts +32 -0
  75. package/dist/components/inputs/mask-field/mask-field.vue_vue_type_script_setup_true_lang.js +120 -0
  76. package/dist/components/inputs/mask-field/types.d.ts +118 -0
  77. package/dist/components/inputs/text-field/text-field.js +5 -0
  78. package/dist/components/inputs/text-field/text-field.vue.d.ts +30 -0
  79. package/dist/components/inputs/text-field/text-field.vue_vue_type_script_setup_true_lang.js +119 -0
  80. package/dist/components/inputs/text-field/types.d.ts +70 -0
  81. package/dist/components/link/link.js +5 -0
  82. package/dist/components/link/link.vue.d.ts +27 -0
  83. package/dist/components/link/link.vue_vue_type_script_setup_true_lang.js +32 -0
  84. package/dist/components/link/types.d.ts +18 -0
  85. package/dist/components/main/main.js +5 -0
  86. package/dist/components/main/main.vue.d.ts +33 -0
  87. package/dist/components/main/main.vue_vue_type_script_setup_true_lang.js +104 -0
  88. package/dist/components/main/types.d.ts +75 -0
  89. package/dist/components/navigation-menu/navigation-menu.js +5 -0
  90. package/dist/components/navigation-menu/navigation-menu.vue_vue_type_script_setup_true_lang.js +207 -0
  91. package/dist/components/navigation-menu/types.d.ts +62 -0
  92. package/dist/components/page-transition/page-transition.js +5 -0
  93. package/dist/components/page-transition/page-transition.vue.d.ts +40 -0
  94. package/dist/components/page-transition/page-transition.vue_vue_type_script_setup_true_lang.js +27 -0
  95. package/dist/components/page-transition/types.d.ts +18 -0
  96. package/dist/components/sections/section/section.js +5 -0
  97. package/dist/components/sections/section/section.vue.d.ts +28 -0
  98. package/dist/components/sections/section/section.vue_vue_type_script_setup_true_lang.js +108 -0
  99. package/dist/components/sections/section/types.d.ts +80 -0
  100. package/dist/components/sections/section-content/section-content.js +5 -0
  101. package/dist/components/sections/section-content/section-content.vue.d.ts +27 -0
  102. package/dist/components/sections/section-content/section-content.vue_vue_type_script_setup_true_lang.js +16 -0
  103. package/dist/components/skeleton-loader/skeleton-loader.js +5 -0
  104. package/dist/components/skeleton-loader/skeleton-loader.vue_vue_type_script_setup_true_lang.js +65 -0
  105. package/dist/components/table/table.js +5 -0
  106. package/dist/components/table/table.vue.d.ts +19 -0
  107. package/dist/components/table/table.vue_vue_type_script_setup_true_lang.js +84 -0
  108. package/dist/components/table/types.d.ts +51 -0
  109. package/dist/components.d.ts +23 -896
  110. package/dist/components.js +23 -1381
  111. package/dist/composables/alignment/alignment.js +41 -0
  112. package/dist/composables/alignment/types.d.ts +12 -0
  113. package/dist/composables/button/button.js +54 -0
  114. package/dist/composables/colors/constants.js +27 -0
  115. package/dist/composables/colors/types.d.ts +4 -0
  116. package/dist/composables/colors/use-vuetify-background-color.js +16 -0
  117. package/dist/composables/colors/use-vuetify-color.js +11 -0
  118. package/dist/composables/colors/use-vuetify-text-color.js +12 -0
  119. package/dist/composables/data-set/data-set.js +128 -0
  120. package/dist/composables/dialogs/types.d.ts +88 -0
  121. package/dist/composables/dialogs/use-confirm.d.ts +21 -0
  122. package/dist/composables/dialogs/use-confirm.js +55 -0
  123. package/dist/composables/dialogs/use-decorative-timer.js +25 -0
  124. package/dist/composables/dialogs/use-dialog-focus.js +64 -0
  125. package/dist/composables/dialogs/use-dialog-loading.js +13 -0
  126. package/dist/composables/dialogs/use-dialog.d.ts +36 -0
  127. package/dist/{use-dialog-Ck2_ZW7T.js → composables/dialogs/use-dialog.js} +2 -53
  128. package/dist/composables/dialogs/use-run-or-toast.d.ts +27 -0
  129. package/dist/composables/dialogs/use-run-or-toast.js +65 -0
  130. package/dist/composables/dialogs/use-toast.d.ts +25 -0
  131. package/dist/composables/dialogs/use-toast.js +39 -0
  132. package/dist/composables/dimensions/dimensions.js +18 -0
  133. package/dist/composables/inputs/autocomplete-field.js +39 -0
  134. package/dist/composables/inputs/date-time-field.js +109 -0
  135. package/dist/composables/inputs/fields.js +28 -0
  136. package/dist/composables/inputs/mask-field.js +133 -0
  137. package/dist/composables/inputs/rules.js +16 -0
  138. package/dist/composables/inputs/text-field.js +81 -0
  139. package/dist/composables/navigation/types.d.ts +54 -0
  140. package/dist/composables/navigation/use-navigation-rail.js +163 -0
  141. package/dist/composables/navigation/use-navigation-search-shortcut.js +96 -0
  142. package/dist/composables/navigation/use-route-props.js +21 -0
  143. package/dist/composables/navigation/use-unsaved-changes.d.ts +35 -0
  144. package/dist/composables/navigation/use-unsaved-changes.js +88 -0
  145. package/dist/composables/section/section.js +34 -0
  146. package/dist/composables.d.ts +6 -193
  147. package/dist/composables.js +6 -117
  148. package/dist/consts/icons.d.ts +67 -0
  149. package/dist/consts/icons.js +69 -0
  150. package/dist/consts/locale.js +12 -0
  151. package/dist/consts/types.d.ts +12 -0
  152. package/dist/index.d.ts +1 -13
  153. package/dist/index.js +39 -14
  154. package/dist/plugins.d.ts +15 -4
  155. package/dist/plugins.js +54 -3
  156. package/dist/styles/fonts/UnimedSlab-Regular.woff2 +0 -0
  157. package/dist/styles/fonts/fonts.css +5 -0
  158. package/dist/styles/settings.scss +155 -0
  159. package/dist/unit-test.js +11 -7
  160. package/package.json +11 -11
  161. package/skills/uimed-vue/SKILL.md +113 -0
  162. package/skills/uimed-vue/references/api/components/autocomplete-field.md +45 -0
  163. package/skills/uimed-vue/references/api/components/button.md +48 -0
  164. package/skills/uimed-vue/references/api/components/checkbox.md +36 -0
  165. package/skills/uimed-vue/references/api/components/data-sets/data-set-item.md +61 -0
  166. package/skills/uimed-vue/references/api/components/data-sets/data-set.md +67 -0
  167. package/skills/uimed-vue/references/api/components/date-time-field.md +44 -0
  168. package/skills/uimed-vue/references/api/components/details.md +33 -0
  169. package/skills/uimed-vue/references/api/components/dialog.md +70 -0
  170. package/skills/uimed-vue/references/api/components/form.md +43 -0
  171. package/skills/uimed-vue/references/api/components/grid/column.md +41 -0
  172. package/skills/uimed-vue/references/api/components/grid/container.md +32 -0
  173. package/skills/uimed-vue/references/api/components/grid/row.md +37 -0
  174. package/skills/uimed-vue/references/api/components/icon-button.md +37 -0
  175. package/skills/uimed-vue/references/api/components/img.md +34 -0
  176. package/skills/uimed-vue/references/api/components/link.md +31 -0
  177. package/skills/uimed-vue/references/api/components/main.md +174 -0
  178. package/skills/uimed-vue/references/api/components/mask-field.md +60 -0
  179. package/skills/uimed-vue/references/api/components/page-transition.md +37 -0
  180. package/skills/uimed-vue/references/api/components/sections/section-content.md +23 -0
  181. package/skills/uimed-vue/references/api/components/sections/section.md +61 -0
  182. package/skills/uimed-vue/references/api/components/table.md +35 -0
  183. package/skills/uimed-vue/references/api/components/text-field.md +42 -0
  184. package/skills/uimed-vue/references/api/composables/use-confirm.md +96 -0
  185. package/skills/uimed-vue/references/api/composables/use-dialog.md +95 -0
  186. package/skills/uimed-vue/references/api/composables/use-run-or-toast.md +58 -0
  187. package/skills/uimed-vue/references/api/composables/use-toast.md +48 -0
  188. package/skills/uimed-vue/references/api/composables/use-unsaved-changes.md +106 -0
  189. package/skills/uimed-vue/references/api/index.md +1 -0
  190. package/skills/uimed-vue/references/guide/components/autocomplete-field.md +256 -0
  191. package/skills/uimed-vue/references/guide/components/button.md +155 -0
  192. package/skills/uimed-vue/references/guide/components/checkbox.md +113 -0
  193. package/skills/uimed-vue/references/guide/components/data-set.md +370 -0
  194. package/skills/uimed-vue/references/guide/components/date-time-field.md +202 -0
  195. package/skills/uimed-vue/references/guide/components/details.md +76 -0
  196. package/skills/uimed-vue/references/guide/components/dialog.md +269 -0
  197. package/skills/uimed-vue/references/guide/components/form.md +96 -0
  198. package/skills/uimed-vue/references/guide/components/icon-button.md +76 -0
  199. package/skills/uimed-vue/references/guide/components/img.md +128 -0
  200. package/skills/uimed-vue/references/guide/components/layout.md +323 -0
  201. package/skills/uimed-vue/references/guide/components/link.md +47 -0
  202. package/skills/uimed-vue/references/guide/components/main.md +435 -0
  203. package/skills/uimed-vue/references/guide/components/mask-field.md +256 -0
  204. package/skills/uimed-vue/references/guide/components/page-transition.md +111 -0
  205. package/skills/uimed-vue/references/guide/components/section.md +232 -0
  206. package/skills/uimed-vue/references/guide/components/table.md +102 -0
  207. package/skills/uimed-vue/references/guide/components/text-field.md +172 -0
  208. package/skills/uimed-vue/references/guide/composables/use-confirm.md +123 -0
  209. package/skills/uimed-vue/references/guide/composables/use-dialog.md +102 -0
  210. package/skills/uimed-vue/references/guide/composables/use-run-or-toast.md +55 -0
  211. package/skills/uimed-vue/references/guide/composables/use-toast.md +57 -0
  212. package/skills/uimed-vue/references/guide/composables/use-unsaved-changes.md +129 -0
  213. package/skills/uimed-vue/references/guide/getting-started.md +135 -0
  214. package/skills/uimed-vue/references/guide/icons.md +71 -0
  215. package/skills/uimed-vue/references/guide/index.md +51 -0
  216. package/skills/uimed-vue/references/guide/migration-v1-to-v2.md +191 -0
  217. package/skills/uimed-vue/references/guide/unit-testing.md +85 -0
  218. package/AGENTS.md +0 -233
  219. package/CLAUDE.md +0 -1
  220. package/dist/types-HPMP8IrV.d.ts +0 -49
@@ -0,0 +1,84 @@
1
+ import { TextFieldVariant } from "../text-field/types.js";
2
+ //#region src/components/inputs/autocomplete-field/types.d.ts
3
+ /**
4
+ * Autocomplete/Combobox item type that can be either a string or an object with label and value.
5
+ */
6
+ export type AutocompleteItem<T = string> = string | {
7
+ label: string;
8
+ value: T;
9
+ };
10
+ /**
11
+ * Props exposed by the {@link AutocompleteField} component.
12
+ */
13
+ export type AutocompleteFieldProps<T = string, Multiple extends boolean = false> = {
14
+ /**
15
+ * Applies a distinct style variation to the field.
16
+ * One of `primary` or `secondary`.
17
+ * @default "primary"
18
+ */
19
+ variant?: TextFieldVariant;
20
+ /**
21
+ * Removes the ability to click or target the field.
22
+ * @default false
23
+ */
24
+ disabled?: boolean;
25
+ /**
26
+ * Displays a loading indicator on the input. The field keeps its label as
27
+ * accessible name and is marked as busy, and assistive technologies ignore
28
+ * the indicator.
29
+ * @default false
30
+ */
31
+ loading?: boolean;
32
+ /**
33
+ * Displays clear action.
34
+ * @default false
35
+ */
36
+ clearable?: boolean;
37
+ /**
38
+ * Prevent value changes.
39
+ * @default false
40
+ */
41
+ readonly?: boolean;
42
+ /**
43
+ * Add rules to require field to be filled before form submission.
44
+ * @default false
45
+ */
46
+ required?: boolean;
47
+ /**
48
+ * Field label.
49
+ */
50
+ label?: string;
51
+ /**
52
+ * Field placeholder.
53
+ */
54
+ placeholder?: string;
55
+ /**
56
+ * Field message to show and direct user to fill field correctly.
57
+ *
58
+ * This message will be replaced when there's an error message to be shown.
59
+ */
60
+ hint?: string;
61
+ /**
62
+ * Component id to use on automated tests.
63
+ */
64
+ dataTestid?: string;
65
+ /**
66
+ * Used to prevent user from adding new values to the list.
67
+ * @default false
68
+ */
69
+ strict?: boolean;
70
+ /**
71
+ * Allow selecting/typing more than one value.
72
+ *
73
+ * Passing the literal `true` narrows `modelValue` and `update:modelValue`
74
+ * to `T[]` instead of `T`.
75
+ * @default false
76
+ */
77
+ multiple?: Multiple;
78
+ /**
79
+ * List of autocomplete items. Can be strings or objects with label and value.
80
+ * @default []
81
+ */
82
+ items?: AutocompleteItem<T>[];
83
+ };
84
+ //#endregion
@@ -0,0 +1,5 @@
1
+ import checkbox_vue_vue_type_script_setup_true_lang_default from "./checkbox.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/inputs/checkbox/checkbox.vue
3
+ var checkbox_default = checkbox_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { checkbox_default as default };
@@ -0,0 +1,33 @@
1
+ import { CheckboxProps } from "./types.js";
2
+ //#region src/components/inputs/checkbox/checkbox.vue.d.ts
3
+ /**
4
+ * Checkbox component to be used throughout the application.
5
+ *
6
+ * @example
7
+ * ```vue
8
+ * <template>
9
+ * <u-checkbox label="Aceito os termos" />
10
+ * </template>
11
+ * ```
12
+ *
13
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/checkbox | Checkbox Guide}
14
+ */
15
+ declare const _default: typeof __VLS_export;
16
+ declare const __VLS_export: <T = any>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
17
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(CheckboxProps<boolean | T> & {
18
+ modelValue?: T;
19
+ }) & {
20
+ "onUpdate:modelValue"?: ((value: T) => any) | undefined;
21
+ }> & (typeof globalThis extends {
22
+ __VLS_PROPS_FALLBACK: infer P;
23
+ } ? P : {});
24
+ expose: (exposed: {}) => void;
25
+ attrs: any;
26
+ slots: {};
27
+ emit: (event: "update:modelValue", value: T) => void;
28
+ }>) => import("vue").VNode & {
29
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
30
+ };
31
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
32
+ //#endregion
33
+ export { _default as default };
@@ -0,0 +1,71 @@
1
+ import { createBlock, defineComponent, mergeModels, openBlock, unref, useModel } from "vue";
2
+ import { VCheckboxBtn } from "vuetify/components";
3
+ var checkbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
4
+ inheritAttrs: false,
5
+ __name: "checkbox",
6
+ props: /*@__PURE__*/ mergeModels({
7
+ label: {
8
+ type: String,
9
+ required: false
10
+ },
11
+ disabled: {
12
+ type: Boolean,
13
+ required: false
14
+ },
15
+ readonly: {
16
+ type: Boolean,
17
+ required: false
18
+ },
19
+ trueValue: {
20
+ type: Boolean,
21
+ required: false,
22
+ skipCheck: true,
23
+ default: true
24
+ },
25
+ falseValue: {
26
+ type: Boolean,
27
+ required: false,
28
+ skipCheck: true,
29
+ default: false
30
+ },
31
+ dataTestid: {
32
+ type: String,
33
+ required: false
34
+ }
35
+ }, {
36
+ "modelValue": {
37
+ type: null,
38
+ default: (props) => props.falseValue
39
+ },
40
+ "modelModifiers": {}
41
+ }),
42
+ emits: ["update:modelValue"],
43
+ setup(__props) {
44
+ const props = __props;
45
+ const modelValue = useModel(__props, "modelValue");
46
+ return (_ctx, _cache) => {
47
+ return openBlock(), createBlock(unref(VCheckboxBtn), {
48
+ modelValue: modelValue.value,
49
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
50
+ "true-value": props.trueValue,
51
+ "false-value": props.falseValue,
52
+ "data-testid": props.dataTestid,
53
+ disabled: props.disabled,
54
+ readonly: props.readonly,
55
+ label: props.label,
56
+ class: "flex-0-1",
57
+ "hide-details": ""
58
+ }, null, 8, [
59
+ "modelValue",
60
+ "true-value",
61
+ "false-value",
62
+ "data-testid",
63
+ "disabled",
64
+ "readonly",
65
+ "label"
66
+ ]);
67
+ };
68
+ }
69
+ });
70
+ //#endregion
71
+ export { checkbox_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,35 @@
1
+ //#region src/components/inputs/checkbox/types.d.ts
2
+ /**
3
+ * Props exposed by the {@link Checkbox} component.
4
+ */
5
+ export type CheckboxProps<T = boolean> = {
6
+ /**
7
+ * Field label.
8
+ */
9
+ label?: string;
10
+ /**
11
+ * Removes the ability to click or target the checkbox.
12
+ * @default false
13
+ */
14
+ disabled?: boolean;
15
+ /**
16
+ * Prevent value changes.
17
+ * @default false
18
+ */
19
+ readonly?: boolean;
20
+ /**
21
+ * Value applied to the model when the checkbox is checked.
22
+ * @default true
23
+ */
24
+ trueValue?: T;
25
+ /**
26
+ * Value applied to the model when the checkbox is unchecked.
27
+ * @default false
28
+ */
29
+ falseValue?: T;
30
+ /**
31
+ * Component id to use on automated tests.
32
+ */
33
+ dataTestid?: string;
34
+ };
35
+ //#endregion
@@ -0,0 +1,5 @@
1
+ import date_time_field_vue_vue_type_script_setup_true_lang_default from "./date-time-field.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/inputs/date-time-field/date-time-field.vue
3
+ var date_time_field_default = date_time_field_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { date_time_field_default as default };
@@ -0,0 +1,32 @@
1
+ import { DateTimeFieldProps, DateTimeFieldType, DateTimeFieldVariant } from "./types.js";
2
+ //#region src/components/inputs/date-time-field/date-time-field.vue.d.ts
3
+ /**
4
+ * Date and/or time field component to be used throughout the application.
5
+ *
6
+ * Its value uses the native input formats: `YYYY-MM-DD` for `date`, `HH:mm`
7
+ * for `time` and `YYYY-MM-DDTHH:mm` for `datetime`.
8
+ *
9
+ * @example
10
+ * ```vue
11
+ * <template>
12
+ * <u-date-time-field v-model="birthDate" label="Data de nascimento" type="date" />
13
+ * <template>
14
+ * ```
15
+ *
16
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/date-time-field | DateTimeField Guide}
17
+ */
18
+ declare const _default: typeof __VLS_export;
19
+ declare const __VLS_export: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DateTimeFieldProps & {
20
+ modelValue?: string;
21
+ }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
22
+ "update:modelValue": (value: string) => any;
23
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<DateTimeFieldProps & {
24
+ modelValue?: string;
25
+ }> & Readonly<{
26
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
27
+ }>, {
28
+ variant: DateTimeFieldVariant;
29
+ type: DateTimeFieldType;
30
+ }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
31
+ //#endregion
32
+ export { _default as default };
@@ -0,0 +1,205 @@
1
+ import { useTextFieldVariant } from "../../../composables/inputs/fields.js";
2
+ import field_loader_default from "../field-loader.js";
3
+ import { formatDateTime as formatDateTime$1, getDatePart, getTimePart, joinDateTime, useDateTimeFieldMenu, useDateTimeFieldPickerBounds, useDateTimeFieldRules } from "../../../composables/inputs/date-time-field.js";
4
+ import { computed, createBlock, createCommentVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, normalizeProps, openBlock, ref, unref, useModel, watch, withCtx } from "vue";
5
+ import { pt } from "vuetify/locale";
6
+ import { VCard, VDatePicker, VLocaleProvider, VMenu, VTextField, VTimePicker } from "vuetify/components";
7
+ import { formatDateTime } from "@nexdom/shared/utils";
8
+ var date_time_field_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
9
+ inheritAttrs: false,
10
+ __name: "date-time-field",
11
+ props: /*@__PURE__*/ mergeModels({
12
+ variant: {
13
+ type: String,
14
+ required: false,
15
+ default: "primary"
16
+ },
17
+ type: {
18
+ type: String,
19
+ required: false,
20
+ default: "datetime"
21
+ },
22
+ min: {
23
+ type: String,
24
+ required: false
25
+ },
26
+ max: {
27
+ type: String,
28
+ required: false
29
+ },
30
+ disabled: {
31
+ type: Boolean,
32
+ required: false
33
+ },
34
+ loading: {
35
+ type: Boolean,
36
+ required: false
37
+ },
38
+ clearable: {
39
+ type: Boolean,
40
+ required: false
41
+ },
42
+ readonly: {
43
+ type: Boolean,
44
+ required: false
45
+ },
46
+ required: {
47
+ type: Boolean,
48
+ required: false
49
+ },
50
+ label: {
51
+ type: String,
52
+ required: false
53
+ },
54
+ placeholder: {
55
+ type: String,
56
+ required: false
57
+ },
58
+ hint: {
59
+ type: String,
60
+ required: false
61
+ },
62
+ dataTestid: {
63
+ type: String,
64
+ required: false
65
+ }
66
+ }, {
67
+ "modelValue": {
68
+ type: String,
69
+ default: ""
70
+ },
71
+ "modelModifiers": {}
72
+ }),
73
+ emits: ["update:modelValue"],
74
+ setup(__props) {
75
+ const modelValue = useModel(__props, "modelValue");
76
+ const props = __props;
77
+ const messages = { "pt-BR": pt };
78
+ const vuetifyVariant = useTextFieldVariant(() => props.variant);
79
+ const rules = useDateTimeFieldRules(props);
80
+ const displayValue = computed(() => formatDateTime$1(modelValue.value, props.type));
81
+ const isClearable = computed(() => props.clearable && !props.readonly);
82
+ const isMenuDisabled = computed(() => props.disabled || props.readonly);
83
+ const isMenuOpen = ref(false);
84
+ const draft = ref({});
85
+ const draftDate = computed(() => draft.value.date ?? getDatePart(modelValue.value, props.type));
86
+ const draftTime = computed(() => draft.value.time ?? getTimePart(modelValue.value, props.type));
87
+ const draftValue = computed(() => joinDateTime(props.type, draftDate.value, draftTime.value));
88
+ const bounds = useDateTimeFieldPickerBounds(props, draftDate);
89
+ const { inputId, activator, activatorProps, contentProps, open: openMenu } = useDateTimeFieldMenu(isMenuOpen, isMenuDisabled, () => !!props.label);
90
+ watch(isMenuOpen, () => {
91
+ draft.value = {};
92
+ });
93
+ function onDateUpdate(date) {
94
+ draft.value.date = formatDateTime(date, "YYYY-MM-DD");
95
+ commitDraft();
96
+ closeIfComplete();
97
+ }
98
+ function onTimeUpdate(time) {
99
+ draft.value.time = time ?? "";
100
+ commitDraft();
101
+ }
102
+ function commitDraft() {
103
+ if (draftValue.value) modelValue.value = draftValue.value;
104
+ }
105
+ function closeIfComplete() {
106
+ if (draftValue.value) isMenuOpen.value = false;
107
+ }
108
+ function clear() {
109
+ modelValue.value = "";
110
+ }
111
+ return (_ctx, _cache) => {
112
+ return openBlock(), createBlock(unref(VTextField), {
113
+ id: unref(inputId),
114
+ "model-value": displayValue.value,
115
+ "validation-value": modelValue.value,
116
+ variant: unref(vuetifyVariant),
117
+ rules: unref(rules),
118
+ "data-testid": props.dataTestid,
119
+ disabled: props.disabled,
120
+ loading: props.loading,
121
+ "aria-busy": props.loading || void 0,
122
+ label: props.label,
123
+ placeholder: props.placeholder,
124
+ hint: props.hint,
125
+ clearable: isClearable.value,
126
+ readonly: "",
127
+ "onClick:clear": clear,
128
+ "onClick:control": unref(openMenu)
129
+ }, {
130
+ loader: withCtx((loader) => [createVNode(field_loader_default, normalizeProps(guardReactiveProps(loader)), null, 16)]),
131
+ default: withCtx(() => [createVNode(unref(VMenu), {
132
+ modelValue: isMenuOpen.value,
133
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isMenuOpen.value = $event),
134
+ activator: unref(activator),
135
+ target: "parent",
136
+ "activator-props": unref(activatorProps),
137
+ "content-props": unref(contentProps),
138
+ location: "bottom start",
139
+ "min-width": "0",
140
+ disabled: isMenuDisabled.value,
141
+ "close-on-content-click": false
142
+ }, {
143
+ default: withCtx(() => [createVNode(unref(VCard), null, {
144
+ default: withCtx(() => [createVNode(unref(VLocaleProvider), {
145
+ locale: "pt-BR",
146
+ messages,
147
+ class: "d-flex flex-wrap"
148
+ }, {
149
+ default: withCtx(() => [props.type !== "time" ? (openBlock(), createBlock(unref(VDatePicker), {
150
+ key: 0,
151
+ "model-value": draftDate.value || null,
152
+ min: unref(bounds).dateMin,
153
+ max: unref(bounds).dateMax,
154
+ "onUpdate:modelValue": onDateUpdate
155
+ }, null, 8, [
156
+ "model-value",
157
+ "min",
158
+ "max"
159
+ ])) : createCommentVNode("v-if", true), props.type !== "date" ? (openBlock(), createBlock(unref(VTimePicker), {
160
+ key: 1,
161
+ "model-value": draftTime.value,
162
+ min: unref(bounds).timeMin,
163
+ max: unref(bounds).timeMax,
164
+ format: "24hr",
165
+ "onUpdate:modelValue": onTimeUpdate,
166
+ "onUpdate:minute": closeIfComplete
167
+ }, null, 8, [
168
+ "model-value",
169
+ "min",
170
+ "max"
171
+ ])) : createCommentVNode("v-if", true)]),
172
+ _: 1
173
+ })]),
174
+ _: 1
175
+ })]),
176
+ _: 1
177
+ }, 8, [
178
+ "modelValue",
179
+ "activator",
180
+ "activator-props",
181
+ "content-props",
182
+ "disabled"
183
+ ])]),
184
+ _: 1
185
+ }, 8, [
186
+ "id",
187
+ "model-value",
188
+ "validation-value",
189
+ "variant",
190
+ "rules",
191
+ "data-testid",
192
+ "disabled",
193
+ "loading",
194
+ "aria-busy",
195
+ "label",
196
+ "placeholder",
197
+ "hint",
198
+ "clearable",
199
+ "onClick:control"
200
+ ]);
201
+ };
202
+ }
203
+ });
204
+ //#endregion
205
+ export { date_time_field_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,84 @@
1
+ import { TextFieldVariant } from "../text-field/types.js";
2
+ //#region src/components/inputs/date-time-field/types.d.ts
3
+ export type DateTimeFieldVariant = TextFieldVariant;
4
+ export type DateTimeFieldType = "date" | "time" | "datetime";
5
+ /**
6
+ * Props exposed by the {@link DateTimeField} component.
7
+ */
8
+ export type DateTimeFieldProps = {
9
+ /**
10
+ * Applies a distinct style variation to the field.
11
+ * One of `primary` or `secondary`.
12
+ * @default "primary"
13
+ */
14
+ variant?: DateTimeFieldVariant;
15
+ /**
16
+ * Defines which pickers are available and the format of the value.
17
+ *
18
+ * - `date`: value formatted as `YYYY-MM-DD` (e.g. `2026-09-24`);
19
+ * - `time`: value formatted as `HH:mm`, 24h (e.g. `14:30`);
20
+ * - `datetime`: value formatted as `YYYY-MM-DDTHH:mm` (e.g. `2026-09-24T14:30`).
21
+ * @default "datetime"
22
+ */
23
+ type?: DateTimeFieldType;
24
+ /**
25
+ * Minimum allowed value, in the same format as the value for the current `type`.
26
+ *
27
+ * Earlier options can't be picked, and an earlier value shows an error message.
28
+ * For `datetime`, the time limit only applies to the minimum's own date.
29
+ */
30
+ min?: string;
31
+ /**
32
+ * Maximum allowed value, in the same format as the value for the current `type`.
33
+ *
34
+ * Later options can't be picked, and a later value shows an error message.
35
+ * For `datetime`, the time limit only applies to the maximum's own date.
36
+ */
37
+ max?: string;
38
+ /**
39
+ * Removes the ability to click or target the field.
40
+ * @default false
41
+ */
42
+ disabled?: boolean;
43
+ /**
44
+ * Displays a loading indicator on the input. The field keeps its label as
45
+ * accessible name and is marked as busy, and assistive technologies ignore
46
+ * the indicator.
47
+ * @default false
48
+ */
49
+ loading?: boolean;
50
+ /**
51
+ * Displays clear action, which is hidden while the field is `readonly`.
52
+ * @default false
53
+ */
54
+ clearable?: boolean;
55
+ /**
56
+ * Prevent value changes. The pickers won't open.
57
+ * @default false
58
+ */
59
+ readonly?: boolean;
60
+ /**
61
+ * Add `rules` to require field to be filled before form submission.
62
+ * @default false
63
+ */
64
+ required?: boolean;
65
+ /**
66
+ * Field label.
67
+ */
68
+ label?: string;
69
+ /**
70
+ * Field placeholder.
71
+ */
72
+ placeholder?: string;
73
+ /**
74
+ * Field message to show and direct user to fill field correctly.
75
+ *
76
+ * This message will be replaced when there's an error message to be shown.
77
+ */
78
+ hint?: string;
79
+ /**
80
+ * Component id to use on automated tests.
81
+ */
82
+ dataTestid?: string;
83
+ };
84
+ //#endregion
@@ -0,0 +1,5 @@
1
+ import field_loader_vue_vue_type_script_setup_true_lang_default from "./field-loader.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/inputs/field-loader.vue
3
+ var field_loader_default = field_loader_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { field_loader_default as default };
@@ -0,0 +1,30 @@
1
+ import { createBlock, defineComponent, openBlock, unref } from "vue";
2
+ import { VProgressLinear } from "vuetify/components";
3
+ var field_loader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
4
+ inheritAttrs: false,
5
+ __name: "field-loader",
6
+ props: {
7
+ color: {
8
+ type: String,
9
+ required: false
10
+ },
11
+ isActive: {
12
+ type: Boolean,
13
+ required: true
14
+ }
15
+ },
16
+ setup(__props) {
17
+ const props = __props;
18
+ return (_ctx, _cache) => {
19
+ return openBlock(), createBlock(unref(VProgressLinear), {
20
+ active: props.isActive,
21
+ color: props.color,
22
+ height: "2",
23
+ indeterminate: "",
24
+ "aria-hidden": "true"
25
+ }, null, 8, ["active", "color"]);
26
+ };
27
+ }
28
+ });
29
+ //#endregion
30
+ export { field_loader_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,5 @@
1
+ import mask_field_vue_vue_type_script_setup_true_lang_default from "./mask-field.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/inputs/mask-field/mask-field.vue
3
+ var mask_field_default = mask_field_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { mask_field_default as default };
@@ -0,0 +1,32 @@
1
+ import { MaskFieldProps, MaskFieldVariant } from "./types.js";
2
+ //#region src/components/inputs/mask-field/mask-field.vue.d.ts
3
+ /**
4
+ * Text field that masks the value while the user types, such as CPF, CNPJ
5
+ * (numeric or alphanumeric), CEP, phone or a custom mask. Its value holds only
6
+ * the typed characters, without the mask's literals and with letters in
7
+ * uppercase.
8
+ *
9
+ * @example
10
+ * ```vue
11
+ * <template>
12
+ * <u-mask-field v-model="cpf" label="CPF" mask="cpf" />
13
+ * <u-mask-field v-model="protocol" label="Protocolo" mask="####-##/####" />
14
+ * </template>
15
+ * ```
16
+ *
17
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/mask-field | MaskField Guide}
18
+ */
19
+ declare const _default: typeof __VLS_export;
20
+ declare const __VLS_export: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MaskFieldProps & {
21
+ modelValue?: string;
22
+ }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
23
+ "update:modelValue": (value: string) => any;
24
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<MaskFieldProps & {
25
+ modelValue?: string;
26
+ }> & Readonly<{
27
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
28
+ }>, {
29
+ variant: MaskFieldVariant;
30
+ }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
31
+ //#endregion
32
+ export { _default as default };