@bridge-ui/vue 0.0.1-beta.7 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/Actions/BridgeUIHosts.vue.d.ts +3 -2
  2. package/dist/Actions/BridgeUIHosts.vue_vue_type_script_setup_true_lang.js +15 -10
  3. package/dist/Actions/Drawer/BridgeDrawerHost.js +5 -0
  4. package/dist/Actions/Drawer/BridgeDrawerHost.vue.d.ts +14 -0
  5. package/dist/Actions/Drawer/BridgeDrawerHost.vue_vue_type_script_setup_true_lang.js +35 -0
  6. package/dist/Actions/Drawer/bridgeDrawer.types.d.ts +44 -0
  7. package/dist/Actions/Drawer/bridgeDrawerInjectionKey.d.ts +3 -0
  8. package/dist/Actions/Drawer/bridgeDrawerInjectionKey.js +4 -0
  9. package/dist/Actions/Drawer/createBridgeDrawerApi.d.ts +2 -0
  10. package/dist/Actions/Drawer/createBridgeDrawerApi.js +49 -0
  11. package/dist/Actions/Drawer/index.d.ts +3 -0
  12. package/dist/Actions/Drawer/index.js +3 -0
  13. package/dist/Actions/Drawer/useDrawerAction.d.ts +5 -0
  14. package/dist/Actions/Drawer/useDrawerAction.js +26 -0
  15. package/dist/Actions/bridgeUIHosts.types.d.ts +5 -0
  16. package/dist/Actions/index.d.ts +2 -0
  17. package/dist/Actions/index.js +8 -6
  18. package/dist/Components/Badge/badge.types.d.ts +1 -1
  19. package/dist/Components/Chip/chip.types.d.ts +1 -1
  20. package/dist/Components/Drawer/Drawer.js +5 -0
  21. package/dist/Components/Drawer/Drawer.vue.d.ts +39 -0
  22. package/dist/Components/Drawer/Drawer.vue_vue_type_script_setup_true_lang.js +96 -0
  23. package/dist/Components/Drawer/composables/useDrawer.d.ts +63 -0
  24. package/dist/Components/Drawer/composables/useDrawer.js +208 -0
  25. package/dist/Components/Drawer/drawer.types.d.ts +188 -0
  26. package/dist/Components/Drawer/index.d.ts +4 -0
  27. package/dist/Components/Drawer/index.js +3 -0
  28. package/dist/Components/FormControl/formControl.types.d.ts +6 -6
  29. package/dist/Components/FormField/formField.types.d.ts +7 -7
  30. package/dist/Components/Label/label.types.d.ts +1 -1
  31. package/dist/Components/Link/link.types.d.ts +3 -3
  32. package/dist/Components/List/list.types.d.ts +1 -1
  33. package/dist/Components/ListItem/listItem.types.d.ts +1 -1
  34. package/dist/Components/ListSection/listSection.types.d.ts +1 -1
  35. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +72 -70
  36. package/dist/Components/Listbox/listbox.types.d.ts +15 -6
  37. package/dist/Components/Menu/menu.types.d.ts +3 -3
  38. package/dist/Components/Modal/composables/useModal.js +0 -1
  39. package/dist/Components/Modal/modal.types.d.ts +3 -2
  40. package/dist/Components/Select/Select.vue.d.ts +2 -2
  41. package/dist/Components/Select/composables/useSelect.d.ts +2 -1
  42. package/dist/Components/Select/composables/useSelect.js +3 -2
  43. package/dist/Components/Select/select.types.d.ts +5 -5
  44. package/dist/Components/Snackbar/composables/useSnackbar.js +1 -1
  45. package/dist/Components/Snackbar/snackbar.types.d.ts +7 -7
  46. package/dist/Components/Spinner/composables/useSpinner.js +16 -16
  47. package/dist/Components/Tab/Tab.js +5 -0
  48. package/dist/Components/Tab/Tab.vue.d.ts +11 -0
  49. package/dist/Components/Tab/Tab.vue_vue_type_script_setup_true_lang.js +33 -0
  50. package/dist/Components/Tab/composables/useTab.d.ts +23 -0
  51. package/dist/Components/Tab/composables/useTab.js +88 -0
  52. package/dist/Components/Tab/index.d.ts +3 -0
  53. package/dist/Components/Tab/index.js +3 -0
  54. package/dist/Components/Tab/tab.types.d.ts +94 -0
  55. package/dist/Components/TabItem/TabItem.js +5 -0
  56. package/dist/Components/TabItem/TabItem.vue.d.ts +11 -0
  57. package/dist/Components/TabItem/TabItem.vue_vue_type_script_setup_true_lang.js +25 -0
  58. package/dist/Components/TabItem/composables/useTabItem.d.ts +3 -0
  59. package/dist/Components/TabItem/composables/useTabItem.js +39 -0
  60. package/dist/Components/TabItem/index.d.ts +3 -0
  61. package/dist/Components/TabItem/index.js +3 -0
  62. package/dist/Components/TabItem/tabItem.types.d.ts +72 -0
  63. package/dist/Components/TabList/TabList.js +5 -0
  64. package/dist/Components/TabList/TabList.vue.d.ts +11 -0
  65. package/dist/Components/TabList/TabList.vue_vue_type_script_setup_true_lang.js +18 -0
  66. package/dist/Components/TabList/composables/useTabList.d.ts +10 -0
  67. package/dist/Components/TabList/composables/useTabList.js +65 -0
  68. package/dist/Components/TabList/index.d.ts +3 -0
  69. package/dist/Components/TabList/index.js +3 -0
  70. package/dist/Components/TabList/tabList.types.d.ts +38 -0
  71. package/dist/Components/TabPanel/TabPanel.js +5 -0
  72. package/dist/Components/TabPanel/TabPanel.vue.d.ts +11 -0
  73. package/dist/Components/TabPanel/TabPanel.vue_vue_type_script_setup_true_lang.js +20 -0
  74. package/dist/Components/TabPanel/composables/useTabPanel.d.ts +14 -0
  75. package/dist/Components/TabPanel/composables/useTabPanel.js +51 -0
  76. package/dist/Components/TabPanel/index.d.ts +3 -0
  77. package/dist/Components/TabPanel/index.js +3 -0
  78. package/dist/Components/TabPanel/tabPanel.types.d.ts +48 -0
  79. package/dist/Components/Tabs/Tabs.js +5 -0
  80. package/dist/Components/Tabs/Tabs.vue.d.ts +24 -0
  81. package/dist/Components/Tabs/Tabs.vue_vue_type_script_setup_true_lang.js +73 -0
  82. package/dist/Components/Tabs/composables/useTabs.d.ts +39 -0
  83. package/dist/Components/Tabs/composables/useTabs.js +99 -0
  84. package/dist/Components/Tabs/index.d.ts +4 -0
  85. package/dist/Components/Tabs/index.js +4 -0
  86. package/dist/Components/Tabs/tabs.types.d.ts +93 -0
  87. package/dist/Components/Tabs/tabsInjectionKey.d.ts +121 -0
  88. package/dist/Components/Tabs/tabsInjectionKey.js +4 -0
  89. package/dist/Utils/index.d.ts +2 -0
  90. package/dist/Utils/index.js +20 -19
  91. package/dist/Utils/useBreakpoint.d.ts +19 -0
  92. package/dist/Utils/useBreakpoint.js +35 -0
  93. package/dist/index.d.ts +14 -1
  94. package/dist/index.js +76 -62
  95. package/dist/theme.css +9 -0
  96. package/package.json +2 -2
