@bridge-ui/vue 0.7.0 → 0.8.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 (82) hide show
  1. package/ai/skills/bridge-ui-forms/SKILL.md +1 -1
  2. package/dist/Components/Alert/Alert.vue_vue_type_script_setup_true_lang.js +13 -13
  3. package/dist/Components/Alert/alert.types.d.ts +7 -4
  4. package/dist/Components/Alert/composables/useAlert.d.ts +1 -0
  5. package/dist/Components/Alert/composables/useAlert.js +60 -57
  6. package/dist/Components/Autocomplete/Autocomplete.vue.d.ts +1 -1
  7. package/dist/Components/Autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +1 -0
  8. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +4 -2
  9. package/dist/Components/BaseField/BaseField.vue_vue_type_script_setup_true_lang.js +9 -9
  10. package/dist/Components/BaseField/baseField.types.d.ts +15 -4
  11. package/dist/Components/BaseField/composables/useBaseField.d.ts +6 -2
  12. package/dist/Components/BaseField/composables/useBaseField.js +67 -67
  13. package/dist/Components/Button/Button.vue_vue_type_script_setup_true_lang.js +24 -25
  14. package/dist/Components/Button/composables/useButton.d.ts +3 -1
  15. package/dist/Components/Button/composables/useButton.js +46 -40
  16. package/dist/Components/Calendar/composables/useCalendar.d.ts +1 -1
  17. package/dist/Components/CalendarDate/composables/useCalendarDate.d.ts +1 -1
  18. package/dist/Components/CalendarMonth/composables/useCalendarMonth.d.ts +1 -1
  19. package/dist/Components/CalendarRange/composables/useCalendarRange.d.ts +1 -1
  20. package/dist/Components/CalendarYear/composables/useCalendarYear.d.ts +1 -1
  21. package/dist/Components/ColorField/ColorField.vue.d.ts +1 -1
  22. package/dist/Components/ColorField/ColorField.vue_vue_type_script_setup_true_lang.js +1 -0
  23. package/dist/Components/ColorField/composables/useColorField.d.ts +5 -3
  24. package/dist/Components/ColorPicker/composables/useColorPicker.d.ts +1 -1
  25. package/dist/Components/DataTable/composables/useDataTable.d.ts +1 -1
  26. package/dist/Components/DateField/DateField.vue_vue_type_script_setup_true_lang.js +1 -0
  27. package/dist/Components/DateField/composables/useDateField.d.ts +5 -3
  28. package/dist/Components/DatePicker/composables/useDatePicker.d.ts +1 -1
  29. package/dist/Components/DateRangeField/DateRangeField.vue_vue_type_script_setup_true_lang.js +1 -0
  30. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +5 -3
  31. package/dist/Components/DateRangePicker/composables/useDateRangePicker.d.ts +1 -1
  32. package/dist/Components/DateTimeField/DateTimeField.vue_vue_type_script_setup_true_lang.js +1 -0
  33. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +5 -3
  34. package/dist/Components/DateTimePicker/composables/useDateTimePicker.d.ts +1 -1
  35. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue_vue_type_script_setup_true_lang.js +1 -0
  36. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +5 -3
  37. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.d.ts +1 -1
  38. package/dist/Components/FormControl/composables/useFormControl.d.ts +3 -1
  39. package/dist/Components/FormControl/composables/useFormControl.js +39 -38
  40. package/dist/Components/FormField/FilledFormField.vue_vue_type_script_setup_true_lang.js +3 -3
  41. package/dist/Components/FormField/NotchedFormField.vue_vue_type_script_setup_true_lang.js +31 -31
  42. package/dist/Components/FormField/OutlinedFormField.vue_vue_type_script_setup_true_lang.js +3 -3
  43. package/dist/Components/FormField/StackedFormField.vue_vue_type_script_setup_true_lang.js +34 -34
  44. package/dist/Components/FormField/UnderlinedFormField.vue_vue_type_script_setup_true_lang.js +3 -3
  45. package/dist/Components/FormField/composables/useFormField.d.ts +7 -3
  46. package/dist/Components/FormField/composables/useFormField.js +148 -144
  47. package/dist/Components/FormField/formField.types.d.ts +14 -4
  48. package/dist/Components/Listbox/Listbox.vue.d.ts +1 -1
  49. package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +1 -0
  50. package/dist/Components/NumberField/composables/useNumberField.d.ts +4 -2
  51. package/dist/Components/OtpField/OtpField.vue.d.ts +1 -8
  52. package/dist/Components/OtpField/OtpField.vue_vue_type_script_setup_true_lang.js +7 -6
  53. package/dist/Components/OtpField/composables/useOtpField.d.ts +3 -1
  54. package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +1 -0
  55. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +4 -2
  56. package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +1 -0
  57. package/dist/Components/Select/composables/useSelect.d.ts +4 -2
  58. package/dist/Components/Sidebar/composables/useSidebarList.js +1 -1
  59. package/dist/Components/Sidebar/composables/useSidebarShell.js +1 -1
  60. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +1 -0
  61. package/dist/Components/Slider/composables/useSlider.d.ts +4 -2
  62. package/dist/Components/TextField/TextField.vue_vue_type_script_setup_true_lang.js +1 -0
  63. package/dist/Components/TextField/composables/useTextField.d.ts +4 -2
  64. package/dist/Components/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +1 -0
  65. package/dist/Components/Textarea/composables/useTextarea.d.ts +4 -2
  66. package/dist/Components/TimeField/TimeField.vue_vue_type_script_setup_true_lang.js +1 -0
  67. package/dist/Components/TimeField/composables/useTimeField.d.ts +5 -3
  68. package/dist/Components/TimePanel/composables/useTimePanel.d.ts +1 -1
  69. package/dist/Components/TimePicker/composables/useTimePicker.d.ts +1 -1
  70. package/dist/Components/TimeRangeField/TimeRangeField.vue_vue_type_script_setup_true_lang.js +1 -0
  71. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +5 -3
  72. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.d.ts +1 -1
  73. package/dist/Components/Tooltip/composables/useTooltip.d.ts +1 -1
  74. package/dist/Utils/index.d.ts +11 -2
  75. package/dist/Utils/index.js +31 -27
  76. package/dist/augments.d.ts +8 -8
  77. package/docs/components/Alert.md +4 -2
  78. package/docs/components/BaseField.md +19 -18
  79. package/docs/components/BridgeUIProvider.md +14 -7
  80. package/docs/components/FormControl.md +1 -1
  81. package/docs/components/FormField.md +28 -27
  82. package/package.json +2 -2
