@bridge-ui/vue 0.0.2 → 0.0.3

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 (83) hide show
  1. package/dist/Actions/Dialog/BridgeDialogAction.vue_vue_type_script_setup_true_lang.js +19 -35
  2. package/dist/Actions/Snackbar/BridgeSnackbarAction.vue_vue_type_script_setup_true_lang.js +41 -54
  3. package/dist/Actions/Snackbar/BridgeSnackbarHost.vue_vue_type_script_setup_true_lang.js +1 -1
  4. package/dist/Components/Alert/alertDefaultIcons.d.ts +1 -1
  5. package/dist/Components/Alert/composables/useAlert.js +2 -2
  6. package/dist/Components/Avatar/Avatar.vue_vue_type_script_setup_true_lang.js +1 -0
  7. package/dist/Components/Avatar/avatar.types.d.ts +34 -1
  8. package/dist/Components/Avatar/composables/useAvatar.d.ts +4 -4
  9. package/dist/Components/Avatar/composables/useAvatar.js +10 -9
  10. package/dist/Components/Avatar/index.d.ts +1 -1
  11. package/dist/Components/Badge/composables/useBadge.js +2 -2
  12. package/dist/Components/Button/composables/useButton.d.ts +1 -1
  13. package/dist/Components/Button/composables/useButton.js +2 -2
  14. package/dist/Components/Card/composables/useCard.js +4 -4
  15. package/dist/Components/Checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +0 -1
  16. package/dist/Components/Checkbox/composables/useCheckbox.d.ts +5 -10
  17. package/dist/Components/Checkbox/composables/useCheckbox.js +2 -2
  18. package/dist/Components/Chip/composables/useChip.js +2 -2
  19. package/dist/Components/Divider/composables/useDivider.js +2 -2
  20. package/dist/Components/Drawer/Drawer.vue.d.ts +1 -1
  21. package/dist/Components/Drawer/composables/useDrawer.d.ts +1 -1
  22. package/dist/Components/Drawer/composables/useDrawer.js +2 -2
  23. package/dist/Components/FormControl/FormControl.vue_vue_type_script_setup_true_lang.js +24 -18
  24. package/dist/Components/FormControl/FormControlLabel.js +5 -0
  25. package/dist/Components/FormControl/FormControlLabel.vue.d.ts +8 -0
  26. package/dist/Components/FormControl/FormControlLabel.vue_vue_type_script_setup_true_lang.js +19 -0
  27. package/dist/Components/FormControl/composables/useFormControl.d.ts +7 -11
  28. package/dist/Components/FormControl/composables/useFormControl.js +62 -68
  29. package/dist/Components/FormControl/formControl.types.d.ts +19 -30
  30. package/dist/Components/FormField/FilledFormField.vue_vue_type_script_setup_true_lang.js +23 -25
  31. package/dist/Components/FormField/FormFieldLabel.js +5 -0
  32. package/dist/Components/FormField/FormFieldLabel.vue.d.ts +7 -0
  33. package/dist/Components/FormField/FormFieldLabel.vue_vue_type_script_setup_true_lang.js +16 -0
  34. package/dist/Components/FormField/NotchedFormField.vue_vue_type_script_setup_true_lang.js +22 -24
  35. package/dist/Components/FormField/OutlinedFormField.vue_vue_type_script_setup_true_lang.js +23 -25
  36. package/dist/Components/FormField/StackedFormField.vue_vue_type_script_setup_true_lang.js +25 -27
  37. package/dist/Components/FormField/UnderlinedFormField.vue_vue_type_script_setup_true_lang.js +23 -25
  38. package/dist/Components/FormField/composables/useFormField.d.ts +3 -3
  39. package/dist/Components/FormField/composables/useFormField.js +112 -111
  40. package/dist/Components/FormField/formField.types.d.ts +6 -3
  41. package/dist/Components/Icon/composables/useIcon.js +2 -2
  42. package/dist/Components/Label/composables/useLabel.js +2 -2
  43. package/dist/Components/Link/composables/useLink.js +2 -2
  44. package/dist/Components/Listbox/Listbox.vue.d.ts +1 -1
  45. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +82 -118
  46. package/dist/Components/Listbox/composables/useListbox.js +2 -2
  47. package/dist/Components/Listbox/listbox.types.d.ts +39 -5
  48. package/dist/Components/Menu/Menu.vue.d.ts +2 -2
  49. package/dist/Components/Menu/composables/useMenu.d.ts +1 -1
  50. package/dist/Components/Menu/composables/useMenu.js +2 -2
  51. package/dist/Components/Modal/composables/useModal.js +2 -2
  52. package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +42 -44
  53. package/dist/Components/NumberField/composables/useNumberField.d.ts +3 -4
  54. package/dist/Components/NumberField/numberField.types.d.ts +34 -2
  55. package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +28 -29
  56. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +3 -4
  57. package/dist/Components/PasswordField/passwordField.types.d.ts +22 -2
  58. package/dist/Components/Progress/composables/useProgress.js +2 -2
  59. package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +0 -1
  60. package/dist/Components/Radio/composables/useRadio.d.ts +5 -10
  61. package/dist/Components/Radio/composables/useRadio.js +2 -2
  62. package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +55 -54
  63. package/dist/Components/Select/composables/useSelect.d.ts +16 -16
  64. package/dist/Components/Select/composables/useSelect.js +13 -13
  65. package/dist/Components/Select/select.types.d.ts +19 -3
  66. package/dist/Components/Skeleton/composables/useSkeleton.js +2 -2
  67. package/dist/Components/Snackbar/composables/useSnackbar.js +1 -1
  68. package/dist/Components/Spinner/composables/useSpinner.js +2 -2
  69. package/dist/Components/Switch/Switch.vue_vue_type_script_setup_true_lang.js +0 -1
  70. package/dist/Components/Switch/composables/useSwitch.d.ts +5 -10
  71. package/dist/Components/Switch/composables/useSwitch.js +2 -2
  72. package/dist/Components/Tabs/Tabs.vue_vue_type_script_setup_true_lang.js +16 -16
  73. package/dist/Components/Tabs/composables/useTabs.js +2 -2
  74. package/dist/Components/Tabs/tabs.types.d.ts +27 -1
  75. package/dist/Components/TextField/composables/useTextField.d.ts +3 -4
  76. package/dist/Components/Textarea/composables/useTextarea.d.ts +3 -4
  77. package/dist/Components/Textarea/composables/useTextarea.js +2 -2
  78. package/dist/Utils/index.d.ts +9 -2
  79. package/dist/Utils/index.js +11 -11
  80. package/dist/index.d.ts +1 -1
  81. package/dist/index.js +14 -14
  82. package/dist/theme.css +1 -1
  83. package/package.json +2 -2