@@ -2,17 +2,18 @@ import { hasNamedSlot as e, resolveNamedSlot as t } from "../../Utils/slotOrProp
2
2
  import n from "../List/List.js";
3
3
  import { useListbox as r } from "./composables/useListbox.js";
4
4
  import { LISTBOX_INJECTION_KEY as i } from "./listboxInjectionKey.js";
5
- import a from "../ListItem/ListItem.js";
6
- import o from "../ListSection/ListSection.js";
7
- import s from "../Menu/Menu.js";
8
- import ee from "../Progress/Progress.js";
9
- import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createSlots as te, createVNode as m, defineComponent as h, guardReactiveProps as g, mergeModels as _, mergeProps as v, normalizeClass as y, normalizeProps as b, openBlock as x, provide as S, ref as C, renderList as ne, 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 { cn as M, entriesFromListboxOptions as re, flattenListboxOptions as ie, mapListboxEntriesToRows as ae } from "@bridge-ui/core";
5
+ import ee from "../ListItem/ListItem.js";
6
+ import te from "../ListSection/ListSection.js";
7
+ 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";
11
12
  import { Check as oe } from "@lucide/vue";
12
13
  //#region src/Components/Listbox/Listbox.vue?vue&type=script&setup=true&lang.ts
13
- var se = { key: 1 }, N = /* @__PURE__ */ h({
14
+ var se = { key: 1 }, P = /* @__PURE__ */ m({
14
15
  __name: "Listbox",
15
- props: /* @__PURE__ */ _({
16
+ props: /* @__PURE__ */ g({
16
17
  anchorEl: {},
17
18
  classes: {},
18
19
  color: { default: "primary" },
@@ -45,6 +46,7 @@ var se = { key: 1 }, N = /* @__PURE__ */ h({
45
46
  },
46
47
  options: {},
47
48
  placement: { default: "bottom-start" },
49
+ rounded: {},
48
50
  showCheckmark: {
49
51
  type: Boolean,
50
52
  default: !0
@@ -57,107 +59,107 @@ var se = { key: 1 }, N = /* @__PURE__ */ h({
57
59
  },
58
60
  modelModifiers: {}
59
61
  }),
60
- emits: /* @__PURE__ */ _([
62
+ emits: /* @__PURE__ */ g([
61
63
  "registered-options-change",
62
64
  "select",
63
65
  "show-change"
64
66
  ], ["update:modelValue"]),
65
- setup(h, { emit: _ }) {
66
- let N = k(), P = _, F = O(h, "modelValue");
67
- A(F, (e) => {
68
- P("show-change", e);
67
+ setup(m, { emit: g }) {
68
+ let P = k(), F = g, I = O(m, "modelValue");
69
+ A(I, (e) => {
70
+ F("show-change", e);
69
71
  });
70
- let I = h, { merged: L, checkClass: R, scrollBind: z, messageBind: B, sizeClasses: V, mergedClasses: H, optionSelectedClass: U, optionHighlightedClass: W } = r(I, {
72
+ let L = m, { merged: R, checkClass: z, scrollBind: B, messageBind: V, sizeClasses: H, mergedClasses: U, optionSelectedClass: W, optionHighlightedClass: G } = r(L, {
71
73
  size: "md",
72
74
  color: "primary"
73
- }), G = l(() => I.options ?? []), K = l(() => I.entries ? I.entries : re(G.value)), q = l(() => ie(K.value)), J = l(() => e(N, "default")), Y = l(() => !I.loading && !J.value && q.value.length === 0 && I.hideEmptyMessage !== !0), X = l(() => M(R.value, H.value.check)), Z = C([]);
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([]);
74
76
  function Q(e) {
75
- return I.isSelected?.(e) ?? !1;
76
- }
77
- function ce(e) {
78
- return I.highlightedIndex === e;
77
+ return L.isSelected?.(e) ?? !1;
79
78
  }
80
79
  function le(e) {
80
+ return L.highlightedIndex === e;
81
+ }
82
+ function ue(e) {
81
83
  e.preventDefault();
82
84
  }
83
- function ue(e, t) {
85
+ function de(e, t) {
84
86
  let n = {
85
87
  tabindex: -1,
86
- onMousedown: le,
87
- class: M(V.value?.option)
88
+ onMousedown: ue,
89
+ class: N(H.value?.option)
88
90
  };
89
- return Q(e.value) ? n.class = M(n.class, U.value, H.value.optionSelected) : ce(t) && (n.class = M(n.class, W.value, H.value.optionHighlighted)), {
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)), {
90
92
  interactive: n,
91
- primary: { class: V.value?.primary },
92
- secondary: { class: V.value?.secondary }
93
+ primary: { class: H.value?.primary },
94
+ secondary: { class: H.value?.secondary }
93
95
  };
94
96
  }
95
97
  function $(e) {
96
- e.disabled || P("select", e);
98
+ e.disabled || F("select", e);
97
99
  }
98
- function de(e) {
100
+ function fe(e) {
99
101
  return Z.value.some((t) => String(t.value) === String(e.value)) || (Z.value = [...Z.value, e]), () => {
100
102
  Z.value = Z.value.filter((t) => String(t.value) !== String(e.value));
101
103
  };
102
104
  }
103
- function fe(e) {
105
+ function pe(e) {
104
106
  return (J.value ? Z.value : q.value).findIndex((t) => String(t.value) === String(e));
105
107
  }
106
108
  A(Z, (e) => {
107
- J.value && P("registered-options-change", e);
108
- }, { deep: !0 }), S(i, l(() => ({
109
- getOptionIndex: fe,
110
- registerOption: de,
109
+ J.value && F("registered-options-change", e);
110
+ }, { deep: !0 }), x(i, s(() => ({
111
+ getOptionIndex: pe,
112
+ registerOption: fe,
111
113
  onSelect: $,
112
- listboxId: I.listboxId,
114
+ listboxId: L.listboxId,
113
115
  isSelected: Q,
114
- sizeClasses: V.value,
115
- showCheckmark: I.showCheckmark,
116
+ sizeClasses: H.value,
117
+ showCheckmark: L.showCheckmark,
116
118
  checkClass: X.value,
117
- highlightedIndex: I.highlightedIndex,
118
- optionSelectedClass: U.value,
119
- optionHighlightedClass: W.value,
119
+ highlightedIndex: L.highlightedIndex,
120
+ optionSelectedClass: W.value,
121
+ optionHighlightedClass: G.value,
120
122
  mergedClasses: {
121
- optionSelected: H.value.optionSelected,
122
- optionHighlighted: H.value.optionHighlighted
123
+ optionSelected: U.value.optionSelected,
124
+ optionHighlighted: U.value.optionHighlighted
123
125
  }
124
126
  })));
125
- let pe = l(() => ae(K.value, Q));
126
- return (r, i) => (x(), u(D(s), {
127
- modelValue: F.value,
128
- "onUpdate:modelValue": i[0] ||= (e) => F.value = e,
129
- "anchor-el": h.anchorEl,
130
- placement: h.placement,
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,
131
133
  "close-on-click-away": !0,
132
- "disable-auto-focus": h.disableAutoFocus,
133
- "custom-props": { content: D(L).customProps?.content }
134
- }, {
134
+ "disable-auto-focus": m.disableAutoFocus,
135
+ "custom-props": { content: D(R).customProps?.content }
136
+ }, D(M)(m.rounded) ? {} : { rounded: m.rounded }), {
135
137
  default: j(() => [
136
- D(e)(D(N), "beforeOptions") ? (x(), u(T(D(t)(D(N), "beforeOptions")), { key: 0 })) : d("", !0),
137
- h.loading ? (x(), f(c, { key: 1 }, [m(D(ee), {
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), {
138
140
  size: "xs",
139
141
  "aria-hidden": "",
140
142
  class: "shrink-0",
141
- color: D(L).color,
142
- classes: { bar: D(H).loading },
143
- "custom-props": { bar: D(L).customProps?.loading }
143
+ color: D(R).color,
144
+ classes: { bar: D(U).loading },
145
+ "custom-props": { bar: D(R).customProps?.loading }
144
146
  }, null, 8, [
145
147
  "color",
146
148
  "classes",
147
149
  "custom-props"
148
- ]), p("div", b(g(D(B))), [D(e)(D(N), "loading") ? (x(), u(T(D(t)(D(N), "loading")), { key: 0 })) : (x(), f("span", se, E(h.loadingMessage), 1))], 16)], 64)) : (x(), f("div", b(v({ key: 2 }, D(z))), [m(D(n), {
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), {
149
151
  dense: "",
150
152
  class: "p-0",
151
153
  role: "listbox",
152
- id: h.listboxId,
153
- "aria-labelledby": h.labelledBy,
154
- "aria-multiselectable": h.multiple || void 0
154
+ id: m.listboxId,
155
+ "aria-labelledby": m.labelledBy,
156
+ "aria-multiselectable": m.multiple || void 0
155
157
  }, {
156
- default: j(() => [J.value ? w(r.$slots, "default", { key: 0 }) : (x(!0), f(c, { key: 1 }, ne(pe.value, (t) => (x(), f(c, { key: t.key }, [t.kind === "section" ? (x(), u(D(o), {
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), {
157
159
  key: 0,
158
160
  title: t.title,
159
161
  sticky: t.sticky
160
- }, null, 8, ["title", "sticky"])) : (x(), u(D(a), {
162
+ }, null, 8, ["title", "sticky"])) : (b(), c(D(ee), {
161
163
  key: 1,
162
164
  interactive: "",
163
165
  role: "option",
@@ -166,19 +168,19 @@ var se = { key: 1 }, N = /* @__PURE__ */ h({
166
168
  disabled: t.option.disabled,
167
169
  secondary: t.option.description,
168
170
  onClick: (e) => $(t.option),
169
- id: `${h.listboxId}-option-${t.index}`,
170
- "custom-props": ue(t.option, t.index),
171
- primary: D(e)(D(N), "option") ? void 0 : t.option.label
172
- }, te({ _: 2 }, [D(e)(D(N), "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") ? {
173
175
  name: "default",
174
176
  fn: j(() => [w(r.$slots, "option", {
175
177
  option: t.option,
176
178
  selected: t.selected
177
179
  })]),
178
180
  key: "0"
179
- } : void 0, h.showCheckmark && t.selected ? {
181
+ } : void 0, m.showCheckmark && t.selected ? {
180
182
  name: "end",
181
- fn: j(() => [m(D(oe), { class: y(X.value) }, null, 8, ["class"])]),
183
+ fn: j(() => [p(D(oe), { class: v(X.value) }, null, 8, ["class"])]),
182
184
  key: "1"
183
185
  } : void 0]), 1032, [
184
186
  "aria-selected",
@@ -195,11 +197,11 @@ var se = { key: 1 }, N = /* @__PURE__ */ h({
195
197
  "aria-labelledby",
196
198
  "aria-multiselectable"
197
199
  ])], 16)),
198
- Y.value && !D(e)(D(N), "empty") ? (x(), f("div", b(v({ key: 3 }, D(B))), E(h.emptyMessage), 17)) : Y.value && D(e)(D(N), "empty") ? (x(), u(T(D(t)(D(N), "empty")), { key: 4 })) : d("", !0),
199
- D(e)(D(N), "afterOptions") ? (x(), u(T(D(t)(D(N), "afterOptions")), { key: 5 })) : d("", !0)
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)
200
202
  ]),
201
203
  _: 3
202
- }, 8, [
204
+ }, 16, [
203
205
  "modelValue",
204
206
  "anchor-el",
205
207
  "placement",
@@ -209,4 +211,4 @@ var se = { key: 1 }, N = /* @__PURE__ */ h({
209
211
  }
210
212
  });
211
213
  //#endregion
212
- export { N as default };
214
+ export { P as default };
@@ -1,7 +1,8 @@
1
1
  import { HTMLAttributes, Slot } from 'vue';
2
- import { ListboxColor, ListboxEntry, ListboxOption, ListboxSize, ListboxValue, MergeHtmlProps, MergeProps, PositionPlacement } from '@bridge-ui/core';
2
+ import { ListboxColor, ListboxEntry, ListboxOption, ListboxSize, ListboxValue, MenuRounded, MergeHtmlProps, MergeProps, PositionPlacement } from '@bridge-ui/core';
3
3
  export interface ListboxSizeOverrides {}
4
4
  export interface ListboxColorOverrides {}
5
+ export interface ListboxRoundedOverrides {}
5
6
  export interface ListboxClasses {
6
7
  /**
7
8
  * Classes merged onto the check icon.
@@ -165,6 +166,14 @@ export interface ListboxOwnProps {
165
166
  * @default "bottom-start"
166
167
  */
167
168
  placement?: PositionPlacement;
169
+ /**
170
+ * Roundedness of the floating panel (`Menu`). When omitted, `Menu` defaults
171
+ * apply (including `Menu.defaultProps.rounded`).
172
+ *
173
+ * `Select` always forwards its own `rounded` here so the dropdown matches the
174
+ * field, independent of `Menu.defaultProps`.
175
+ */
176
+ rounded?: MergeProps<MenuRounded, ListboxRoundedOverrides>;
168
177
  /**
169
178
  * Shows a check icon on selected options.
170
179
  *
@@ -182,25 +191,25 @@ export interface ListboxSlots {
182
191
  /**
183
192
  * Content below the list.
184
193
  */
185
- afterOptions?: Slot;
194
+ afterOptions?: Slot<undefined>;
186
195
  /**
187
196
  * Content above the list.
188
197
  */
189
- beforeOptions?: Slot;
198
+ beforeOptions?: Slot<undefined>;
190
199
  /**
191
200
  * Composed list content (`ListSection` / `ListItem`). When set, replaces the
192
201
  * mapped `options` / `entries` render inside the list.
193
202
  */
194
- default?: Slot;
203
+ default?: Slot<undefined>;
195
204
  /**
196
205
  * Custom empty-state content.
197
206
  */
198
- empty?: Slot;
207
+ empty?: Slot<undefined>;
199
208
  /**
200
209
  * Custom loading content. Replaces the default `loadingMessage` when set.
201
210
  * The progress bar still renders above this content.
202
211
  */
203
- loading?: Slot;
212
+ loading?: Slot<undefined>;
204
213
  /**
205
214
  * Custom option item content.
206
215
  */
@@ -54,13 +54,13 @@ export interface MenuEmits {
54
54
  close: [];
55
55
  }
56
56
  /**
57
- * Anchored menu panel (MUI `Menu`-like). Visibility is controlled with `v-model`
58
- * (not listed here — `defineModel` handles it). Anchor with `anchorEl` (MUI style)
57
+ * Anchored menu panel. Visibility is controlled with `v-model`
58
+ * (not listed here — `defineModel` handles it). Anchor with `anchorEl`
59
59
  * or put the opener in the `trigger` slot; menu items go in the default slot.
60
60
  */
61
61
  export interface MenuOwnProps {
62
62
  /**
63
- * Element that anchors the menu panel (MUI `anchorEl`). When set, it is used
63
+ * Element that anchors the menu panel. When set, it is used
64
64
  * for positioning and click-away instead of the `trigger` slot wrapper.
65
65
  * Prefer this when the opener lives outside the `Menu` or is controlled manually.
66
66
  * Not merged into Bridge defaults (DOM nodes must not be deep-merged).
@@ -65,7 +65,6 @@ function x(x, ue, S = {}) {
65
65
  })
66
66
  })), be = n(() => e(z.value?.wrapper, { onClick: Q }, l({
67
67
  "flex min-h-full w-full transform p-4": !0,
68
- "items-end justify-center": !0,
69
68
  [fe.value ?? ""]: !0,
70
69
  [s(B.value, "wrapper") ?? ""]: !0
71
70
  }))), xe = n(() => e(z.value?.panel, {
@@ -59,8 +59,9 @@ export interface ModalEmits {
59
59
  */
60
60
  export interface ModalOwnProps {
61
61
  /**
62
- * Panel position from the `sm` breakpoint up (`{row}-{column}` grid).
63
- * Mobile always uses bottom sheet (`bottom-center`).
62
+ * Panel position on all breakpoints (`{row}-{column}` grid).
63
+ * Use `useBreakpoint` if you need a different align per viewport
64
+ * (e.g. bottom sheet on mobile, centered on desktop).
64
65
  *
65
66
  * @default "middle-center"
66
67
  */
@@ -6,19 +6,19 @@ type __VLS_ModelProps = {
6
6
  };
7
7
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
8
8
  declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
+ clear: () => any;
9
10
  search: (query: string) => any;
10
11
  select: (option: import('@bridge-ui/core').ListboxOption) => any;
11
12
  "update:modelValue": (...args: unknown[]) => any;
12
- clear: () => any;
13
13
  change: (value: import('@bridge-ui/core').SelectModel) => any;
14
14
  close: () => any;
15
15
  open: () => any;
16
16
  deselect: (option: import('@bridge-ui/core').ListboxOption) => any;
17
17
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
+ onClear?: (() => any) | undefined;
18
19
  onSearch?: ((query: string) => any) | undefined;
19
20
  onSelect?: ((option: import('@bridge-ui/core').ListboxOption) => any) | undefined;
20
21
  "onUpdate:modelValue"?: ((...args: unknown[]) => any) | undefined;
21
- onClear?: (() => any) | undefined;
22
22
  onChange?: ((value: import('@bridge-ui/core').SelectModel) => any) | undefined;
23
23
  onClose?: (() => any) | undefined;
24
24
  onOpen?: (() => any) | undefined;
@@ -732,8 +732,9 @@ export declare function useSelect(props: SelectOwnProps, model: Ref<null | undef
732
732
  entries: ListboxEntry[];
733
733
  options: import('@bridge-ui/core').ListboxOption[];
734
734
  labelledBy: string;
735
- highlightedIndex: number;
735
+ rounded: NonNullable<keyof import('@bridge-ui/core').FormFieldRounded | undefined>;
736
736
  invalidated: boolean;
737
+ highlightedIndex: number;
737
738
  color: "dark" | "error" | "info" | "primary" | "secondary" | "success" | "warning";
738
739
  size: "2xl" | "2xs" | "lg" | "md" | "sm" | "xl" | "xs";
739
740
  classes?: import('../../Listbox').ListboxClasses;
@@ -319,8 +319,9 @@ function m(m, h, g, _, we) {
319
319
  entries: Pe.value,
320
320
  options: W.value,
321
321
  labelledBy: K.controlId.value,
322
- highlightedIndex: S.value,
323
- invalidated: K.invalidated.value
322
+ rounded: K.merged.value.rounded,
323
+ invalidated: K.invalidated.value,
324
+ highlightedIndex: S.value
324
325
  }));
325
326
  function tt(e) {
326
327
  let t = I.value;
@@ -199,11 +199,11 @@ export interface SelectSlots extends FormFieldSlots {
199
199
  /**
200
200
  * Content below the trigger, above the option list.
201
201
  */
202
- afterOptions?: Slot;
202
+ afterOptions?: Slot<undefined>;
203
203
  /**
204
204
  * Content above the option list.
205
205
  */
206
- beforeOptions?: Slot;
206
+ beforeOptions?: Slot<undefined>;
207
207
  /**
208
208
  * Custom chip content (multiple mode).
209
209
  */
@@ -215,15 +215,15 @@ export interface SelectSlots extends FormFieldSlots {
215
215
  * When set (and not using declarative `SelectOption` children), replaces
216
216
  * mapped `options` inside the listbox.
217
217
  */
218
- default?: Slot;
218
+ default?: Slot<undefined>;
219
219
  /**
220
220
  * Custom empty-state content.
221
221
  */
222
- empty?: Slot;
222
+ empty?: Slot<undefined>;
223
223
  /**
224
224
  * Custom loading content.
225
225
  */
226
- loading?: Slot;
226
+ loading?: Slot<undefined>;
227
227
  /**
228
228
  * Custom option item content when rendering from the `options` prop.
229
229
  */
@@ -108,7 +108,7 @@ function h(h, _e, g = {}) {
108
108
  return;
109
109
  }
110
110
  S.value = !1, Q(n);
111
- }, { immediate: !0 }), o([G, W], ([e]) => {
111
+ }, { immediate: !0 }), o([W, G], ([e]) => {
112
112
  if (!e) {
113
113
  T.value = !1, b.value = 1;
114
114
  return;
@@ -185,30 +185,30 @@ export interface SnackbarSlots {
185
185
  /**
186
186
  * Inline actions below the description.
187
187
  */
188
- actions?: Slot;
188
+ actions?: Slot<undefined>;
189
189
  /**
190
190
  * Content below the title/description.
191
191
  */
192
- default?: Slot;
192
+ default?: Slot<undefined>;
193
193
  /**
194
194
  * Custom description markup.
195
195
  */
196
- description?: Slot;
196
+ description?: Slot<undefined>;
197
197
  /**
198
198
  * Custom icon markup.
199
199
  */
200
- icon?: Slot;
200
+ icon?: Slot<undefined>;
201
201
  /**
202
202
  * Vertical action column on the right edge (WireUI `rightButtons` layout).
203
203
  */
204
- right?: Slot;
204
+ right?: Slot<undefined>;
205
205
  /**
206
206
  * Custom title markup.
207
207
  */
208
- title?: Slot;
208
+ title?: Slot<undefined>;
209
209
  /**
210
210
  * Content before the close button (e.g. compact accept action with `padding="small"`).
211
211
  */
212
- trailing?: Slot;
212
+ trailing?: Slot<undefined>;
213
213
  }
214
214
  export type SnackbarProps = MergeHtmlProps<SnackbarOwnProps, HTMLAttributes>;
@@ -32,17 +32,17 @@ function v(o, v) {
32
32
  }), C = n({
33
33
  entry: S,
34
34
  props: () => b.value.componentProps
35
- }), w = r(() => x.value.customProps), T = r(() => a(d(p, S.value?.customProps?.color), x.value.color)), E = r(() => a(d(m, S.value?.customProps?.size), x.value.size)), D = r(() => a(d(h, S.value?.customProps?.variant), x.value.variant)), O = r(() => x.value.thickness ?? s), k = r(() => x.value.variant === "determinate"), A = r(() => x.value.variant === "indeterminate"), j = r(() => !!x.value.enableTrack), M = r(() => !!x.value.disableShrink), N = r(() => _(x.value.value)), P = r(() => u(O.value)), F = c / 2, I = r(() => e(w.value?.root, b.value.inheritedAttrs, {
35
+ }), w = r(() => x.value.customProps), T = r(() => a(d(p, S.value?.customProps?.color), x.value.color)), E = r(() => a(d(m, S.value?.customProps?.size), x.value.size)), D = r(() => a(d(h, S.value?.customProps?.variant), x.value.variant)), O = r(() => x.value.thickness ?? s), k = r(() => u(O.value)), A = c / 2, j = r(() => _(x.value.value)), M = r(() => !!x.value.enableTrack), N = r(() => !!x.value.disableShrink), P = r(() => x.value.variant === "determinate"), F = r(() => x.value.variant === "indeterminate"), I = r(() => e(w.value?.root, b.value.inheritedAttrs, {
36
36
  role: "progressbar",
37
- ...k.value ? {
37
+ ...P.value ? {
38
38
  "aria-valuemin": 0,
39
39
  "aria-valuemax": 100,
40
- "aria-valuenow": N.value
40
+ "aria-valuenow": j.value
41
41
  } : {},
42
42
  class: l({
43
43
  "inline-block": !0,
44
44
  [E.value ?? ""]: !0,
45
- [D.value ?? ""]: A.value,
45
+ [D.value ?? ""]: F.value,
46
46
  [C.value.root ?? ""]: !0
47
47
  })
48
48
  }));
@@ -53,31 +53,31 @@ function v(o, v) {
53
53
  [C.value.svg ?? ""]: !0
54
54
  }))),
55
55
  rootBind: I,
56
- trackBind: r(() => j.value ? e(w.value?.track, {
57
- cx: F,
58
- cy: F,
56
+ trackBind: r(() => M.value ? e(w.value?.track, {
57
+ cx: A,
58
+ cy: A,
59
59
  fill: "none",
60
- r: P.value.radius,
60
+ r: k.value.radius,
61
61
  "stroke-width": O.value
62
62
  }, l({
63
63
  [T.value?.track ?? ""]: !0,
64
64
  [C.value.track ?? ""]: !0
65
65
  })) : null),
66
66
  circleBind: r(() => {
67
- let { radius: t, circumference: n } = P.value, r = k.value ? {
67
+ let { radius: t, circumference: n } = k.value, r = P.value ? {
68
68
  transformOrigin: "50% 50%",
69
69
  transform: "rotate(-90deg)",
70
70
  strokeDasharray: n,
71
71
  transition: "stroke-dashoffset 200ms linear",
72
- strokeDashoffset: (100 - N.value) / 100 * n
73
- } : {}, i = A.value ? {
72
+ strokeDashoffset: (100 - j.value) / 100 * n
73
+ } : {}, i = F.value ? {
74
74
  strokeDashoffset: 0,
75
- strokeDasharray: M.value ? `${n * .8}px, ${n}px` : "80px, 200px"
75
+ strokeDasharray: N.value ? `${n * .8}px, ${n}px` : "80px, 200px"
76
76
  } : {};
77
77
  return e(w.value?.circle, {
78
78
  r: t,
79
- cx: F,
80
- cy: F,
79
+ cx: A,
80
+ cy: A,
81
81
  fill: "none",
82
82
  "stroke-width": O.value,
83
83
  style: {
@@ -86,11 +86,11 @@ function v(o, v) {
86
86
  }
87
87
  }, l({
88
88
  [T.value?.circle ?? ""]: !0,
89
- "animate-bridge-spinner-dash": A.value && !M.value,
89
+ "animate-bridge-spinner-dash": F.value && !N.value,
90
90
  [C.value.circle ?? ""]: !0
91
91
  }));
92
92
  }),
93
- enableTrack: j
93
+ enableTrack: M
94
94
  };
95
95
  }
96
96
  //#endregion
@@ -0,0 +1,5 @@
1
+ import e from "./Tab.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/Components/Tab/Tab.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,11 @@
1
+ import { TabOwnProps, TabSlots } from './tab.types';
2
+ type __VLS_Slots = TabSlots;
3
+ declare const __VLS_base: import('vue').DefineComponent<TabOwnProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<TabOwnProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
4
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
7
+ type __VLS_WithSlots<T, S> = T & {
8
+ new (): {
9
+ $slots: S;
10
+ };
11
+ };
@@ -0,0 +1,33 @@
1
+ import { hasNamedSlot as e, resolveNamedSlot as t } from "../../Utils/slotOrProp.js";
2
+ import n from "../Icon/Icon.js";
3
+ import { useTab as r } from "./composables/useTab.js";
4
+ import { createBlock as i, createCommentVNode as a, createElementBlock as o, defineComponent as s, guardReactiveProps as c, mergeProps as l, normalizeProps as u, openBlock as d, resolveDynamicComponent as f, unref as p, useSlots as m } from "vue";
5
+ //#region src/Components/Tab/Tab.vue?vue&type=script&setup=true&lang.ts
6
+ var h = /* @__PURE__ */ s({
7
+ inheritAttrs: !1,
8
+ __name: "Tab",
9
+ props: {
10
+ classes: {},
11
+ customProps: {},
12
+ disabled: { type: Boolean },
13
+ endIcon: { type: [Function, Object] },
14
+ startIcon: { type: [Function, Object] },
15
+ value: {}
16
+ },
17
+ setup(s) {
18
+ let h = m(), { merged: g, iconSize: _, rootBind: v, endIconBind: y, endSlotBind: b, startIconBind: x, startSlotBind: S } = r(s);
19
+ return (r, s) => (d(), o("button", u(c(p(v))), [
20
+ p(g).startIcon ? (d(), i(p(n), l({
21
+ key: 0,
22
+ size: p(_)
23
+ }, p(x), { icon: p(g).startIcon }), null, 16, ["size", "icon"])) : p(e)(p(h), "start") ? (d(), o("div", u(l({ key: 1 }, p(S))), [(d(), i(f(p(t)(p(h), "start"))))], 16)) : a("", !0),
24
+ (d(), i(f(p(t)(p(h), "default")))),
25
+ p(g).endIcon ? (d(), i(p(n), l({
26
+ key: 2,
27
+ size: p(_)
28
+ }, p(y), { icon: p(g).endIcon }), null, 16, ["size", "icon"])) : p(e)(p(h), "end") ? (d(), o("div", u(l({ key: 3 }, p(b))), [(d(), i(f(p(t)(p(h), "end"))))], 16)) : a("", !0)
29
+ ], 16));
30
+ }
31
+ });
32
+ //#endregion
33
+ export { h as default };
@@ -0,0 +1,23 @@
1
+ import { IconSize } from '@bridge-ui/core';
2
+ import { TabOwnProps, TabProps } from '../tab.types';
3
+ export declare function useTab(props: TabOwnProps): {
4
+ merged: import('vue').ComputedRef<TabOwnProps>;
5
+ iconSize: import('vue').ComputedRef<keyof IconSize>;
6
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<{
7
+ role: string;
8
+ type: string;
9
+ onClick: (event: PointerEvent) => void;
10
+ disabled: boolean;
11
+ onKeydown: (event: KeyboardEvent) => void;
12
+ "aria-selected": boolean;
13
+ tabindex: number;
14
+ id: string;
15
+ "aria-controls": string;
16
+ class: string;
17
+ }, "class", import('vue').ButtonHTMLAttributes | undefined, Omit<TabProps, "value" | "classes" | "customProps" | "disabled" | "endIcon" | "startIcon">>>;
18
+ selected: import('vue').ComputedRef<boolean>;
19
+ endIconBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", Partial<Omit<import('../../Icon').IconProps, "icon">> | undefined, {}>>;
20
+ endSlotBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
21
+ startIconBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", Partial<Omit<import('../../Icon').IconProps, "icon">> | undefined, {}>>;
22
+ startSlotBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
23
+ };