@@ -437,7 +437,7 @@ export declare function useSelect(props: SelectOwnProps, model: Ref<null | undef
437
437
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
438
438
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
439
439
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
440
- }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>>;
440
+ }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>>;
441
441
  isNotched: import('vue').ComputedRef<boolean>;
442
442
  isStacked: import('vue').ComputedRef<boolean>;
443
443
  startBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
@@ -462,6 +462,8 @@ export declare function useSelect(props: SelectOwnProps, model: Ref<null | undef
462
462
  hasInsetLabelRow: import('vue').ComputedRef<boolean>;
463
463
  insetLabelRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
464
464
  stackedInputRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", {}, {}>>;
465
+ showErrorMessageRow: import('vue').ComputedRef<boolean>;
466
+ showDescriptionContent: import('vue').ComputedRef<boolean>;
465
467
  showErrorMessageContent: import('vue').ComputedRef<boolean>;
466
468
  reservesErrorMessageSpace: import('vue').ComputedRef<boolean>;
467
469
  };
@@ -721,7 +723,7 @@ export declare function useSelect(props: SelectOwnProps, model: Ref<null | undef
721
723
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
722
724
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
723
725
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
724
- }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>>>;
726
+ }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>>>;
725
727
  handleApply: () => void;
726
728
  selectOption: (option: SelectOption) => void;
727
729
  handleCancel: () => void;