@@ -1,19 +1,19 @@
1
1
  import { hasNamedSlot as e, resolveNamedSlot as t } from "../../Utils/slotOrProp.js";
2
- import n from "../List/List.js";
3
- import { useListbox as r } from "./composables/useListbox.js";
4
- import { LISTBOX_INJECTION_KEY as i } from "./listboxInjectionKey.js";
5
- import ee from "../ListItem/ListItem.js";
6
- import te from "../ListSection/ListSection.js";
2
+ import { mergeNestedComponentProps as n } from "../../Utils/index.js";
3
+ import r from "../List/List.js";
4
+ import { useListbox as i } from "./composables/useListbox.js";
5
+ import { LISTBOX_INJECTION_KEY as ee } from "./listboxInjectionKey.js";
6
+ import te from "../ListItem/ListItem.js";
7
+ import ne from "../ListSection/ListSection.js";
7
8
  import a from "../Menu/Menu.js";
8
- import ne from "../Progress/Progress.js";
9
- import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createSlots as f, createVNode as p, defineComponent as m, guardReactiveProps as h, mergeModels as g, mergeProps as _, normalizeClass as v, normalizeProps as y, openBlock as b, provide as x, ref as S, renderList as C, renderSlot as w, resolveDynamicComponent as T, toDisplayString as E, unref as D, useModel as O, useSlots as k, watch as A, withCtx as j } from "vue";
10
- import { isNil as M } from "es-toolkit/compat";
11
- import { cn as N, entriesFromListboxOptions as re, flattenListboxOptions as ie, mapListboxEntriesToRows as ae } from "@bridge-ui/core";
12
- import { Check as oe } from "@lucide/vue";
9
+ import o from "../Progress/Progress.js";
10
+ import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createSlots as p, createVNode as m, defineComponent as h, guardReactiveProps as g, mergeModels as _, mergeProps as v, normalizeProps as y, openBlock as b, provide as x, ref as S, renderList as C, renderSlot as w, resolveDynamicComponent as T, toDisplayString as E, unref as D, useModel as re, useSlots as ie, watch as O, withCtx as k } from "vue";
11
+ import { isNil as ae } from "es-toolkit/compat";
12
+ import { cn as A, entriesFromListboxOptions as j, flattenListboxOptions as M, mapListboxEntriesToRows as N } from "@bridge-ui/core";
13
13
  //#region src/Components/Listbox/Listbox.vue?vue&type=script&setup=true&lang.ts
