@nexdom/uimed-vue 2.0.0-beta.22 → 2.0.0-beta.23

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.
@@ -254,7 +254,9 @@ type TextFieldProps = {
254
254
  */
255
255
  disabled?: boolean;
256
256
  /**
257
- * Displays a loading indicator on the input.
257
+ * Displays a loading indicator on the input. The field keeps its label as
258
+ * accessible name and is marked as busy, and assistive technologies ignore
259
+ * the indicator.
258
260
  * @default false
259
261
  */
260
262
  loading?: boolean;
@@ -317,7 +319,9 @@ type AutocompleteFieldProps<T = string, Multiple extends boolean = false> = {
317
319
  */
318
320
  disabled?: boolean;
319
321
  /**
320
- * Displays a loading indicator on the input.
322
+ * Displays a loading indicator on the input. The field keeps its label as
323
+ * accessible name and is marked as busy, and assistive technologies ignore
324
+ * the indicator.
321
325
  * @default false
322
326
  */
323
327
  loading?: boolean;
@@ -541,7 +545,9 @@ type DateTimeFieldProps = {
541
545
  */
542
546
  disabled?: boolean;
543
547
  /**
544
- * Displays a loading indicator on the input.
548
+ * Displays a loading indicator on the input. The field keeps its label as
549
+ * accessible name and is marked as busy, and assistive technologies ignore
550
+ * the indicator.
545
551
  * @default false
546
552
  */
547
553
  loading?: boolean;
@@ -1,7 +1,7 @@
1
1
  import { a as messages, n as owners, r as requests, s as useVuetifyColor } from "./use-dialog-Ck2_ZW7T.js";
2
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, inject, isRef, mergeModels, mergeProps, normalizeClass, onMounted, onScopeDispose, onUnmounted, openBlock, provide, ref, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toValue, unref, useId, useModel, useSlots, useTemplateRef, watch, withCtx, withModifiers } from "vue";
2
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, inject, isRef, mergeModels, mergeProps, normalizeClass, normalizeProps, onMounted, onScopeDispose, onUnmounted, openBlock, provide, ref, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toValue, unref, useId, useModel, useSlots, useTemplateRef, watch, withCtx, withModifiers } from "vue";
3
3
  import { pt } from "vuetify/locale";
4
- import { VApp, VAppBar, VAppBarNavIcon, VAppBarTitle, VAutocomplete, VAvatar, VBadge, VBtn, VCard, VCardActions, VCardText, VCheckboxBtn, VCol, VCombobox, VContainer, VDataIterator, VDatePicker, VDialog, VDivider, VEmptyState, VExpansionPanel, VExpansionPanelText, VExpansionPanelTitle, VExpansionPanels, VForm, VIcon, VIconBtn, VImg, VList, VListGroup, VListItem, VListItemAction, VListSubheader, VLocaleProvider, VMain, VMenu, VNavigationDrawer, VPagination, VRow, VSkeletonLoader, VSnackbarQueue, VTable, VTextField, VTimePicker } from "vuetify/components";
4
+ import { VApp, VAppBar, VAppBarNavIcon, VAppBarTitle, VAutocomplete, VAvatar, VBadge, VBtn, VCard, VCardActions, VCardText, VCheckboxBtn, VCol, VCombobox, VContainer, VDataIterator, VDatePicker, VDialog, VDivider, VEmptyState, VExpansionPanel, VExpansionPanelText, VExpansionPanelTitle, VExpansionPanels, VForm, VIcon, VIconBtn, VImg, VList, VListGroup, VListItem, VListItemAction, VListSubheader, VLocaleProvider, VMain, VMenu, VNavigationDrawer, VPagination, VProgressLinear, VRow, VSkeletonLoader, VSnackbarQueue, VTable, VTextField, VTimePicker } from "vuetify/components";
5
5
  import { formatDateTime, isEmail, isEmpty, isPhone, isUrl } from "@nexdom/shared/utils";
6
6
  //#region src/composables/navigation/use-route-props.ts
7
7
  function useRouteProps(route) {
@@ -315,6 +315,34 @@ function associatedRuleType(type) {
315
315
  return type in textFieldTypeToVuetifyRule;
316
316
  }
317
317
  //#endregion
318
+ //#region src/components/inputs/field-loader.vue
319
+ var field_loader_default = /* @__PURE__ */ defineComponent({
320
+ inheritAttrs: false,
321
+ __name: "field-loader",
322
+ props: {
323
+ color: {
324
+ type: String,
325
+ required: false
326
+ },
327
+ isActive: {
328
+ type: Boolean,
329
+ required: true
330
+ }
331
+ },
332
+ setup(__props) {
333
+ const props = __props;
334
+ return (_ctx, _cache) => {
335
+ return openBlock(), createBlock(unref(VProgressLinear), {
336
+ active: props.isActive,
337
+ color: props.color,
338
+ height: "2",
339
+ indeterminate: "",
340
+ "aria-hidden": "true"
341
+ }, null, 8, ["active", "color"]);
342
+ };
343
+ }
344
+ });
345
+ //#endregion
318
346
  //#region src/components/inputs/text-field/text-field.vue
319
347
  var text_field_default = /* @__PURE__ */ defineComponent({
320
348
  inheritAttrs: false,
@@ -398,13 +426,17 @@ var text_field_default = /* @__PURE__ */ defineComponent({
398
426
  "data-testid": props.dataTestid,
399
427
  disabled: props.disabled,
400
428
  loading: props.loading,
429
+ "aria-busy": props.loading || void 0,
401
430
  readonly: props.readonly,
402
431
  label: props.label,
403
432
  placeholder: props.placeholder,
404
433
  hint: props.hint,
405
434
  clearable: computedClearable.value,
406
435
  "onClick:clear": clear
407
- }, null, 8, [
436
+ }, {
437
+ loader: withCtx((loader) => [createVNode(field_loader_default, normalizeProps(guardReactiveProps(loader)), null, 16)]),
438
+ _: 1
439
+ }, 8, [
408
440
  "modelValue",
409
441
  "variant",
410
442
  "type",
@@ -413,6 +445,7 @@ var text_field_default = /* @__PURE__ */ defineComponent({
413
445
  "data-testid",
414
446
  "disabled",
415
447
  "loading",
448
+ "aria-busy",
416
449
  "readonly",
417
450
  "label",
418
451
  "placeholder",
@@ -1115,6 +1148,7 @@ var autocomplete_field_default = /* @__PURE__ */ defineComponent({
1115
1148
  "data-testid": props.dataTestid,
1116
1149
  disabled: props.disabled,
1117
1150
  loading: props.loading,
1151
+ "aria-busy": props.loading || void 0,
1118
1152
  readonly: props.readonly,
1119
1153
  label: props.label,
1120
1154
  placeholder: props.placeholder,
@@ -1124,13 +1158,17 @@ var autocomplete_field_default = /* @__PURE__ */ defineComponent({
1124
1158
  "item-title": "label",
1125
1159
  rules: unref(rules),
1126
1160
  chips: ""
1127
- }, null, 8, [
1161
+ }, {
1162
+ loader: withCtx((loader) => [createVNode(field_loader_default, normalizeProps(guardReactiveProps(loader)), null, 16)]),
1163
+ _: 1
1164
+ }, 8, [
1128
1165
  "modelValue",
1129
1166
  "variant",
1130
1167
  "items",
1131
1168
  "data-testid",
1132
1169
  "disabled",
1133
1170
  "loading",
1171
+ "aria-busy",
1134
1172
  "readonly",
1135
1173
  "label",
1136
1174
  "placeholder",
@@ -1396,6 +1434,7 @@ var date_time_field_default = /* @__PURE__ */ defineComponent({
1396
1434
  "data-testid": props.dataTestid,
1397
1435
  disabled: props.disabled,
1398
1436
  loading: props.loading,
1437
+ "aria-busy": props.loading || void 0,
1399
1438
  label: props.label,
1400
1439
  placeholder: props.placeholder,
1401
1440
  hint: props.hint,
@@ -1403,6 +1442,7 @@ var date_time_field_default = /* @__PURE__ */ defineComponent({
1403
1442
  readonly: "",
1404
1443
  "onClick:clear": clear
1405
1444
  }, {
1445
+ loader: withCtx((loader) => [createVNode(field_loader_default, normalizeProps(guardReactiveProps(loader)), null, 16)]),
1406
1446
  default: withCtx(() => [createVNode(unref(VMenu), {
1407
1447
  modelValue: isMenuOpen.value,
1408
1448
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isMenuOpen.value = $event),
@@ -1456,6 +1496,7 @@ var date_time_field_default = /* @__PURE__ */ defineComponent({
1456
1496
  "data-testid",
1457
1497
  "disabled",
1458
1498
  "loading",
1499
+ "aria-busy",
1459
1500
  "label",
1460
1501
  "placeholder",
1461
1502
  "hint",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexdom/uimed-vue",
3
- "version": "2.0.0-beta.22",
3
+ "version": "2.0.0-beta.23",
4
4
  "description": "A ui framework for NEXDOM applications.",
5
5
  "keywords": [
6
6
  "lib",