@@ -16,7 +16,7 @@ function c(c) {
16
16
  return a(t, n(() => ({ iconOnly: f.value }))), {
17
17
  iconOnly: f,
18
18
  rootClassName: n(() => s({
19
- "flex flex-col gap-1": !0,
19
+ "flex min-w-0 flex-col gap-1 p-0": !0,
20
20
  "px-2": c.nested !== !0,
21
21
  "ml-3.5 translate-x-px border-l border-dark-200 py-0.5 pl-2.5 dark:border-dark-700": c.nested === !0,
22
22
  hidden: c.nested === !0 && f.value
@@ -82,7 +82,7 @@ function C(C, w) {
82
82
  "flex shrink-0 flex-col gap-2 px-2 py-2.5": !0,
83
83
  [l(P.value, "header") ?? ""]: !0
84
84
  }))), K = i(() => e(N.value?.content, {}, v({
85
- "bridge-scroll-fade-y flex min-h-0 flex-1 flex-col overflow-y-auto": !0,
85
+ "bridge-scroll-fade-y flex min-h-0 min-w-0 flex-1 flex-col overflow-y-auto": !0,
86
86
  [l(P.value, "content") ?? ""]: !0
87
87
  }))), q = i(() => e(N.value?.footer, {}, v({
88
88
  "flex shrink-0 flex-col gap-2 px-2 py-2.5": !0,
@@ -36,6 +36,7 @@ var D = /*@__PURE__*/ f({
36
36
  label: {},
37
37
  readonly: { type: Boolean },
38
38
  required: { type: Boolean },
39
+ showDescriptionOnError: { type: Boolean },
39
40
  size: {}
40
41
  }, {
41
42
  modelValue: { default: void 0 },
@@ -2,7 +2,7 @@ import { MaybeRefOrGetter, Ref } from 'vue';
2
2
  import { SliderRangeValue, SliderStop } from '@bridge-ui/core/Domain';
3
3
  import { LibDefaultsShape, MergeLibDefaults } from '@bridge-ui/core/Utils';
4
4
  import { SliderOwnProps } from '../slider.types';
5
- export declare const sliderBridgeKeys: readonly ["size", "error", "label", "corner", "classes", "disabled", "readonly", "required", "controlId", "customProps", "description", "errorMessage", "hideErrorMessage", "max", "min", "step", "color", "range", "stops", "rounded", "showStops", "showTooltip", "defaultValue"];
5
+ export declare const sliderBridgeKeys: readonly ["size", "error", "label", "corner", "classes", "disabled", "readonly", "required", "controlId", "customProps", "description", "errorMessage", "hideErrorMessage", "showDescriptionOnError", "max", "min", "step", "color", "range", "stops", "rounded", "showStops", "showTooltip", "defaultValue"];
6
6
  type SliderLibDefaults = LibDefaultsShape<SliderOwnProps, "max" | "min" | "size" | "step" | "color" | "rounded" | "showStops" | "showTooltip">;
7
7
  type SliderMerged = MergeLibDefaults<SliderOwnProps, SliderLibDefaults>;
8
8
  export type UseSliderOptions = {
@@ -60,6 +60,8 @@ export declare function useSlider(props: MaybeRefOrGetter<SliderOwnProps>, libDe
60
60
  fieldLabelProps: import('vue').ComputedRef<import('../../Label').LabelProps>;
61
61
  descriptionBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
62
62
  fieldCornerProps: import('vue').ComputedRef<import('../../Label').LabelProps>;
63
+ showErrorMessageRow: import('vue').ComputedRef<boolean>;
64
+ showDescriptionContent: import('vue').ComputedRef<boolean>;
63
65
  showErrorMessageContent: import('vue').ComputedRef<boolean>;
64
66
  };
65
67
  trackBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", {
@@ -479,7 +481,7 @@ export declare function useSlider(props: MaybeRefOrGetter<SliderOwnProps>, libDe
479
481
  getThumbKnobBind: (thumbIndex: 0 | 1) => import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {
480
482
  "aria-hidden": boolean;
481
483
  }>;
482
- tooltipProps: import('vue').ComputedRef<Partial<Omit<import('../../Tooltip').TooltipOwnProps, "slots" | "modelValue" | "anchorEl" | "content">> | undefined>;
484
+ tooltipProps: import('vue').ComputedRef<Partial<Omit<import('../../Tooltip').TooltipOwnProps, "slots" | "modelValue" | "content" | "anchorEl">> | undefined>;
483
485
  readThumbValue: (thumbIndex: 0 | 1) => number;
484
486
  };
485
487
  export type UseSliderReturn = ReturnType<typeof useSlider>;
@@ -27,6 +27,7 @@ var C = /*@__PURE__*/ c({
27
27
  readonly: { type: Boolean },
28
28
  required: { type: Boolean },
29
29
  rounded: {},
30
+ showDescriptionOnError: { type: Boolean },
30
31
  showErrorIcon: {
31
32
  type: Boolean,
32
33
  default: !0
@@ -427,7 +427,7 @@ export declare function useTextField(props: TextFieldOwnProps): {
427
427
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
428
428
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
429
429
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
430
- }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>>;
430
+ }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>>;
431
431
  isNotched: import('vue').ComputedRef<boolean>;
432
432
  isStacked: import('vue').ComputedRef<boolean>;
433
433
  startBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
@@ -452,6 +452,8 @@ export declare function useTextField(props: TextFieldOwnProps): {
452
452
  hasInsetLabelRow: import('vue').ComputedRef<boolean>;
453
453
  insetLabelRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
454
454
  stackedInputRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", {}, {}>>;
455
+ showErrorMessageRow: import('vue').ComputedRef<boolean>;
456
+ showDescriptionContent: import('vue').ComputedRef<boolean>;
455
457
  showErrorMessageContent: import('vue').ComputedRef<boolean>;
456
458
  reservesErrorMessageSpace: import('vue').ComputedRef<boolean>;
457
459
  };
@@ -676,5 +678,5 @@ export declare function useTextField(props: TextFieldOwnProps): {
676
678
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
677
679
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
678
680
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
679
- }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>>;
681
+ }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>>;
680
682
  };
@@ -30,6 +30,7 @@ var T = /*@__PURE__*/ c({
30
30
  readonly: { type: Boolean },
31
31
  required: { type: Boolean },
32
32
  rounded: {},
33
+ showDescriptionOnError: { type: Boolean },
33
34
  showErrorIcon: {
34
35
  type: Boolean,
35
36
  default: !0
@@ -428,7 +428,7 @@ export declare function useTextarea(props: TextareaOwnProps, textareaRef: Ref<nu
428
428
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
429
429
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
430
430
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
431
- }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>>;
431
+ }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>>;
432
432
  isNotched: import('vue').ComputedRef<boolean>;
433
433
  isStacked: import('vue').ComputedRef<boolean>;
434
434
  startBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
@@ -453,6 +453,8 @@ export declare function useTextarea(props: TextareaOwnProps, textareaRef: Ref<nu
453
453
  hasInsetLabelRow: import('vue').ComputedRef<boolean>;
454
454
  insetLabelRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
455
455
  stackedInputRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", {}, {}>>;
456
+ showErrorMessageRow: import('vue').ComputedRef<boolean>;
457
+ showDescriptionContent: import('vue').ComputedRef<boolean>;
456
458
  showErrorMessageContent: import('vue').ComputedRef<boolean>;
457
459
  reservesErrorMessageSpace: import('vue').ComputedRef<boolean>;
458
460
  };
@@ -678,7 +680,7 @@ export declare function useTextarea(props: TextareaOwnProps, textareaRef: Ref<nu
678
680
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
679
681
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
680
682
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
681
- }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>, {
683
+ }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>, {
682
684
  rows?: string | number | undefined;
683
685
  onInput?: ((event: Event) => void) | undefined;
684
686
  }>>;
@@ -52,6 +52,7 @@ var A = { class: "flex min-w-0 flex-1 items-center gap-1" }, j = ["aria-label"],
52
52
  readonly: { type: Boolean },
53
53
  required: { type: Boolean },
54
54
  rounded: {},
55
+ showDescriptionOnError: { type: Boolean },
55
56
  showErrorIcon: {
56
57
  type: Boolean,
57
58
  default: !0
@@ -10,7 +10,7 @@ export declare function useTimeField(props: TimeFieldOwnProps, model: Ref<null |
10
10
  fill: import('vue').ComputedRef<boolean>;
11
11
  overlay: import('vue').ComputedRef<import('@bridge-ui/core/Domain').FieldOverlayMode | undefined>;
12
12
  hasValue: import('vue').ComputedRef<boolean>;
13
- timeOnly: import('vue').ComputedRef<Pick<TimeFieldOwnProps & Record<string, unknown>, "fill" | "classes" | "overlay" | "showFooter" | "customProps" | "clearable" | "defaultValue" | "timeZone" | "editable" | "ampm" | "disableTimes" | "interval" | "maxTime" | "minTime" | "showSeconds">>;
13
+ timeOnly: import('vue').ComputedRef<Pick<TimeFieldOwnProps & Record<string, unknown>, "fill" | "classes" | "overlay" | "showFooter" | "customProps" | "editable" | "timeZone" | "ampm" | "interval" | "showSeconds" | "defaultValue" | "clearable" | "disableTimes" | "maxTime" | "minTime">>;
14
14
  formField: {
15
15
  slots: Readonly<{
16
16
  [name: string]: import('vue').Slot<any> | undefined;
@@ -438,7 +438,7 @@ export declare function useTimeField(props: TimeFieldOwnProps, model: Ref<null |
438
438
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
439
439
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
440
440
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
441
- }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>>;
441
+ }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>>;
442
442
  isNotched: import('vue').ComputedRef<boolean>;
443
443
  isStacked: import('vue').ComputedRef<boolean>;
444
444
  startBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
@@ -463,6 +463,8 @@ export declare function useTimeField(props: TimeFieldOwnProps, model: Ref<null |
463
463
  hasInsetLabelRow: import('vue').ComputedRef<boolean>;
464
464
  insetLabelRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
465
465
  stackedInputRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", {}, {}>>;
466
+ showErrorMessageRow: import('vue').ComputedRef<boolean>;
467
+ showDescriptionContent: import('vue').ComputedRef<boolean>;
466
468
  showErrorMessageContent: import('vue').ComputedRef<boolean>;
467
469
  reservesErrorMessageSpace: import('vue').ComputedRef<boolean>;
468
470
  };
@@ -687,7 +689,7 @@ export declare function useTimeField(props: TimeFieldOwnProps, model: Ref<null |
687
689
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
688
690
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
689
691
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
690
- }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>, "class", {
692
+ }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>, "class", {
691
693
  value: string;
692
694
  readonly: boolean;
693
695
  onFocus: (event: FocusEvent) => void;
@@ -22,7 +22,7 @@ export type TimePanelItem = {
22
22
  */
23
23
  export declare function useTimePanel(props: MaybeRefOrGetter<TimePanelOwnProps>, libDefaults: TimePanelLibDefaults, emit: (event: "change", value: Date | null) => void): {
24
24
  merged: import('vue').ComputedRef<TimePanelMerged>;
25
- rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Partial<Omit<TimePanelOwnProps, "error" | "color" | "fill" | "value" | "classes" | "customProps" | "rounded" | "disabled" | "readOnly" | "timeZone" | "ampm" | "disableTimes" | "interval" | "maxTime" | "minTime" | "showSeconds">>>>;
25
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Partial<Omit<TimePanelOwnProps, "error" | "color" | "fill" | "value" | "classes" | "customProps" | "rounded" | "disabled" | "timeZone" | "ampm" | "interval" | "showSeconds" | "readOnly" | "disableTimes" | "maxTime" | "minTime">>>>;
26
26
  hourItems: import('vue').ComputedRef<TimePanelItem[]>;
27
27
  columnBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
28
28
  getHourBind: (item: TimePanelItem) => import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').ButtonHTMLAttributes | undefined, {
@@ -9,7 +9,7 @@ type TimePickerMerged = MergeLibDefaults<TimePickerOwnProps, TimePickerLibDefaul
9
9
  */
10
10
  export declare function useTimePicker(props: MaybeRefOrGetter<TimePickerOwnProps>, libDefaults: TimePickerLibDefaults, emit: SetupContext<TimePickerEmits>["emit"]): {
11
11
  merged: import('vue').ComputedRef<TimePickerMerged>;
12
- rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Partial<Omit<TimePickerOwnProps, "error" | "color" | "fill" | "value" | "classes" | "showFooter" | "customProps" | "rounded" | "disabled" | "defaultValue" | "readOnly" | "timeZone" | "ampm" | "disableTimes" | "interval" | "maxTime" | "minTime" | "showSeconds">>>>;
12
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Partial<Omit<TimePickerOwnProps, "error" | "color" | "fill" | "value" | "classes" | "showFooter" | "customProps" | "rounded" | "disabled" | "timeZone" | "ampm" | "interval" | "showSeconds" | "defaultValue" | "readOnly" | "disableTimes" | "maxTime" | "minTime">>>>;
13
13
  footerBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
14
14
  showFooter: import('vue').ComputedRef<boolean>;
15
15
  contentBind: import('vue').ComputedRef<string>;
@@ -52,6 +52,7 @@ var A = { class: "flex min-w-0 flex-1 items-center gap-1" }, j = ["aria-label"],
52
52
  readonly: { type: Boolean },
53
53
  required: { type: Boolean },
54
54
  rounded: {},
55
+ showDescriptionOnError: { type: Boolean },
55
56
  showErrorIcon: {
56
57
  type: Boolean,
57
58
  default: !0
@@ -10,7 +10,7 @@ export declare function useTimeRangeField(props: TimeRangeFieldOwnProps, model:
10
10
  fill: import('vue').ComputedRef<boolean>;
11
11
  overlay: import('vue').ComputedRef<import('@bridge-ui/core/Domain').FieldOverlayMode | undefined>;
12
12
  hasValue: import('vue').ComputedRef<boolean>;
13
- timeOnly: import('vue').ComputedRef<Pick<TimeRangeFieldOwnProps & Record<string, unknown>, "fill" | "classes" | "overlay" | "showFooter" | "customProps" | "clearable" | "defaultValue" | "timeZone" | "editable" | "ampm" | "disableTimes" | "interval" | "maxTime" | "minTime" | "showSeconds">>;
13
+ timeOnly: import('vue').ComputedRef<Pick<TimeRangeFieldOwnProps & Record<string, unknown>, "fill" | "classes" | "overlay" | "showFooter" | "customProps" | "editable" | "timeZone" | "ampm" | "interval" | "showSeconds" | "defaultValue" | "clearable" | "disableTimes" | "maxTime" | "minTime">>;
14
14
  formField: {
15
15
  slots: Readonly<{
16
16
  [name: string]: import('vue').Slot<any> | undefined;
@@ -438,7 +438,7 @@ export declare function useTimeRangeField(props: TimeRangeFieldOwnProps, model:
438
438
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
439
439
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
440
440
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
441
- }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>>;
441
+ }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>>;
442
442
  isNotched: import('vue').ComputedRef<boolean>;
443
443
  isStacked: import('vue').ComputedRef<boolean>;
444
444
  startBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
@@ -463,6 +463,8 @@ export declare function useTimeRangeField(props: TimeRangeFieldOwnProps, model:
463
463
  hasInsetLabelRow: import('vue').ComputedRef<boolean>;
464
464
  insetLabelRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
465
465
  stackedInputRowBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", {}, {}>>;
466
+ showErrorMessageRow: import('vue').ComputedRef<boolean>;
467
+ showDescriptionContent: import('vue').ComputedRef<boolean>;
466
468
  showErrorMessageContent: import('vue').ComputedRef<boolean>;
467
469
  reservesErrorMessageSpace: import('vue').ComputedRef<boolean>;
468
470
  };
@@ -687,7 +689,7 @@ export declare function useTimeRangeField(props: TimeRangeFieldOwnProps, model:
687
689
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
688
690
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
689
691
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
690
- }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showErrorIcon" | "startIcon">>>, "class", {
692
+ }, Partial<Omit<Omit<FormFieldOwnProps, "field">, "error" | "color" | "end" | "size" | "classes" | "customProps" | "rounded" | "variant" | "label" | "disabled" | "required" | "corner" | "description" | "errorMessage" | "start" | "endIcon" | "errorIcon" | "hideErrorMessage" | "readonly" | "showDescriptionOnError" | "showErrorIcon" | "startIcon">>>, "class", {
691
693
  value: string;
692
694
  readonly: boolean;
693
695
  onFocus: (event: FocusEvent) => void;
@@ -10,7 +10,7 @@ type TimeRangePickerMerged = MergeLibDefaults<TimeRangePickerOwnProps, TimeRange
10
10
  export declare function useTimeRangePicker(props: MaybeRefOrGetter<TimeRangePickerOwnProps>, libDefaults: TimeRangePickerLibDefaults, emit: SetupContext<TimeRangePickerEmits>["emit"]): {
11
11
  merged: import('vue').ComputedRef<TimeRangePickerMerged>;
12
12
  endBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
13
- rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Partial<Omit<TimeRangePickerOwnProps, "error" | "color" | "fill" | "value" | "classes" | "showFooter" | "customProps" | "rounded" | "disabled" | "defaultValue" | "readOnly" | "timeZone" | "ampm" | "disableTimes" | "interval" | "maxTime" | "minTime" | "showSeconds" | "endTitle" | "startTitle">>>>;
13
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Partial<Omit<TimeRangePickerOwnProps, "error" | "color" | "fill" | "value" | "classes" | "showFooter" | "customProps" | "rounded" | "disabled" | "timeZone" | "ampm" | "interval" | "showSeconds" | "defaultValue" | "readOnly" | "disableTimes" | "maxTime" | "minTime" | "endTitle" | "startTitle">>>>;
14
14
  startBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
15
15
  footerBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
16
16
  titlesBind: import('vue').ComputedRef<string>;
@@ -19,7 +19,7 @@ export declare function useTooltip(props: TooltipOwnProps, libDefaults: TooltipL
19
19
  show: import('vue').ComputedRef<boolean>;
20
20
  merged: import('vue').ComputedRef<TooltipMerged>;
21
21
  mounted: Ref<boolean, boolean>;
22
- rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Omit<Omit<TooltipProps, "color" | "offset" | "size" | "classes" | "customProps" | "rounded" | "disabled" | "placement" | "teleportTo" | "strategy" | "content" | "arrow" | "closeDelay" | "openDelay">, "anchorEl" | "onShowChange">>>;
22
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Omit<Omit<TooltipProps, "color" | "offset" | "size" | "classes" | "customProps" | "rounded" | "disabled" | "content" | "placement" | "teleportTo" | "strategy" | "arrow" | "closeDelay" | "openDelay">, "anchorEl" | "onShowChange">>>;
23
23
  tooltipId: string;
24
24
  arrowBind: import('vue').ComputedRef<({
25
25
  "aria-hidden": boolean;
@@ -4,8 +4,14 @@ import { ResolvedFieldOverlay } from '@bridge-ui/core/Domain';
4
4
  import { FormFieldSize, IconSize } from '@bridge-ui/core/Tokens';
5
5
  import { useBridgeUI } from '../Provider/useBridgeUI';
6
6
  type RegistryEntryFor<K extends keyof BridgeUIComponentsConfig> = NonNullable<BridgeUIComponentsConfig[K]>;
7
+ type BridgeUIRegistryChromeEntry = {
8
+ classes?: object;
9
+ defaultProps?: object;
10
+ tokens?: object;
11
+ };
7
12
  export type UseBridgeUIComponentReturn<P extends object, K extends keyof BridgeUIComponentsConfig = keyof BridgeUIComponentsConfig> = {
8
13
  bridge: ReturnType<typeof useBridgeUI>;
14
+ chromeEntry: ComputedRef<undefined | BridgeUIRegistryChromeEntry>;
9
15
  components: ComputedRef<null | BridgeUIComponentsConfig>;
10
16
  entry: ComputedRef<undefined | RegistryEntryFor<K>>;
11
17
  merged: ComputedRef<P>;
@@ -52,9 +58,12 @@ export declare function usePickerFill({ fill, overlay, componentName, }: {
52
58
  overlay?: MaybeRefOrGetter<undefined | ResolvedFieldOverlay>;
53
59
  }): ComputedRef<boolean>;
54
60
  /**
55
- * Merges `entry.classes` (Bridge provider) with `props.classes` (instance).
61
+ * Merges chrome `classes`, public registry `classes`, and instance `props.classes`.
56
62
  */
57
- export declare function useBridgeUIMergedRegistryClasses<C extends object>({ entry, props, }: {
63
+ export declare function useBridgeUIMergedRegistryClasses<C extends object>({ entry, props, chromeEntry, }: {
64
+ chromeEntry?: ComputedRef<undefined | {
65
+ classes?: object;
66
+ }>;
58
67
  entry: ComputedRef<undefined | {
59
68
  classes?: object;
60
69
  }>;
@@ -6,9 +6,9 @@ import { useOptionalModel as c } from "./useOptionalModel.js";
6
6
  import { computed as l, defineComponent as u, toValue as d, unref as f } from "vue";
7
7
  import { get as p, isNil as m } from "es-toolkit/compat";
8
8
  import { resolveFieldShowFooter as h, resolvePickerFill as g } from "@bridge-ui/core/Domain";
9
- import { createMergeNestedComponentProps as _, createMergePartBind as v, mergeBridgeUILayeredClasses as y, mergePropsWithBridgeUIDefaults as b } from "@bridge-ui/core/Utils";
9
+ import { createMergeNestedComponentProps as _, createMergePartBind as v, getBridgeUIChromeComponentName as y, getBridgeUIRegistryDefaultProp as b, mergeBridgeUILayeredClasses as x, mergePropsWithBridgeUIDefaults as S } from "@bridge-ui/core/Utils";
10
10
  //#region src/Utils/index.ts
11
- function x(e) {
11
+ function C(e) {
12
12
  return u({
13
13
  name: "HeadlessTestComponent",
14
14
  setup() {
@@ -16,50 +16,54 @@ function x(e) {
16
16
  }
17
17
  });
18
18
  }
19
- var S = v("class"), C = _(S);
20
- function w({ props: t, libDefaults: n, componentName: r }) {
21
- let i = e(), a = l(() => m(i) ? null : f(i.components));
19
+ var w = v("class"), T = _(w);
20
+ function E({ props: t, libDefaults: n, componentName: r }) {
21
+ let i = e(), a = l(() => m(i) ? null : f(i.components)), o = l(() => {
22
+ if (r) return p(a.value, r);
23
+ }), s = l(() => {
24
+ let e = y(r);
25
+ if (e) return p(a.value, e);
26
+ });
22
27
  return {
23
- entry: l(() => {
24
- if (r) return p(a.value, r);
25
- }),
28
+ entry: o,
26
29
  bridge: i,
27
- merged: l(() => b({
30
+ merged: l(() => S({
28
31
  libDefaults: n,
29
32
  componentName: r,
30
33
  props: d(t),
31
34
  components: a.value,
32
35
  formDefaults: i?.global.value.formDefaults
33
36
  })),
34
- components: a
37
+ components: a,
38
+ chromeEntry: s
35
39
  };
36
40
  }
37
- function T({ overlay: t, showFooter: n, componentName: r }) {
41
+ function D({ overlay: t, showFooter: n, componentName: r }) {
38
42
  let i = e();
39
43
  return l(() => {
40
- let e = r ? p(f(i?.components), [
41
- r,
42
- "defaultProps",
43
- "showFooter"
44
- ]) : void 0;
44
+ let e = b({
45
+ componentName: r,
46
+ prop: "showFooter",
47
+ components: f(i?.components)
48
+ });
45
49
  return h(d(n) ?? e, d(t));
46
50
  });
47
51
  }
48
- function E({ fill: t, overlay: n, componentName: r }) {
52
+ function O({ fill: t, overlay: n, componentName: r }) {
49
53
  let i = e();
50
54
  return l(() => {
51
- let e = r ? p(f(i?.components), [
52
- r,
53
- "defaultProps",
54
- "fill"
55
- ]) : void 0;
55
+ let e = b({
56
+ prop: "fill",
57
+ componentName: r,
58
+ components: f(i?.components)
59
+ });
56
60
  return g(d(t) ?? e, d(n));
57
61
  });
58
62
  }
59
- function D({ entry: e, props: t }) {
60
- return l(() => y(p(e.value, "classes"), d(t).classes));
63
+ function k({ entry: e, props: t, chromeEntry: n }) {
64
+ return l(() => x(p(n?.value, "classes"), p(e.value, "classes"), d(t).classes));
61
65
  }
62
- function O(e) {
66
+ function A(e) {
63
67
  return p({
64
68
  xs: "xs",
65
69
  sm: "sm",
@@ -70,7 +74,7 @@ function O(e) {
70
74
  "2xl": "lg"
71
75
  }, e ?? "md");
72
76
  }
73
- function k(e) {
77
+ function j(e) {
74
78
  if (e instanceof HTMLElement) return e;
75
79
  if (e && "$el" in e) {
76
80
  let t = e.$el;
@@ -79,4 +83,4 @@ function k(e) {
79
83
  return null;
80
84
  }
81
85
  //#endregion
82
- export { t as RenderFn, x as defineHeadlessComponent, n as hasNamedSlot, r as hasSlotOrProp, i as isPropPresent, C as mergeNestedComponentProps, S as mergePartBind, a as presentSlotNames, O as resolveFieldAdornmentIconSize, k as resolveVnodeRefElement, o as useBreakpoint, w as useBridgeUIComponent, D as useBridgeUIMergedRegistryClasses, T as useFieldShowFooter, s as useHoldRepeat, c as useOptionalModel, E as usePickerFill };
86
+ export { t as RenderFn, C as defineHeadlessComponent, n as hasNamedSlot, r as hasSlotOrProp, i as isPropPresent, T as mergeNestedComponentProps, w as mergePartBind, a as presentSlotNames, A as resolveFieldAdornmentIconSize, j as resolveVnodeRefElement, o as useBreakpoint, E as useBridgeUIComponent, k as useBridgeUIMergedRegistryClasses, D as useFieldShowFooter, s as useHoldRepeat, c as useOptionalModel, O as usePickerFill };
@@ -38,7 +38,7 @@ declare module "@bridge-ui/core/Config" {
38
38
  }
39
39
  interface AutocompleteConfigOverrides {
40
40
  classes: AutocompleteClasses;
41
- defaultProps: Partial<Pick<AutocompleteProps, "size" | "color" | "rounded" | "variant" | "showFooter" | "showErrorIcon" | "hideErrorMessage">>;
41
+ defaultProps: Partial<Pick<AutocompleteProps, "size" | "color" | "rounded" | "variant" | "showFooter" | "showErrorIcon" | "hideErrorMessage" | "showDescriptionOnError">>;
42
42
  }
43
43
  interface AvatarConfigOverrides {
44
44
  classes: AvatarClasses;
@@ -107,15 +107,15 @@ declare module "@bridge-ui/core/Config" {
107
107
  }
108
108
  interface NumberFieldConfigOverrides {
109
109
  classes: NumberFieldClasses;
110
- defaultProps: Partial<Pick<NumberFieldProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "controlVariant" | "hideErrorMessage">>;
110
+ defaultProps: Partial<Pick<NumberFieldProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "controlVariant" | "hideErrorMessage" | "showDescriptionOnError">>;
111
111
  }
112
112
  interface OtpFieldConfigOverrides {
113
113
  classes: OtpFieldClasses;
114
- defaultProps: Partial<Pick<OtpFieldProps, "size" | "type" | "color" | "length" | "rounded" | "variant" | "hideErrorMessage">>;
114
+ defaultProps: Partial<Pick<OtpFieldProps, "size" | "type" | "color" | "length" | "rounded" | "variant" | "hideErrorMessage" | "showDescriptionOnError">>;
115
115
  }
116
116
  interface PasswordFieldConfigOverrides {
117
117
  classes: PasswordFieldClasses;
118
- defaultProps: Partial<Pick<PasswordFieldProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "hideErrorMessage">>;
118
+ defaultProps: Partial<Pick<PasswordFieldProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "hideErrorMessage" | "showDescriptionOnError">>;
119
119
  }
120
120
  interface ProgressConfigOverrides {
121
121
  classes: ProgressClasses;
@@ -131,7 +131,7 @@ declare module "@bridge-ui/core/Config" {
131
131
  }
132
132
  interface SelectConfigOverrides {
133
133
  classes: SelectClasses;
134
- defaultProps: Partial<Pick<SelectProps, "size" | "color" | "rounded" | "variant" | "showFooter" | "showErrorIcon" | "hideErrorMessage">>;
134
+ defaultProps: Partial<Pick<SelectProps, "size" | "color" | "rounded" | "variant" | "showFooter" | "showErrorIcon" | "hideErrorMessage" | "showDescriptionOnError">>;
135
135
  }
136
136
  interface SidebarConfigOverrides {
137
137
  classes: SidebarClasses & SidebarInsetClasses & SidebarProviderClasses;
@@ -143,7 +143,7 @@ declare module "@bridge-ui/core/Config" {
143
143
  }
144
144
  interface SliderConfigOverrides {
145
145
  classes: SliderClasses;
146
- defaultProps: Partial<Pick<SliderProps, "max" | "min" | "size" | "step" | "color" | "rounded" | "showStops" | "showTooltip" | "hideErrorMessage">>;
146
+ defaultProps: Partial<Pick<SliderProps, "max" | "min" | "size" | "step" | "color" | "rounded" | "showStops" | "showTooltip" | "hideErrorMessage" | "showDescriptionOnError">>;
147
147
  }
148
148
  interface SpinnerConfigOverrides {
149
149
  classes: SpinnerClasses;
@@ -155,10 +155,10 @@ declare module "@bridge-ui/core/Config" {
155
155
  }
156
156
  interface TextareaConfigOverrides {
157
157
  classes: TextareaClasses;
158
- defaultProps: Partial<Pick<TextareaProps, "size" | "color" | "resize" | "rounded" | "variant" | "autosize" | "showErrorIcon" | "hideErrorMessage">>;
158
+ defaultProps: Partial<Pick<TextareaProps, "size" | "color" | "resize" | "rounded" | "variant" | "autosize" | "showErrorIcon" | "hideErrorMessage" | "showDescriptionOnError">>;
159
159
  }
160
160
  interface TextFieldConfigOverrides {
161
161
  classes: TextFieldClasses;
162
- defaultProps: Partial<Pick<TextFieldProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "hideErrorMessage">>;
162
+ defaultProps: Partial<Pick<TextFieldProps, "size" | "color" | "rounded" | "variant" | "showErrorIcon" | "hideErrorMessage" | "showDescriptionOnError">>;
163
163
  }
164
164
  }
@@ -15,6 +15,8 @@ import { Alert } from "@bridge-ui/vue/Components/Alert";
15
15
  ```vue
16
16
  <Alert color="primary" title="Heads up" />
17
17
 
18
+ <Alert color="success">Saved successfully.</Alert>
19
+
18
20
  <Alert color="error" title="Something went wrong">
19
21
  Please try again in a few minutes.
20
22
  </Alert>
@@ -81,10 +83,10 @@ import { Alert } from "@bridge-ui/vue/Components/Alert";
81
83
  | `color` | `AlertColor` | "primary" | The color to apply to the alert. |
82
84
  | `customProps` | `AlertCustomProps` | — | Extra props for internal parts (`icon`, `title`, `body`, etc.). Root HTML attributes stay on the component top level. |
83
85
  | `icon` | `LucideIcon \| null` | — | The icon to apply to the alert. Use `null` to omit the prop icon. |
84
- | `padding` | `AlertPadding` | "medium" | The padding to apply to the alert. |
86
+ | `padding` | `AlertPadding` | "medium" | Root padding scale. Each token also sets body indent under the title row. |
85
87
  | `rounded` | `AlertRounded` | "sm" | The roundedness of the alert. |
86
88
  | `shadow` | `AlertShadow` | "sm" | The shadow to apply to the alert. |
87
- | `title` | `string` | — | The title to apply to the alert. |
89
+ | `title` | `string` | — | Title in the heading row. When omitted, the default slot is used as the title. |
88
90
  | `variant` | `AlertVariant` | "flat" | The variant of the alert. |
89
91
 
90
92
  ## Accessibility
@@ -1,6 +1,6 @@
1
1
  # BaseField
2
2
 
3
- > Building block for composite field chrome. Prefer `OtpField` / `Slider` in apps; BaseField remains exported for advanced composition. Not a registry key — theme chrome via `tokens.baseField` on the public parent (e.g. `components.Slider.tokens.baseField`).
3
+ > Building block for composite field chrome. Prefer `OtpField` / `Slider` in apps; BaseField remains exported for advanced composition. Theme shared chrome via `components.BaseField`.
4
4
 
5
5
  Shared vertical field chrome (label, corner, start/end slots, description,
6
6
  error message) for OtpField, Slider, and similar controls.
@@ -103,23 +103,24 @@ const field = useBaseField(() => ({
103
103
 
104
104
  ## Props
105
105
 
106
- | Prop | Type | Default | Description |
107
- | ------------------ | ---------------------- | ------- | -------------------------------------------------------------------------------------------- |
108
- | `classes` | `BaseFieldClasses` | — | Classes for the field chrome and control group layout. |
109
- | `controlId` | `string` | auto | Id for the control group and related labels. |
110
- | `corner` | `string` | — | Secondary header text at the inline end. |
111
- | `customProps` | `BaseFieldCustomProps` | — | Extra props for internal parts (`root`, `group`, `label`, …). |
112
- | `description` | `string` | — | Helper text below the control group (hidden when invalid). |
113
- | `disabled` | `boolean` | `false` | Disables the field control group. |
114
- | `error` | `boolean` | `false` | Invalid styling on the label and control group. |
115
- | `errorMessage` | `string` | — | Error message below the control group. |
116
- | `field` | `UseBaseFieldReturn` | — | Pre-composed field chrome API from `useBaseField`. Used by `<BaseField :field="…" />`. |
117
- | `hideErrorMessage` | `boolean` | `false` | Hides the error message row and reserved space. |
118
- | `label` | `string` | — | Primary label above the control group. |
119
- | `readonly` | `boolean` | `false` | Read-only field control group. |
120
- | `required` | `boolean` | `false` | Shows a required asterisk on the label. |
121
- | `size` | `BaseFieldSize` | `"md"` | Label typography and control group gap scale. |
122
- | `slots` | `BaseFieldSlots` | | `#label`, `#corner`, `#description`, `#errorMessage`, `#start`, `#end`, and default control. |
106
+ | Prop | Type | Default | Description |
107
+ | ------------------------ | ---------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- |
108
+ | `classes` | `BaseFieldClasses` | — | Classes for the field chrome and control group layout. |
109
+ | `controlId` | `string` | auto | Id for the control group and related labels. |
110
+ | `corner` | `string` | — | Secondary header text at the inline end. |
111
+ | `customProps` | `BaseFieldCustomProps` | — | Extra props for internal parts (`root`, `group`, `label`, …). |
112
+ | `description` | `string` | — | Helper text below the control group. Hidden when `error` and an error message are set, unless `showDescriptionOnError`. |
113
+ | `disabled` | `boolean` | `false` | Disables the field control group. |
114
+ | `error` | `boolean` | `false` | Invalid styling on the label and control group. Hides description when an error message is shown, unless `showDescriptionOnError`. |
115
+ | `errorMessage` | `string` | — | Error message below the control group. |
116
+ | `field` | `UseBaseFieldReturn` | — | Pre-composed field chrome API from `useBaseField`. Used by `<BaseField :field="…" />`. |
117
+ | `hideErrorMessage` | `boolean` | `false` | When `true`, does not reserve the error row. That row is also omitted while a description is shown. |
118
+ | `label` | `string` | — | Primary label above the control group. |
119
+ | `readonly` | `boolean` | `false` | Read-only field control group. |
120
+ | `required` | `boolean` | `false` | Shows a required asterisk on the label. |
121
+ | `showDescriptionOnError` | `boolean` | `false` | When `true`, keeps the description visible while the field is invalid. |
122
+ | `size` | `BaseFieldSize` | `"md"` | Label typography and control group gap scale. |
123
+ | `slots` | `BaseFieldSlots` | — | `#label`, `#corner`, `#description`, `#errorMessage`, `#start`, `#end`, and default control. |
123
124
 
124
125
  ## Related components
125
126