14
- var se = { key: 1 }, P = /* @__PURE__ */ m({
14
+ var P = { key: 1 }, F = /* @__PURE__ */ h({
15
15
  __name: "Listbox",
16
- props: /* @__PURE__ */ g({
16
+ props: /* @__PURE__ */ _({
17
17
  anchorEl: {},
18
18
  classes: {},
19
19
  color: { default: "primary" },
@@ -59,156 +59,120 @@ var se = { key: 1 }, P = /* @__PURE__ */ m({
59
59
  },
60
60
  modelModifiers: {}
61
61
  }),
62
- emits: /* @__PURE__ */ g([
62
+ emits: /* @__PURE__ */ _([
63
63
  "registered-options-change",
64
64
  "select",
65
65
  "show-change"
66
66
  ], ["update:modelValue"]),
67
- setup(m, { emit: g }) {
68
- let P = k(), F = g, I = O(m, "modelValue");
69
- A(I, (e) => {
70
- F("show-change", e);
67
+ setup(h, { emit: _ }) {
68
+ let F = ie(), I = _, L = re(h, "modelValue");
69
+ O(L, (e) => {
70
+ I("show-change", e);
71
71
  });
72
- let L = m, { merged: R, checkClass: z, scrollBind: B, messageBind: V, sizeClasses: H, mergedClasses: U, optionSelectedClass: W, optionHighlightedClass: G } = r(L, {
72
+ let R = h, { merged: z, checkClass: B, scrollBind: V, messageBind: H, sizeClasses: U, mergedClasses: W, optionSelectedClass: G, optionHighlightedClass: oe } = i(R, {
73
73
  size: "md",
74
74
  color: "primary"
75
- }), ce = s(() => L.options ?? []), K = s(() => L.entries ? L.entries : re(ce.value)), q = s(() => ie(K.value)), J = s(() => e(P, "default")), Y = s(() => !L.loading && !J.value && q.value.length === 0 && L.hideEmptyMessage !== !0), X = s(() => N(z.value, U.value.check)), Z = S([]);
75
+ }), K = c(() => R.options ?? []), q = c(() => R.entries ? R.entries : j(K.value)), J = c(() => M(q.value)), Y = c(() => e(F, "default")), X = c(() => !R.loading && !Y.value && J.value.length === 0 && R.hideEmptyMessage !== !0), se = c(() => A(B.value, W.value.check)), Z = S([]);
76
76
  function Q(e) {
77
- return L.isSelected?.(e) ?? !1;
77
+ return R.isSelected?.(e) ?? !1;
78
78
  }
79
- function le(e) {
80
- return L.highlightedIndex === e;
81
- }
82
- function ue(e) {
83
- e.preventDefault();
79
+ function ce(e) {
80
+ e.disabled || I("select", e);
84
81
  }
85
- function de(e, t) {
86
- let n = {
87
- tabindex: -1,
88
- onMousedown: ue,
89
- class: N(H.value?.option)
90
- };
91
- return Q(e.value) ? n.class = N(n.class, W.value, U.value.optionSelected) : le(t) && (n.class = N(n.class, G.value, U.value.optionHighlighted)), {
92
- interactive: n,
93
- primary: { class: H.value?.primary },
94
- secondary: { class: H.value?.secondary }
95
- };
96
- }
97
- function $(e) {
98
- e.disabled || F("select", e);
99
- }
100
- function fe(e) {
82
+ function le(e) {
101
83
  return Z.value.some((t) => String(t.value) === String(e.value)) || (Z.value = [...Z.value, e]), () => {
102
84
  Z.value = Z.value.filter((t) => String(t.value) !== String(e.value));
103
85
  };
104
86
  }
105
- function pe(e) {
106
- return (J.value ? Z.value : q.value).findIndex((t) => String(t.value) === String(e));
87
+ function ue(e) {
88
+ return (Y.value ? Z.value : J.value).findIndex((t) => String(t.value) === String(e));
107
89
  }
108
- A(Z, (e) => {
109
- J.value && F("registered-options-change", e);
110
- }, { deep: !0 }), x(i, s(() => ({
111
- getOptionIndex: pe,
112
- registerOption: fe,
113
- onSelect: $,
114
- listboxId: L.listboxId,
90
+ O(Z, (e) => {
91
+ Y.value && I("registered-options-change", e);
92
+ }, { deep: !0 }), x(ee, c(() => ({
93
+ getOptionIndex: ue,
94
+ registerOption: le,
95
+ onSelect: ce,
96
+ listboxId: R.listboxId,
115
97
  isSelected: Q,
116
- sizeClasses: H.value,
117
- showCheckmark: L.showCheckmark,
118
- checkClass: X.value,
119
- highlightedIndex: L.highlightedIndex,
120
- optionSelectedClass: W.value,
121
- optionHighlightedClass: G.value,
98
+ sizeClasses: U.value,
99
+ showCheckmark: R.showCheckmark,
100
+ checkClass: se.value,
101
+ highlightedIndex: R.highlightedIndex,
102
+ optionSelectedClass: G.value,
103
+ optionHighlightedClass: oe.value,
122
104
  mergedClasses: {
123
- optionSelected: U.value.optionSelected,
124
- optionHighlighted: U.value.optionHighlighted
105
+ optionSelected: W.value.optionSelected,
106
+ optionHighlighted: W.value.optionHighlighted
125
107
  }
126
108
  })));
127
- let me = s(() => ae(K.value, Q));
128
- return (r, i) => (b(), c(D(a), _({
129
- modelValue: I.value,
130
- "onUpdate:modelValue": i[0] ||= (e) => I.value = e,
131
- "anchor-el": m.anchorEl,
132
- placement: m.placement,
109
+ let de = c(() => N(q.value, Q)), fe = c(() => z.value.customProps?.menu), pe = c(() => z.value.customProps?.list), $ = c(() => z.value.customProps?.listItem), me = c(() => z.value.customProps?.progress), he = c(() => z.value.customProps?.listSection), ge = c(() => ({
110
+ ...ae(R.rounded) ? {} : { rounded: R.rounded },
111
+ ...fe.value
112
+ })), _e = c(() => ({
113
+ size: "xs",
114
+ "aria-hidden": !0,
115
+ color: z.value.color,
116
+ ...n(me.value, {
117
+ class: "shrink-0",
118
+ classes: { bar: W.value.loading }
119
+ })
120
+ })), ve = c(() => ({
121
+ dense: !0,
122
+ role: "listbox",
123
+ id: R.listboxId,
124
+ "aria-labelledby": R.labelledBy,
125
+ "aria-multiselectable": R.multiple || void 0,
126
+ ...n(pe.value, { class: "p-0" })
127
+ }));
128
+ return (n, i) => (b(), l(D(a), v({
129
+ modelValue: L.value,
130
+ "onUpdate:modelValue": i[0] ||= (e) => L.value = e,
131
+ "anchor-el": h.anchorEl,
132
+ placement: h.placement,
133
133
  "close-on-click-away": !0,
134
- "disable-auto-focus": m.disableAutoFocus,
135
- "custom-props": { content: D(R).customProps?.content }
136
- }, D(M)(m.rounded) ? {} : { rounded: m.rounded }), {
137
- default: j(() => [
138
- D(e)(D(P), "beforeOptions") ? (b(), c(T(D(t)(D(P), "beforeOptions")), { key: 0 })) : l("", !0),
139
- m.loading ? (b(), u(o, { key: 1 }, [p(D(ne), {
140
- size: "xs",
141
- "aria-hidden": "",
142
- class: "shrink-0",
143
- color: D(R).color,
144
- classes: { bar: D(U).loading },
145
- "custom-props": { bar: D(R).customProps?.loading }
146
- }, null, 8, [
147
- "color",
148
- "classes",
149
- "custom-props"
150
- ]), d("div", y(h(D(V))), [D(e)(D(P), "loading") ? (b(), c(T(D(t)(D(P), "loading")), { key: 0 })) : (b(), u("span", se, E(m.loadingMessage), 1))], 16)], 64)) : (b(), u("div", y(_({ key: 2 }, D(B))), [p(D(n), {
151
- dense: "",
152
- class: "p-0",
153
- role: "listbox",
154
- id: m.listboxId,
155
- "aria-labelledby": m.labelledBy,
156
- "aria-multiselectable": m.multiple || void 0
157
- }, {
158
- default: j(() => [J.value ? w(r.$slots, "default", { key: 0 }) : (b(!0), u(o, { key: 1 }, C(me.value, (t) => (b(), u(o, { key: t.key }, [t.kind === "section" ? (b(), c(D(te), {
134
+ "disable-auto-focus": h.disableAutoFocus
135
+ }, ge.value), {
136
+ default: k(() => [
137
+ D(e)(D(F), "beforeOptions") ? (b(), l(T(D(t)(D(F), "beforeOptions")), { key: 0 })) : u("", !0),
138
+ h.loading ? (b(), d(s, { key: 1 }, [m(D(o), y(g(_e.value)), null, 16), f("div", y(g(D(H))), [D(e)(D(F), "loading") ? (b(), l(T(D(t)(D(F), "loading")), { key: 0 })) : (b(), d("span", P, E(h.loadingMessage), 1))], 16)], 64)) : (b(), d("div", y(v({ key: 2 }, D(V))), [m(D(r), y(g(ve.value)), {
139
+ default: k(() => [Y.value ? w(n.$slots, "default", { key: 0 }) : (b(!0), d(s, { key: 1 }, C(de.value, (t) => (b(), d(s, { key: t.key }, [t.kind === "section" ? (b(), l(D(ne), v({
159
140
  key: 0,
160
141
  title: t.title,
161
142
  sticky: t.sticky
162
- }, null, 8, ["title", "sticky"])) : (b(), c(D(ee), {
143
+ }, { ref_for: !0 }, he.value), null, 16, ["title", "sticky"])) : (b(), l(D(te), v({
163
144
  key: 1,
164
145
  interactive: "",
165
- role: "option",
166
- selected: !1,
167
- "aria-selected": t.selected,
146
+ value: t.option.value,
168
147
  disabled: t.option.disabled,
169
148
  secondary: t.option.description,
170
- onClick: (e) => $(t.option),
171
- id: `${m.listboxId}-option-${t.index}`,
172
- "custom-props": de(t.option, t.index),
173
- primary: D(e)(D(P), "option") ? void 0 : t.option.label
174
- }, f({ _: 2 }, [D(e)(D(P), "option") ? {
149
+ primary: D(e)(D(F), "option") ? void 0 : t.option.label
150
+ }, { ref_for: !0 }, $.value), p({ _: 2 }, [D(e)(D(F), "option") ? {
175
151
  name: "default",
176
- fn: j(() => [w(r.$slots, "option", {
152
+ fn: k(() => [w(n.$slots, "option", {
177
153
  option: t.option,
178
154
  selected: t.selected
179
155
  })]),
180
156
  key: "0"
181
- } : void 0, m.showCheckmark && t.selected ? {
182
- name: "end",
183
- fn: j(() => [p(D(oe), { class: v(X.value) }, null, 8, ["class"])]),
184
- key: "1"
185
- } : void 0]), 1032, [
186
- "aria-selected",
157
+ } : void 0]), 1040, [
158
+ "value",
187
159
  "disabled",
188
160
  "secondary",
189
- "onClick",
190
- "id",
191
- "custom-props",
192
161
  "primary"
193
162
  ]))], 64))), 128))]),
194
163
  _: 3
195
- }, 8, [
196
- "id",
197
- "aria-labelledby",
198
- "aria-multiselectable"
199
- ])], 16)),
200
- Y.value && !D(e)(D(P), "empty") ? (b(), u("div", y(_({ key: 3 }, D(V))), E(m.emptyMessage), 17)) : Y.value && D(e)(D(P), "empty") ? (b(), c(T(D(t)(D(P), "empty")), { key: 4 })) : l("", !0),
201
- D(e)(D(P), "afterOptions") ? (b(), c(T(D(t)(D(P), "afterOptions")), { key: 5 })) : l("", !0)
164
+ }, 16)], 16)),
165
+ X.value && !D(e)(D(F), "empty") ? (b(), d("div", y(v({ key: 3 }, D(H))), E(h.emptyMessage), 17)) : X.value && D(e)(D(F), "empty") ? (b(), l(T(D(t)(D(F), "empty")), { key: 4 })) : u("", !0),
166
+ D(e)(D(F), "afterOptions") ? (b(), l(T(D(t)(D(F), "afterOptions")), { key: 5 })) : u("", !0)
202
167
  ]),
203
168
  _: 3
204
169
  }, 16, [
205
170
  "modelValue",
206
171
  "anchor-el",
207
172
  "placement",
208
- "disable-auto-focus",
209
- "custom-props"
173
+ "disable-auto-focus"
210
174
  ]));
211
175
  }
212
176
  });
213
177
  //#endregion
214
- export { P as default };
178
+ export { F as default };
@@ -2,7 +2,7 @@ import { mergePartBind as e, useBridgeUIComponent as t, useBridgeUIMergedRegistr
2
2
  import { computed as r, useAttrs as i } from "vue";
3
3
  import { get as a } from "es-toolkit/compat";
4
4
  import { cn as o, mergeBridgeUILayeredClasses as s, splitComponentProps as c } from "@bridge-ui/core";
5
- import { colorProps as l, invalidatedProps as u, sizeProps as d } from "@bridge-ui/core/Components/Listbox";
5
+ import { colorProps as l, invalidatedProps as u, sizeProps as d } from "@bridge-ui/core/Tokens/Listbox";
6
6
  //#region src/Components/Listbox/composables/useListbox.ts
7
7
  var f = [
8
8
  "size",
@@ -27,7 +27,7 @@ function p(p, m) {
27
27
  }), y = n({
28
28
  entry: v,
29
29
  props: () => g.value.componentProps
30
- }), b = r(() => a(s(l, v.value?.customProps?.color), _.value.color ?? "primary")), x = r(() => s(u, v.value?.customProps?.invalidated)), S = r(() => _.value.invalidated ? x.value : b.value), C = r(() => a(s(d, v.value?.customProps?.size), _.value.size ?? "md")), w = r(() => S.value?.selected), T = r(() => S.value?.highlighted);
30
+ }), b = r(() => a(s(l, v.value?.tokens?.color), _.value.color ?? "primary")), x = r(() => s(u, v.value?.tokens?.invalidated)), S = r(() => _.value.invalidated ? x.value : b.value), C = r(() => a(s(d, v.value?.tokens?.size), _.value.size ?? "md")), w = r(() => S.value?.selected), T = r(() => S.value?.highlighted);
31
31
  return {
32
32
  merged: _,
33
33
  checkClass: r(() => o(C.value?.check, S.value?.check)),
@@ -1,5 +1,10 @@
1
1
  import { HTMLAttributes, Slot } from 'vue';
2
2
  import { ListboxColor, ListboxEntry, ListboxOption, ListboxSize, ListboxValue, MenuRounded, MergeHtmlProps, MergeProps, PositionPlacement } from '@bridge-ui/core';
3
+ import { ListOwnProps } from '../List/list.types';
4
+ import { ListItemOwnProps } from '../ListItem/listItem.types';
5
+ import { ListSectionOwnProps } from '../ListSection/listSection.types';
6
+ import { MenuOwnProps } from '../Menu/menu.types';
7
+ import { ProgressOwnProps } from '../Progress/progress.types';
3
8
  export interface ListboxSizeOverrides {}
4
9
  export interface ListboxColorOverrides {}
5
10
  export interface ListboxRoundedOverrides {}
@@ -27,15 +32,41 @@ export interface ListboxClasses {
27
32
  }
28
33
  export interface ListboxCustomProps {
29
34
  /**
30
- * Props forwarded to the floating menu panel.
35
+ * Props forwarded to the internal `List`.
36
+ *
37
+ * @default undefined
31
38
  */
32
- content?: HTMLAttributes;
39
+ list?: Partial<ListOwnProps>;
33
40
  /**
34
- * Props forwarded to the loading `Progress` bar.
41
+ * Props forwarded to each mapped `ListItem` option.
42
+ * Merged last so they override Listbox defaults.
43
+ *
44
+ * @default undefined
35
45
  */
36
- loading?: HTMLAttributes;
46
+ listItem?: Partial<ListItemOwnProps>;
47
+ /**
48
+ * Props forwarded to each mapped `ListSection`.
49
+ *
50
+ * @default undefined
51
+ */
52
+ listSection?: Partial<Omit<ListSectionOwnProps, "title">>;
53
+ /**
54
+ * Props forwarded to the floating `Menu`.
55
+ * Merged last so they override Listbox defaults.
56
+ *
57
+ * @default undefined
58
+ */
59
+ menu?: Partial<MenuOwnProps>;
60
+ /**
61
+ * Props forwarded to the loading `Progress`.
62
+ *
63
+ * @default undefined
64
+ */
65
+ progress?: Partial<ProgressOwnProps>;
37
66
  /**
38
67
  * Props forwarded to the scrollable options container.
68
+ *
69
+ * @default undefined
39
70
  */
40
71
  scroll?: HTMLAttributes;
41
72
  }
@@ -71,7 +102,10 @@ export interface ListboxOwnProps {
71
102
  */
72
103
  color?: MergeProps<ListboxColor, ListboxColorOverrides>;
73
104
  /**
74
- * Extra props for internal parts.
105
+ * Extra props for internal parts (`list`, `listItem`, `listSection`, `menu`,
106
+ * `progress`, `scroll`).
107
+ *
108
+ * @default undefined
75
109
  */
76
110
  customProps?: ListboxCustomProps;
77
111
  /**
@@ -16,13 +16,13 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {
16
16
  rounded: import('@bridge-ui/core').MergeProps<import('@bridge-ui/core').MenuRounded, import('./menu.types').MenuRoundedOverrides>;
17
17
  shadow: import('@bridge-ui/core').MergeProps<import('@bridge-ui/core').MenuShadow, import('./menu.types').MenuShadowOverrides>;
18
18
  anchorEl: null | HTMLElement;
19
- disableAutoFocus: boolean;
20
- placement: import('@floating-ui/utils').Placement;
21
19
  closeOnClickAway: boolean;
22
20
  closeOnEscape: boolean;
21
+ disableAutoFocus: boolean;
23
22
  disableScrollLock: boolean;
24
23
  keepMounted: boolean;
25
24
  persistent: boolean;
25
+ placement: import('@floating-ui/utils').Placement;
26
26
  strategy: import('@bridge-ui/core').PositionStrategy;
27
27
  teleportTo: false | string;
28
28
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -24,7 +24,7 @@ export declare function useMenu(props: MenuOwnProps, libDefaults: MenuLibDefault
24
24
  merged: import('vue').ComputedRef<MenuMerged>;
25
25
  menuId: string;
26
26
  mounted: Ref<boolean, boolean>;
27
- rootBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Omit<Omit<MenuProps, "offset" | "classes" | "customProps" | "rounded" | "shadow" | "disableAutoFocus" | "placement" | "closeOnClickAway" | "closeOnEscape" | "disableScrollLock" | "keepMounted" | "persistent" | "strategy" | "teleportTo">, "anchorEl" | "onShowChange">>>;
27
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Omit<Omit<MenuProps, "offset" | "classes" | "customProps" | "rounded" | "shadow" | "closeOnClickAway" | "closeOnEscape" | "disableAutoFocus" | "disableScrollLock" | "keepMounted" | "persistent" | "placement" | "strategy" | "teleportTo">, "anchorEl" | "onShowChange">>>;
28
28
  isPortaled: import('vue').ComputedRef<boolean>;
29
29
  triggerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<{
30
30
  tabindex: number;
@@ -2,7 +2,7 @@ import { mergePartBind as e, resolveVnodeRefElement as t, useBridgeUIComponent a
2
2
  import { computed as r, nextTick as i, onBeforeUnmount as te, ref as a, toValue as o, useAttrs as ne, useId as re, watch as s } from "vue";
3
3
  import { get as c, omit as l } from "es-toolkit/compat";
4
4
  import { LAYER_STACK_BASE_Z_INDEX as u, acquireLayerStackOrder as ie, claimOpenMenu as d, cn as f, createFocusable as p, createPositionable as m, getLayerStackEntry as ae, mergeBridgeUILayeredClasses as h, pushLayerStack as g, splitComponentProps as _, subscribeLayerStack as v } from "@bridge-ui/core";
5
- import { roundedProps as oe, shadowProps as se } from "@bridge-ui/core/Components/Menu";
5
+ import { roundedProps as oe, shadowProps as se } from "@bridge-ui/core/Tokens/Menu";
6
6
  //#region src/Components/Menu/composables/useMenu.ts
7
7
  var ce = [
8
8
  "offset",
@@ -38,7 +38,7 @@ function y(y, le, b = {}) {
38
38
  }), z = r(() => L.value.customProps), B = ee({
39
39
  entry: R,
40
40
  props: () => I.value.componentProps
41
- }), V = r(() => L.value.keepMounted && !P.value), H = r(() => L.value.teleportTo !== !1), de = r(() => c(h(oe, R.value?.customProps?.rounded), L.value.rounded)), fe = r(() => c(h(se, R.value?.customProps?.shadow), L.value.shadow)), U = r(() => !L.value.persistent), pe = r(() => l(I.value.inheritedAttrs, ["anchorEl", "onShowChange"]));
41
+ }), V = r(() => L.value.keepMounted && !P.value), H = r(() => L.value.teleportTo !== !1), de = r(() => c(h(oe, R.value?.tokens?.rounded), L.value.rounded)), fe = r(() => c(h(se, R.value?.tokens?.shadow), L.value.shadow)), U = r(() => !L.value.persistent), pe = r(() => l(I.value.inheritedAttrs, ["anchorEl", "onShowChange"]));
42
42
  function W() {
43
43
  return y.anchorEl ?? w.value;
44
44
  }
@@ -3,7 +3,7 @@ import { computed as n, nextTick as r, onBeforeUnmount as ne, ref as i, toValue
3
3
  import { get as s } from "es-toolkit/compat";
4
4
  import { LAYER_STACK_BASE_Z_INDEX as c, acquireLayerStackOrder as ie, cn as l, countModalTransitionLayers as u, createFocusTrap as d, getLayerStackEntry as f, getModalOverlayTransitionClass as p, getModalPanelTransitionClass as m, hasModalTransition as h, mergeBridgeUILayeredClasses as g, pushLayerStack as ae, resolveEffectiveModalTransition as _, splitComponentProps as oe, subscribeLayerStack as se } from "@bridge-ui/core";
5
5
  import { isModalBackdropClick as ce } from "@bridge-ui/core/Utils";
6
- import { alignProps as v, blurProps as y, sizeProps as b } from "@bridge-ui/core/Components/Modal";
6
+ import { alignProps as v, blurProps as y, sizeProps as b } from "@bridge-ui/core/Tokens/Modal";
7
7
  //#region src/Components/Modal/composables/useModal.ts
8
8
  var le = [
9
9
  "blur",
@@ -43,7 +43,7 @@ function x(x, ue, S = {}) {
43
43
  }), z = n(() => L.value.customProps), B = te({
44
44
  entry: R,
45
45
  props: () => I.value.componentProps
46
- }), V = n(() => _(L.value.transition ?? "none")), H = n(() => h(V.value)), U = n(() => L.value.scroll ?? "body"), W = n(() => L.value.keepMounted && !w.value), fe = n(() => s(g(v, R.value?.customProps?.align), L.value.align)), pe = n(() => s(g(y, R.value?.customProps?.blur), L.value.blur)), me = n(() => s(g(b, R.value?.customProps?.size), L.value.size)), he = n(() => p(V.value)), ge = n(() => m(V.value)), G = n(() => !L.value.persistent), _e = n(() => I.value.inheritedAttrs), ve = n(() => e(z.value?.root, _e.value, {
46
+ }), V = n(() => _(L.value.transition ?? "none")), H = n(() => h(V.value)), U = n(() => L.value.scroll ?? "body"), W = n(() => L.value.keepMounted && !w.value), fe = n(() => s(g(v, R.value?.tokens?.align), L.value.align)), pe = n(() => s(g(y, R.value?.tokens?.blur), L.value.blur)), me = n(() => s(g(b, R.value?.tokens?.size), L.value.size)), he = n(() => p(V.value)), ge = n(() => m(V.value)), G = n(() => !L.value.persistent), _e = n(() => I.value.inheritedAttrs), ve = n(() => e(z.value?.root, _e.value, {
47
47
  onTransitionend: we,
48
48
  style: { zIndex: M.value },
49
49
  "aria-hidden": W.value ? !0 : void 0,
@@ -1,24 +1,24 @@
1
1
  import { useHoldRepeat as e } from "../../Utils/useHoldRepeat.js";
2
- import { resolveFieldAdornmentIconSize as t } from "../../Utils/index.js";
3
- import n from "../Icon/Icon.js";
4
- import r from "../FormField/FormField.js";
5
- import { useNumberField as i } from "./composables/useNumberField.js";
6
- import { computed as a, createBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, isRef as u, mergeModels as d, mergeProps as f, normalizeClass as p, openBlock as m, unref as h, useModel as g, vModelDynamic as _, withCtx as v, withDirectives as y } from "vue";
7
- import { cn as b } from "@bridge-ui/core";
8
- import { ChevronDown as x, ChevronUp as S } from "@lucide/vue";
2
+ import { mergePartBind as t, resolveFieldAdornmentIconSize as n } from "../../Utils/index.js";
3
+ import r from "../Icon/Icon.js";
4
+ import i from "../FormField/FormField.js";
5
+ import { useNumberField as a } from "./composables/useNumberField.js";
6
+ import { computed as o, createBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, guardReactiveProps as d, isRef as f, mergeModels as p, mergeProps as m, normalizeProps as h, openBlock as g, unref as _, useModel as v, vModelDynamic as y, withCtx as b, withDirectives as x } from "vue";
7
+ import { cn as S } from "@bridge-ui/core";
8
+ import { ChevronDown as C, ChevronUp as w } from "@lucide/vue";
9
9
  //#region src/Components/NumberField/NumberField.vue?vue&type=script&setup=true&lang.ts
10
- var C = { class: "bridge-end-adornment flex h-full min-w-9 flex-col gap-px overflow-hidden" }, w = ["disabled"], T = ["disabled"], E = /* @__PURE__ */ l({
10
+ var T = { class: "bridge-end-adornment flex h-full min-w-9 flex-col gap-px overflow-hidden" }, E = /* @__PURE__ */ u({
11
11
  inheritAttrs: !1,
12
12
  __name: "NumberField",
13
- props: /* @__PURE__ */ d({
13
+ props: /* @__PURE__ */ p({
14
14
  classes: {},
15
+ customProps: {},
15
16
  max: {},
16
17
  min: {},
17
18
  step: { default: 1 },
18
19
  color: {},
19
20
  controlId: {},
20
21
  corner: {},
21
- customProps: {},
22
22
  description: {},
23
23
  disabled: { type: Boolean },
24
24
  end: {},
@@ -39,42 +39,40 @@ var C = { class: "bridge-end-adornment flex h-full min-w-9 flex-col gap-px overf
39
39
  modelValue: {},
40
40
  modelModifiers: {}
41
41
  }),
42
- emits: /* @__PURE__ */ d(["change", "update:modelValue"], ["update:modelValue"]),
43
- setup(l, { emit: d }) {
44
- let E = d, D = g(l, "modelValue"), O = l, { decrement: k, formField: A, increment: j, inputBind: M, stringModel: N, mergedClasses: P } = i(O, D, { onChange: (e) => E("change", e) }), F = e(() => j(), () => ({ disabled: O.disabled })), I = e(() => k(), () => ({ disabled: O.disabled })), L = a(() => t(O.size));
45
- return (e, t) => (m(), o(h(r), { field: h(A) }, {
46
- end: v(() => [s("div", C, [s("button", {
47
- type: "button",
48
- disabled: O.disabled,
49
- "aria-label": "Increment value",
50
- onClick: t[1] ||= (...e) => h(F).onPressClick && h(F).onPressClick(...e),
51
- onPointerup: t[2] ||= (...e) => h(F).onPressPointerUp && h(F).onPressPointerUp(...e),
52
- onPointerdown: t[3] ||= (...e) => h(F).onPressPointerDown && h(F).onPressPointerDown(...e),
53
- onLostpointercapture: t[4] ||= (...e) => h(F).onPressLostPointerCapture && h(F).onPressLostPointerCapture(...e),
54
- class: p(h(b)({
55
- "bridge-field-adornment-button inline-flex min-h-0 min-w-8 flex-1 items-center justify-center": !0,
56
- [h(P).increment ?? ""]: !0
57
- }))
58
- }, [c(h(n), {
59
- icon: h(S),
42
+ emits: /* @__PURE__ */ p(["change", "update:modelValue"], ["update:modelValue"]),
43
+ setup(u, { emit: p }) {
44
+ let E = p, D = v(u, "modelValue"), O = u, { decrement: k, formField: A, increment: j, inputBind: M, stringModel: N, mergedClasses: P } = a(O, D, { onChange: (e) => E("change", e) }), F = e(() => j(), () => ({ disabled: O.disabled })), I = e(() => k(), () => ({ disabled: O.disabled })), L = o(() => n(O.size)), R = o(() => t(O.customProps?.increment, {
45
+ type: "button",
46
+ disabled: O.disabled,
47
+ "aria-label": "Increment value",
48
+ onClick: F.onPressClick,
49
+ onPointerup: F.onPressPointerUp,
50
+ onPointerdown: F.onPressPointerDown,
51
+ onLostpointercapture: F.onPressLostPointerCapture
52
+ }, S({
53
+ "bridge-field-adornment-button inline-flex min-h-0 min-w-8 flex-1 items-center justify-center": !0,
54
+ [P.value.increment ?? ""]: !0
55
+ }))), z = o(() => t(O.customProps?.decrement, {
56
+ type: "button",
57
+ disabled: O.disabled,
58
+ "aria-label": "Decrement value",
59
+ onClick: I.onPressClick,
60
+ onPointerup: I.onPressPointerUp,
61
+ onPointerdown: I.onPressPointerDown,
62
+ onLostpointercapture: I.onPressLostPointerCapture
63
+ }, S({
64
+ "bridge-field-adornment-button inline-flex min-h-0 min-w-8 flex-1 items-center justify-center": !0,
65
+ [P.value.decrement ?? ""]: !0
66
+ })));
67
+ return (e, t) => (g(), s(_(i), { field: _(A) }, {
68
+ end: b(() => [c("div", T, [c("button", h(d(R.value)), [l(_(r), m({
69
+ icon: _(w),
60
70
  size: L.value
61
- }, null, 8, ["icon", "size"])], 42, w), s("button", {
62
- type: "button",
63
- disabled: O.disabled,
64
- "aria-label": "Decrement value",
65
- onClick: t[5] ||= (...e) => h(I).onPressClick && h(I).onPressClick(...e),
66
- onPointerup: t[6] ||= (...e) => h(I).onPressPointerUp && h(I).onPressPointerUp(...e),
67
- onPointerdown: t[7] ||= (...e) => h(I).onPressPointerDown && h(I).onPressPointerDown(...e),
68
- onLostpointercapture: t[8] ||= (...e) => h(I).onPressLostPointerCapture && h(I).onPressLostPointerCapture(...e),
69
- class: p(h(b)({
70
- "bridge-field-adornment-button inline-flex min-h-0 min-w-8 flex-1 items-center justify-center": !0,
71
- [h(P).decrement ?? ""]: !0
72
- }))
73
- }, [c(h(n), {
74
- icon: h(x),
71
+ }, O.customProps?.incrementIcon), null, 16, ["icon", "size"])], 16), c("button", h(d(z.value)), [l(_(r), m({
72
+ icon: _(C),
75
73
  size: L.value
76
- }, null, 8, ["icon", "size"])], 42, T)])]),
77
- default: v(() => [y(s("input", f({ "onUpdate:modelValue": t[0] ||= (e) => u(N) ? N.value = e : null }, h(M)), null, 16), [[_, h(N)]])]),
74
+ }, O.customProps?.decrementIcon), null, 16, ["icon", "size"])], 16)])]),
75
+ default: b(() => [x(c("input", m({ "onUpdate:modelValue": t[0] ||= (e) => f(N) ? N.value = e : null }, _(M)), null, 16), [[y, _(N)]])]),
78
76
  _: 1
79
77
  }, 8, ["field"]));
80
78
  }
@@ -435,10 +435,9 @@ export declare function useNumberField(props: NumberFieldOwnProps, model: Ref<nu
435
435
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
436
436
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
437
437
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
438
- }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "color" | "end" | "size" | "classes" | "customProps" | "error" | "rounded" | "variant" | "label" | "disabled" | "endIcon" | "startIcon" | "start" | "description" | "errorMessage" | "readonly" | "required" | "withoutErrorMessage" | "errorIcon" | "withErrorIcon" | "corner">>>>;
438
+ }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "color" | "end" | "size" | "classes" | "customProps" | "error" | "rounded" | "variant" | "label" | "disabled" | "endIcon" | "startIcon" | "start" | "required" | "description" | "errorMessage" | "readonly" | "withoutErrorMessage" | "errorIcon" | "withErrorIcon" | "corner">>>>;
439
439
  isNotched: import('vue').ComputedRef<boolean>;
440
440
  isStacked: import('vue').ComputedRef<boolean>;
441
- labelBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
442
441
  startBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
443
442
  cornerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
444
443
  headerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
@@ -448,12 +447,12 @@ export declare function useNumberField(props: NumberFieldOwnProps, model: Ref<nu
448
447
  endIconBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", Partial<Omit<import('../../Icon').IconProps, "icon">> | undefined, {}>>;
449
448
  endSlotBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
450
449
  invalidated: import('vue').ComputedRef<boolean>;
451
- requiredBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", {}, {}>>;
452
450
  containerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {
453
451
  "data-bridge-rounded": NonNullable<keyof import('@bridge-ui/core').FormFieldRounded | undefined>;
454
452
  }>>;
455
453
  startIconBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", Partial<Omit<import('../../Icon').IconProps, "icon">> | undefined, {}>>;
456
454
  startSlotBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
455
+ fieldLabelProps: import('vue').ComputedRef<import('../../Label').LabelProps>;
457
456
  ariaDescribedBy: import('vue').ComputedRef<string | undefined>;
458
457
  descriptionBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
459
458
  stackedBodyBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", {}, {}>>;
@@ -685,7 +684,7 @@ export declare function useNumberField(props: NumberFieldOwnProps, model: Ref<nu
685
684
  onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
686
685
  onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
687
686
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
688
- }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "color" | "end" | "size" | "classes" | "customProps" | "error" | "rounded" | "variant" | "label" | "disabled" | "endIcon" | "startIcon" | "start" | "description" | "errorMessage" | "readonly" | "required" | "withoutErrorMessage" | "errorIcon" | "withErrorIcon" | "corner">>>, {
687
+ }, Partial<Omit<Omit<import('../../FormField').FormFieldOwnProps, "field">, "color" | "end" | "size" | "classes" | "customProps" | "error" | "rounded" | "variant" | "label" | "disabled" | "endIcon" | "startIcon" | "start" | "required" | "description" | "errorMessage" | "readonly" | "withoutErrorMessage" | "errorIcon" | "withErrorIcon" | "corner">>>, {
689
688
  min: number | undefined;
690
689
  max: number | undefined;
691
690
  type: string;
@@ -1,6 +1,7 @@
1
- import { InputHTMLAttributes } from 'vue';
1
+ import { ButtonHTMLAttributes, InputHTMLAttributes } from 'vue';
2
2
  import { MergeHtmlProps } from '@bridge-ui/core';
3
3
  import { FormFieldClasses, FormFieldCustomProps, FormFieldOwnProps, FormFieldSlots } from '../FormField/formField.types';
4
+ import { IconProps } from '../Icon';
4
5
  export interface NumberFieldClasses extends FormFieldClasses {
5
6
  /**
6
7
  * The classes to apply to the decrement button.
@@ -11,7 +12,32 @@ export interface NumberFieldClasses extends FormFieldClasses {
11
12
  */
12
13
  increment?: string;
13
14
  }
14
- export interface NumberFieldCustomProps extends FormFieldCustomProps {}
15
+ export interface NumberFieldCustomProps extends FormFieldCustomProps {
16
+ /**
17
+ * Props forwarded to the decrement button.
18
+ *
19
+ * @default undefined
20
+ */
21
+ decrement?: ButtonHTMLAttributes;
22
+ /**
23
+ * Props forwarded to the decrement `Icon` (`icon` is set by the field).
24
+ *
25
+ * @default undefined
26
+ */
27
+ decrementIcon?: Partial<Omit<IconProps, "icon">>;
28
+ /**
29
+ * Props forwarded to the increment button.
30
+ *
31
+ * @default undefined
32
+ */
33
+ increment?: ButtonHTMLAttributes;
34
+ /**
35
+ * Props forwarded to the increment `Icon` (`icon` is set by the field).
36
+ *
37
+ * @default undefined
38
+ */
39
+ incrementIcon?: Partial<Omit<IconProps, "icon">>;
40
+ }
15
41
  export interface NumberFieldEmits {
16
42
  /**
17
43
  * Emitted with the numeric value when it changes.
@@ -28,6 +54,12 @@ export interface NumberFieldOwnProps extends Omit<FormFieldOwnProps, "field" | "
28
54
  * The classes to apply to the number field.
29
55
  */
30
56
  classes?: NumberFieldClasses;
57
+ /**
58
+ * Extra props for FormField parts and the stepper buttons.
59
+ *
60
+ * @default undefined
61
+ */
62
+ customProps?: NumberFieldCustomProps;
31
63
  /**
32
64
  * The maximum value.
33
65
  */