@bridge-ui/vue 0.4.0 → 0.5.1
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.
- package/ai/skills/bridge-ui-components/SKILL.md +3 -1
- package/dist/Components/Accordion/accordionInjectionKey.d.ts +1 -0
- package/dist/Components/Accordion/composables/useAccordion.js +3 -2
- package/dist/Components/AccordionItem/composables/useAccordionItem.js +1 -0
- package/dist/Components/DataTable/DataTable.vue.d.ts +1 -1
- package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +97 -92
- package/dist/Components/DataTable/composables/useDataTable.d.ts +1 -1
- package/dist/Components/DataTable/composables/useDataTable.js +1 -1
- package/dist/Components/EmptyState/EmptyState.js +5 -0
- package/dist/Components/EmptyState/EmptyState.vue.d.ts +16 -0
- package/dist/Components/EmptyState/EmptyState.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/Components/EmptyState/composables/useEmptyState.d.ts +24 -0
- package/dist/Components/EmptyState/composables/useEmptyState.js +76 -0
- package/dist/Components/EmptyState/emptyState.types.d.ts +140 -0
- package/dist/Components/EmptyState/index.d.ts +3 -0
- package/dist/Components/EmptyState/index.js +3 -0
- package/dist/Components/List/composables/useList.d.ts +3 -1
- package/dist/Components/List/composables/useList.js +2 -2
- package/dist/Components/ListItem/ListItem.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/Components/ListSection/ListSection.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/Components/ListSection/composables/useListSection.d.ts +1 -0
- package/dist/Components/ListSection/composables/useListSection.js +30 -28
- package/dist/Components/ListSection/listSectionInjectionKey.d.ts +5 -0
- package/dist/Components/ListSection/listSectionInjectionKey.js +4 -0
- package/dist/Components/Sidebar/Sidebar.js +5 -0
- package/dist/Components/Sidebar/Sidebar.vue.d.ts +16 -0
- package/dist/Components/Sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +59 -0
- package/dist/Components/Sidebar/SidebarInset.js +5 -0
- package/dist/Components/Sidebar/SidebarInset.vue.d.ts +11 -0
- package/dist/Components/Sidebar/SidebarInset.vue_vue_type_script_setup_true_lang.js +18 -0
- package/dist/Components/Sidebar/SidebarList.js +5 -0
- package/dist/Components/Sidebar/SidebarList.vue.d.ts +16 -0
- package/dist/Components/Sidebar/SidebarList.vue_vue_type_script_setup_true_lang.js +40 -0
- package/dist/Components/Sidebar/SidebarListItem.js +5 -0
- package/dist/Components/Sidebar/SidebarListItem.vue.d.ts +13 -0
- package/dist/Components/Sidebar/SidebarListItem.vue_vue_type_script_setup_true_lang.js +120 -0
- package/dist/Components/Sidebar/SidebarProvider.js +5 -0
- package/dist/Components/Sidebar/SidebarProvider.vue.d.ts +24 -0
- package/dist/Components/Sidebar/SidebarProvider.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/Components/Sidebar/SidebarTrigger.js +5 -0
- package/dist/Components/Sidebar/SidebarTrigger.vue.d.ts +11 -0
- package/dist/Components/Sidebar/SidebarTrigger.vue_vue_type_script_setup_true_lang.js +36 -0
- package/dist/Components/Sidebar/composables/useSidebar.d.ts +6 -0
- package/dist/Components/Sidebar/composables/useSidebar.js +10 -0
- package/dist/Components/Sidebar/composables/useSidebarInset.d.ts +7 -0
- package/dist/Components/Sidebar/composables/useSidebarInset.js +32 -0
- package/dist/Components/Sidebar/composables/useSidebarList.d.ts +8 -0
- package/dist/Components/Sidebar/composables/useSidebarList.js +27 -0
- package/dist/Components/Sidebar/composables/useSidebarListItem.d.ts +15 -0
- package/dist/Components/Sidebar/composables/useSidebarListItem.js +44 -0
- package/dist/Components/Sidebar/composables/useSidebarProvider.d.ts +18 -0
- package/dist/Components/Sidebar/composables/useSidebarProvider.js +88 -0
- package/dist/Components/Sidebar/composables/useSidebarShell.d.ts +41 -0
- package/dist/Components/Sidebar/composables/useSidebarShell.js +116 -0
- package/dist/Components/Sidebar/composables/useSidebarTrigger.d.ts +12 -0
- package/dist/Components/Sidebar/composables/useSidebarTrigger.js +28 -0
- package/dist/Components/Sidebar/index.d.ts +15 -0
- package/dist/Components/Sidebar/index.js +15 -0
- package/dist/Components/Sidebar/sidebar.types.d.ts +244 -0
- package/dist/Components/Sidebar/sidebarInjectionKey.d.ts +80 -0
- package/dist/Components/Sidebar/sidebarInjectionKey.js +4 -0
- package/dist/Components/Sidebar/sidebarListInjectionKey.d.ts +5 -0
- package/dist/Components/Sidebar/sidebarListInjectionKey.js +4 -0
- package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/augments.d.ts +10 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +79 -64
- package/docs/README.md +2 -0
- package/docs/ScrollUtilities.md +1 -1
- package/docs/components/DataTable.md +1 -1
- package/docs/components/Drawer.md +1 -1
- package/docs/components/EmptyState.md +125 -0
- package/docs/components/List.md +1 -1
- package/docs/components/Sidebar.md +281 -0
- package/docs/examples/icon-fontawesome.ts +3 -0
- package/docs/examples/icon-heroicons.ts +4 -0
- package/docs/examples/icon-lucide.ts +4 -0
- package/docs/examples/icon-phosphor.ts +4 -0
- package/docs/examples/icon-tabler.ts +4 -0
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: bridge-ui-components
|
|
3
3
|
description: >-
|
|
4
4
|
Use Bridge UI Vue components — Button, Avatar, Card, Alert, Accordion, Badge, Icon,
|
|
5
|
-
Link, List, Table, DataTable, Tabs, Spinner, Skeleton, Progress, Stepper, Pagination, TextField, Select,
|
|
5
|
+
Link, List, Table, DataTable, Tabs, Spinner, Skeleton, EmptyState, Sidebar, Progress, Stepper, Pagination, TextField, Select,
|
|
6
6
|
Autocomplete, DateField, DatePicker, DateRangeField, DateRangePicker,
|
|
7
7
|
TimeField, TimePicker, DateTimeField, DateTimePicker, ColorField, ColorPicker,
|
|
8
8
|
classes, customProps, slots. Use when building UI with Bridge components.
|
|
@@ -32,6 +32,7 @@ In templates, use kebab-case attrs (`start-icon`, `custom-props`, `error-message
|
|
|
32
32
|
| Tabs | `.ai/docs/components/Tabs.md` |
|
|
33
33
|
| Text input | `.ai/docs/components/TextField.md` |
|
|
34
34
|
| Select / autocomplete | `.ai/docs/components/Select.md`, `Autocomplete.md` |
|
|
35
|
+
| Sidebar / app shell | `.ai/docs/components/Sidebar.md` |
|
|
35
36
|
| Date | `.ai/docs/components/DateField.md`, `DatePicker.md` |
|
|
36
37
|
| Date range | `.ai/docs/components/DateRangeField.md`, `DateRangePicker.md` |
|
|
37
38
|
| Time | `.ai/docs/components/TimeField.md`, `TimePicker.md` |
|
|
@@ -40,6 +41,7 @@ In templates, use kebab-case attrs (`start-icon`, `custom-props`, `error-message
|
|
|
40
41
|
| Date-time range | `.ai/docs/components/DateTimeRangeField.md`, `DateTimeRangePicker.md` |
|
|
41
42
|
| Color | `.ai/docs/components/ColorField.md`, `ColorPicker.md` |
|
|
42
43
|
| Spinner / skeleton / progress | `.ai/docs/components/Spinner.md`, `Skeleton.md`, `Progress.md` |
|
|
44
|
+
| Empty / no data | `.ai/docs/components/EmptyState.md` |
|
|
43
45
|
| Scroll fade / scrollbar | `.ai/docs/ScrollUtilities.md` |
|
|
44
46
|
| Index | `.ai/docs/README.md` |
|
|
45
47
|
|
|
@@ -61,9 +61,10 @@ function b(b, x, S, C) {
|
|
|
61
61
|
triggerSize: l(V.value, "trigger"),
|
|
62
62
|
rootVariant: l(H.value, "root"),
|
|
63
63
|
itemVariant: l(H.value, "item"),
|
|
64
|
+
panelVariant: l(H.value, "panel"),
|
|
64
65
|
triggerVariant: l(H.value, "trigger"),
|
|
65
|
-
colorIndicator: l(U.value, "indicator"),
|
|
66
|
-
colorTriggerExpanded: l(U.value, "triggerExpanded")
|
|
66
|
+
colorIndicator: A.value.variant === "plain" ? void 0 : l(U.value, "indicator"),
|
|
67
|
+
colorTriggerExpanded: A.value.variant === "plain" ? void 0 : l(U.value, "triggerExpanded")
|
|
67
68
|
}
|
|
68
69
|
}));
|
|
69
70
|
return a(e, W), {
|
|
@@ -2,7 +2,7 @@ import { VNodeChild } from 'vue';
|
|
|
2
2
|
import { DataTableColumnSearch, DataTableFilters } from '@bridge-ui/core/Domain';
|
|
3
3
|
import { DataTableItemSlotProps, DataTableOwnProps, DataTableSlots, DataTableSorting } from './dataTable.types';
|
|
4
4
|
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
5
|
-
props: import('vue').PublicProps & __VLS_PrettifyLocal<(Omit<DataTableOwnProps<T>, "search" | "page" | "filters" | "
|
|
5
|
+
props: import('vue').PublicProps & __VLS_PrettifyLocal<(Omit<DataTableOwnProps<T>, "search" | "page" | "filters" | "expanded" | "columnSearch" | "hiddenColumns" | "perPage" | "selection" | "sorting"> & {
|
|
6
6
|
page?: number;
|
|
7
7
|
perPage?: number;
|
|
8
8
|
search?: string;
|
|
@@ -2,29 +2,30 @@ import { useResolveMessage as e } from "../../Adapters/I18n/useI18nAdapter.js";
|
|
|
2
2
|
import { hasNamedSlot as t } from "../../Utils/slotOrProp.js";
|
|
3
3
|
import n from "../Icon/Icon.js";
|
|
4
4
|
import ee from "../Progress/Progress.js";
|
|
5
|
-
import te from "../
|
|
6
|
-
import ne from "../
|
|
5
|
+
import te from "../EmptyState/EmptyState.js";
|
|
6
|
+
import ne from "../Pagination/Pagination.js";
|
|
7
|
+
import re from "../Select/Select.js";
|
|
7
8
|
import { useDataTable as r } from "./composables/useDataTable.js";
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
9
|
+
import ie from "./DataTableCellContent.js";
|
|
10
|
+
import ae from "./DataTableColumnsMenu.js";
|
|
11
|
+
import oe from "./DataTableFilterMenu.js";
|
|
12
|
+
import se from "./DataTableSearch.js";
|
|
12
13
|
import i from "./DataTableSelection.js";
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
14
|
+
import ce from "./DataTableSortButton.js";
|
|
15
|
+
import le from "../Table/Table.js";
|
|
16
|
+
import ue from "../Table/TableBody.js";
|
|
16
17
|
import a from "../Table/TableCell.js";
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
18
|
+
import de from "../Table/TableFooter.js";
|
|
19
|
+
import fe from "../Table/TableHead.js";
|
|
20
|
+
import pe from "../Table/TableHeader.js";
|
|
20
21
|
import o from "../Table/TableRow.js";
|
|
21
|
-
import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f,
|
|
22
|
-
import { cn as
|
|
22
|
+
import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode 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, renderList as x, renderSlot as S, toDisplayString as me, unref as C, useId as he, useModel as w, useSlots as ge, withCtx as T } from "vue";
|
|
23
|
+
import { cn as E } from "@bridge-ui/core/Utils";
|
|
23
24
|
//#region src/Components/DataTable/DataTable.vue?vue&type=script&setup=true&lang.ts
|
|
24
|
-
var
|
|
25
|
+
var _e = { class: "min-w-0 flex-1" }, ve = { class: "flex shrink-0 items-center gap-2" }, ye = {
|
|
25
26
|
key: 0,
|
|
26
27
|
class: "inline-flex items-center rounded-lg border border-dark-200 bg-white p-0.5 dark:border-dark-700 dark:bg-dark-900"
|
|
27
|
-
},
|
|
28
|
+
}, be = { class: "relative" }, D = {
|
|
28
29
|
key: 1,
|
|
29
30
|
class: "flex w-full min-w-0 items-center gap-1.5 leading-none"
|
|
30
31
|
}, O = ["aria-expanded", "onClick"], k = ["aria-hidden"], A = { class: "min-h-0 overflow-hidden" }, j = { class: "p-3" }, M = ["aria-hidden"], N = { class: "flex shrink-0 items-center gap-2" }, xe = { class: "text-sm whitespace-nowrap text-dark-500 dark:text-dark-400" }, P = /*@__PURE__*/ m({
|
|
@@ -102,7 +103,7 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
102
103
|
"update:columnSearch"
|
|
103
104
|
],
|
|
104
105
|
setup(m) {
|
|
105
|
-
let g = m, P =
|
|
106
|
+
let g = m, P = ge(), F = e(), I = w(m, "page"), Se = w(m, "perPage"), L = w(m, "search"), Ce = w(m, "expanded"), we = w(m, "selection"), Te = w(m, "filters"), Ee = w(m, "sorting"), De = w(m, "hiddenColumns"), Oe = w(m, "columnSearch"), { merged: R, rowViews: ke, rootBind: Ae, emptyBind: je, showEmpty: z, frameBind: Me, tableProps: Ne, footerBind: Pe, loadingBar: B, showSearch: V, getHeadBind: Fe, headerViews: Ie, loadingBind: Le, onToggleRow: Re, toolbarBind: ze, getCellBind: H, columnCount: U, showPerPage: Be, showToolbar: Ve, getHeadAlign: He, getCellAlign: W, onTogglePage: Ue, summaryCells: G, expandEnabled: We, loadingBarBind: Ge, paginationBind: Ke, selectAllState: K, showPagination: qe, onChangeSearch: Je, onToggleExpand: Ye, visibilityItems: Xe, perPageSlotProps: q, resolvedPageCount: J, selectionMultiple: Y, visibilityEnabled: Ze, paginationSlotProps: X, onCommitColumnFilter: Qe, onHiddenColumnsChange: $e } = r(g, {
|
|
106
107
|
size: "md",
|
|
107
108
|
full: !0,
|
|
108
109
|
rounded: "lg",
|
|
@@ -158,13 +159,13 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
158
159
|
}
|
|
159
160
|
}
|
|
160
161
|
};
|
|
161
|
-
}), rt =
|
|
162
|
-
return (e, r) => (b(), d("div", y(h(
|
|
163
|
-
|
|
164
|
-
items:
|
|
165
|
-
overlay:
|
|
166
|
-
onChange:
|
|
167
|
-
"show-footer":
|
|
162
|
+
}), rt = he(), $ = (e) => e.node ?? null;
|
|
163
|
+
return (e, r) => (b(), d("div", y(h(C(Ae))), [C(Ve) ? (b(), d("div", y(_({ key: 0 }, C(ze))), [f("div", _e, [S(e.$slots, "toolbar")]), f("div", ve, [
|
|
164
|
+
C(Ze) ? (b(), d("div", ye, [p(ae, {
|
|
165
|
+
items: C(Xe),
|
|
166
|
+
overlay: C(R).columnsOverlay,
|
|
167
|
+
onChange: C($e),
|
|
168
|
+
"show-footer": C(R).columnsShowFooter
|
|
168
169
|
}, null, 8, [
|
|
169
170
|
"items",
|
|
170
171
|
"overlay",
|
|
@@ -172,58 +173,58 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
172
173
|
"show-footer"
|
|
173
174
|
])])) : u("", !0),
|
|
174
175
|
S(e.$slots, "toolbarActions"),
|
|
175
|
-
|
|
176
|
+
C(V) ? S(e.$slots, "search", {}, () => [p(se, {
|
|
176
177
|
"model-value": L.value ?? "",
|
|
177
|
-
"onUpdate:modelValue":
|
|
178
|
-
"field-props":
|
|
178
|
+
"onUpdate:modelValue": C(Je),
|
|
179
|
+
"field-props": C(R).customProps?.search
|
|
179
180
|
}, null, 8, [
|
|
180
181
|
"model-value",
|
|
181
182
|
"onUpdate:modelValue",
|
|
182
183
|
"field-props"
|
|
183
184
|
])], void 0, 1) : u("", !0)
|
|
184
|
-
])], 16)) : u("", !0), f("div", y(h(
|
|
185
|
-
f("div",
|
|
186
|
-
default:
|
|
187
|
-
p(
|
|
188
|
-
default:
|
|
189
|
-
default:
|
|
185
|
+
])], 16)) : u("", !0), f("div", y(h(C(Me))), [
|
|
186
|
+
f("div", be, [p(C(le), y(h(C(Ne))), {
|
|
187
|
+
default: T(() => [
|
|
188
|
+
p(C(pe), y(h(C(R).customProps?.header)), {
|
|
189
|
+
default: T(() => [p(C(o), y(h(C(R).customProps?.row)), {
|
|
190
|
+
default: T(() => [(b(!0), d(s, null, x(C(Ie), (e) => (b(), l(C(fe), _({
|
|
190
191
|
key: e.id,
|
|
191
|
-
align:
|
|
192
|
-
}, { ref_for: !0 },
|
|
193
|
-
default:
|
|
192
|
+
align: C(He)(e)
|
|
193
|
+
}, { ref_for: !0 }, C(Fe)(e)), {
|
|
194
|
+
default: T(() => [e.isSelection && C(Y) ? (b(), l(i, {
|
|
194
195
|
key: 0,
|
|
195
196
|
kind: "page",
|
|
196
197
|
size: Z.value,
|
|
197
|
-
onChange:
|
|
198
|
-
checked:
|
|
199
|
-
indeterminate:
|
|
200
|
-
"checkbox-props":
|
|
198
|
+
onChange: C(Ue),
|
|
199
|
+
checked: C(K).checked,
|
|
200
|
+
indeterminate: C(K).indeterminate,
|
|
201
|
+
"checkbox-props": C(R).customProps?.checkbox
|
|
201
202
|
}, null, 8, [
|
|
202
203
|
"size",
|
|
203
204
|
"onChange",
|
|
204
205
|
"checked",
|
|
205
206
|
"indeterminate",
|
|
206
207
|
"checkbox-props"
|
|
207
|
-
])) : !e.isSelection && !e.isExpand ? (b(), d("div",
|
|
208
|
+
])) : !e.isSelection && !e.isExpand ? (b(), d("div", D, [e.sortable ? (b(), l(ce, {
|
|
208
209
|
key: 0,
|
|
209
210
|
sort: e.ariaSort
|
|
210
211
|
}, {
|
|
211
|
-
default:
|
|
212
|
+
default: T(() => [p($, { node: e.header }, null, 8, ["node"])]),
|
|
212
213
|
_: 2
|
|
213
214
|
}, 1032, ["sort"])) : (b(), l($, {
|
|
214
215
|
key: 1,
|
|
215
216
|
node: e.header
|
|
216
|
-
}, null, 8, ["node"])), e.filterable ? (b(), l(
|
|
217
|
+
}, null, 8, ["node"])), e.filterable ? (b(), l(oe, {
|
|
217
218
|
key: 2,
|
|
218
219
|
"column-id": e.id,
|
|
219
220
|
active: e.filterActive,
|
|
220
221
|
values: e.filterValues,
|
|
221
|
-
overlay:
|
|
222
|
+
overlay: C(R).filterOverlay,
|
|
222
223
|
options: e.filterOptions,
|
|
223
224
|
searchable: e.searchable,
|
|
224
225
|
multiple: e.filterMultiple,
|
|
225
226
|
"search-value": e.searchQuery,
|
|
226
|
-
onApply: (t, n) =>
|
|
227
|
+
onApply: (t, n) => C(Qe)(e.id, t, n)
|
|
227
228
|
}, null, 8, [
|
|
228
229
|
"column-id",
|
|
229
230
|
"active",
|
|
@@ -238,50 +239,54 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
238
239
|
_: 2
|
|
239
240
|
}, 1040, ["align"]))), 128))]),
|
|
240
241
|
_: 1
|
|
241
|
-
}, 16),
|
|
242
|
+
}, 16), C(R).loading && C(B) ? (b(), l(C(o), {
|
|
242
243
|
key: 0,
|
|
243
244
|
classes: { root: "h-0" }
|
|
244
245
|
}, {
|
|
245
|
-
default:
|
|
246
|
-
colspan:
|
|
246
|
+
default: T(() => [p(C(a), {
|
|
247
|
+
colspan: C(U),
|
|
247
248
|
classes: { root: "relative h-0 border-0 p-0 after:hidden" }
|
|
248
249
|
}, {
|
|
249
|
-
default:
|
|
250
|
+
default: T(() => [f("div", y(h(C(Ge))), [S(e.$slots, "loading", {}, () => [p(C(ee), _({
|
|
250
251
|
size: "xs",
|
|
251
252
|
rounded: "none"
|
|
252
|
-
},
|
|
253
|
+
}, C(R).customProps?.progress), null, 16)])], 16)]),
|
|
253
254
|
_: 3
|
|
254
255
|
}, 8, ["colspan"])]),
|
|
255
256
|
_: 3
|
|
256
257
|
})) : u("", !0)]),
|
|
257
258
|
_: 3
|
|
258
259
|
}, 16),
|
|
259
|
-
p(
|
|
260
|
-
default:
|
|
261
|
-
default:
|
|
260
|
+
p(C(ue), y(h(C(R).customProps?.body)), {
|
|
261
|
+
default: T(() => [C(z) ? (b(), l(C(o), { key: 0 }, {
|
|
262
|
+
default: T(() => [p(C(a), {
|
|
262
263
|
align: "center",
|
|
263
|
-
colspan:
|
|
264
|
+
colspan: C(U)
|
|
264
265
|
}, {
|
|
265
|
-
default:
|
|
266
|
+
default: T(() => [f("div", y(h(C(je))), [S(e.$slots, "empty", {}, () => [p(C(te), {
|
|
267
|
+
icon: "inbox",
|
|
268
|
+
size: C(R).size,
|
|
269
|
+
title: C(F)("No data")
|
|
270
|
+
}, null, 8, ["size", "title"])])], 16)]),
|
|
266
271
|
_: 3
|
|
267
272
|
}, 8, ["colspan"])]),
|
|
268
273
|
_: 3
|
|
269
|
-
})) : u("", !0),
|
|
270
|
-
default:
|
|
274
|
+
})) : u("", !0), C(z) ? u("", !0) : (b(!0), d(s, { key: 1 }, x(C(ke), (t) => (b(), d(s, { key: t.id }, [p(C(o), _({ ref_for: !0 }, C(R).customProps?.row), {
|
|
275
|
+
default: T(() => [(b(!0), d(s, null, x(t.cells, (e) => (b(), l(C(a), _({
|
|
271
276
|
key: e.id,
|
|
272
|
-
align:
|
|
273
|
-
}, { ref_for: !0 },
|
|
274
|
-
default:
|
|
277
|
+
align: C(W)(e)
|
|
278
|
+
}, { ref_for: !0 }, C(H)(e)), {
|
|
279
|
+
default: T(() => [e.isSelection ? (b(), l(i, {
|
|
275
280
|
key: 0,
|
|
276
281
|
kind: "row",
|
|
277
282
|
value: t.id,
|
|
278
283
|
size: Z.value,
|
|
279
|
-
name:
|
|
284
|
+
name: C(rt),
|
|
280
285
|
checked: t.selected,
|
|
281
|
-
multiple:
|
|
282
|
-
"radio-props":
|
|
283
|
-
"checkbox-props":
|
|
284
|
-
onChange: (e) =>
|
|
286
|
+
multiple: C(Y),
|
|
287
|
+
"radio-props": C(R).customProps?.radio,
|
|
288
|
+
"checkbox-props": C(R).customProps?.checkbox,
|
|
289
|
+
onChange: (e) => C(Re)(t.id, e)
|
|
285
290
|
}, null, 8, [
|
|
286
291
|
"value",
|
|
287
292
|
"size",
|
|
@@ -296,33 +301,33 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
296
301
|
type: "button",
|
|
297
302
|
"aria-label": "Expand row",
|
|
298
303
|
"aria-expanded": t.expanded,
|
|
299
|
-
onClick: (e) =>
|
|
304
|
+
onClick: (e) => C(Ye)(t.id, !t.expanded),
|
|
300
305
|
class: "inline-flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm leading-none hover:bg-dark-500/10 dark:hover:bg-dark-500/15"
|
|
301
|
-
}, [f("span", { class: v([{ "rotate-90": t.expanded }, "inline-flex transition-transform duration-200 motion-reduce:transition-none"]) }, [p(
|
|
306
|
+
}, [f("span", { class: v([{ "rotate-90": t.expanded }, "inline-flex transition-transform duration-200 motion-reduce:transition-none"]) }, [p(C(n), {
|
|
302
307
|
size: "sm",
|
|
303
308
|
icon: "chevronRight"
|
|
304
|
-
})], 2)], 8, O)) : (b(), l(
|
|
309
|
+
})], 2)], 8, O)) : (b(), l(ie, {
|
|
305
310
|
key: 2,
|
|
306
311
|
tooltip: e.tooltip,
|
|
307
312
|
ellipsis: e.ellipsis
|
|
308
313
|
}, {
|
|
309
|
-
default:
|
|
314
|
+
default: T(() => [p($, { node: et(t, e) }, null, 8, ["node"])]),
|
|
310
315
|
_: 2
|
|
311
316
|
}, 1032, ["tooltip", "ellipsis"]))]),
|
|
312
317
|
_: 2
|
|
313
318
|
}, 1040, ["align"]))), 128))]),
|
|
314
319
|
_: 2
|
|
315
|
-
}, 1040),
|
|
316
|
-
default:
|
|
317
|
-
colspan:
|
|
318
|
-
classes: { root:
|
|
320
|
+
}, 1040), C(We) ? (b(), l(C(o), { key: 0 }, {
|
|
321
|
+
default: T(() => [p(C(a), {
|
|
322
|
+
colspan: C(U),
|
|
323
|
+
classes: { root: C(E)({
|
|
319
324
|
"p-0": !0,
|
|
320
325
|
"border-0": !t.expanded
|
|
321
326
|
}) }
|
|
322
327
|
}, {
|
|
323
|
-
default:
|
|
328
|
+
default: T(() => [f("div", {
|
|
324
329
|
"aria-hidden": !t.expanded,
|
|
325
|
-
class: v(
|
|
330
|
+
class: v(C(E)({
|
|
326
331
|
"grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none": !0,
|
|
327
332
|
"grid-rows-[1fr]": t.expanded,
|
|
328
333
|
"grid-rows-[0fr]": !t.expanded
|
|
@@ -334,13 +339,13 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
334
339
|
}, 1024)) : u("", !0)], 64))), 128))]),
|
|
335
340
|
_: 3
|
|
336
341
|
}, 16),
|
|
337
|
-
|
|
338
|
-
default:
|
|
339
|
-
default:
|
|
342
|
+
C(G) ? (b(), l(C(de), { key: 0 }, {
|
|
343
|
+
default: T(() => [p(C(o), y(h(C(R).customProps?.row)), {
|
|
344
|
+
default: T(() => [(b(!0), d(s, null, x(C(G), (e) => (b(), l(C(a), _({
|
|
340
345
|
key: e.id,
|
|
341
|
-
align:
|
|
342
|
-
}, { ref_for: !0 },
|
|
343
|
-
default:
|
|
346
|
+
align: C(W)(e)
|
|
347
|
+
}, { ref_for: !0 }, C(H)(e)), {
|
|
348
|
+
default: T(() => [p($, { node: e.content }, null, 8, ["node"])]),
|
|
344
349
|
_: 2
|
|
345
350
|
}, 1040, ["align"]))), 128))]),
|
|
346
351
|
_: 1
|
|
@@ -349,7 +354,7 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
349
354
|
})) : u("", !0)
|
|
350
355
|
]),
|
|
351
356
|
_: 3
|
|
352
|
-
}, 16),
|
|
357
|
+
}, 16), C(R).loading ? (b(), d("div", _({ key: 0 }, C(Le), { "aria-hidden": C(B) || void 0 }), [C(B) ? u("", !0) : S(e.$slots, "loading", {}, () => [r[2] ||= f("span", {
|
|
353
358
|
role: "status",
|
|
354
359
|
"aria-label": "Loading",
|
|
355
360
|
class: "relative inline-block size-5 animate-spin motion-reduce:animate-none"
|
|
@@ -359,32 +364,32 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
359
364
|
f("span", { class: "absolute inset-e-0 bottom-0 size-2 rounded-full bg-primary-500 dark:bg-primary-400" }),
|
|
360
365
|
f("span", { class: "absolute inset-s-0 bottom-0 size-2 rounded-full bg-primary-500 opacity-70 dark:bg-primary-400" })
|
|
361
366
|
], -1)], void 0, 0)], 16, M)) : u("", !0)]),
|
|
362
|
-
|
|
363
|
-
|
|
367
|
+
C(t)(C(P), "footer") ? (b(), d("div", y(_({ key: 0 }, C(Pe))), [S(e.$slots, "footer")], 16)) : u("", !0),
|
|
368
|
+
C(qe) ? (b(), d("div", y(_({ key: 1 }, C(Ke))), [C(Be) ? S(e.$slots, "perPage", y(h(C(q))), () => [f("div", N, [f("span", xe, me(C(F)("Per page:")), 1), p(C(re), _({ size: "sm" }, C(R).customProps?.perPage, {
|
|
364
369
|
overlay: "menu",
|
|
365
370
|
clearable: !1,
|
|
366
371
|
"hide-error-message": "",
|
|
367
372
|
"aria-label": "Per page",
|
|
368
373
|
options: tt.value,
|
|
369
374
|
"custom-props": nt.value,
|
|
370
|
-
"model-value":
|
|
371
|
-
"onUpdate:modelValue": r[0] ||= (e) =>
|
|
375
|
+
"model-value": C(q).perPage,
|
|
376
|
+
"onUpdate:modelValue": r[0] ||= (e) => C(q).onPerPageChange(Number(e)),
|
|
372
377
|
classes: {
|
|
373
|
-
...
|
|
374
|
-
root:
|
|
378
|
+
...C(R).customProps?.perPage?.classes,
|
|
379
|
+
root: C(E)("w-20", C(R).customProps?.perPage?.classes?.root)
|
|
375
380
|
}
|
|
376
381
|
}), null, 16, [
|
|
377
382
|
"options",
|
|
378
383
|
"custom-props",
|
|
379
384
|
"model-value",
|
|
380
385
|
"classes"
|
|
381
|
-
])])], void 0, 0) : u("", !0), S(e.$slots, "pagination", y(h(
|
|
386
|
+
])])], void 0, 0) : u("", !0), S(e.$slots, "pagination", y(h(C(X))), () => [C(J) === void 0 ? u("", !0) : (b(), l(C(ne), _({
|
|
382
387
|
key: 0,
|
|
383
388
|
modelValue: Q.value,
|
|
384
389
|
"onUpdate:modelValue": r[1] ||= (e) => Q.value = e,
|
|
385
|
-
count:
|
|
386
|
-
variant:
|
|
387
|
-
},
|
|
390
|
+
count: C(J),
|
|
391
|
+
variant: C(X).variant
|
|
392
|
+
}, C(R).customProps?.pagination), null, 16, [
|
|
388
393
|
"modelValue",
|
|
389
394
|
"count",
|
|
390
395
|
"variant"
|
|
@@ -73,7 +73,7 @@ export declare function useDataTable<T>(props: DataTableOwnProps<T>, libDefaults
|
|
|
73
73
|
rowViews: import('vue').ComputedRef<DataTableRowView<T>[]>;
|
|
74
74
|
rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
|
|
75
75
|
class: string;
|
|
76
|
-
}, "class", import('vue').HTMLAttributes | undefined, Partial<Omit<DataTableProps<T>, "search" | "columns" | "size" | "classes" | "customProps" | "full" | "rounded" | "variant" | "page" | "loading" | "rows" | "filters" | "hoverable" | "stickyHeader" | "striped" | "columnSearch" | "columnsOverlay" | "columnsShowFooter" | "
|
|
76
|
+
}, "class", import('vue').HTMLAttributes | undefined, Partial<Omit<DataTableProps<T>, "search" | "columns" | "size" | "classes" | "customProps" | "full" | "rounded" | "variant" | "page" | "loading" | "rows" | "filters" | "expanded" | "hoverable" | "stickyHeader" | "striped" | "columnSearch" | "columnsOverlay" | "columnsShowFooter" | "filterOverlay" | "getRowId" | "hiddenColumns" | "loadingVariant" | "pageCount" | "perPage" | "perPageOptions" | "selection" | "selectionMode" | "sorting" | "totalCount">>>>;
|
|
77
77
|
emptyBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
|
|
78
78
|
class: string;
|
|
79
79
|
}, "class", import('vue').HTMLAttributes | undefined, {}>>;
|
|
@@ -366,7 +366,7 @@ function y(h, g, _) {
|
|
|
366
366
|
"flex items-center justify-between gap-3 pb-3": !0,
|
|
367
367
|
[s(w.value, "toolbar") ?? ""]: !0
|
|
368
368
|
}) })), Bt = r(() => e(C.value?.empty, {}, { class: m({
|
|
369
|
-
"
|
|
369
|
+
"w-full": !0,
|
|
370
370
|
[s(w.value, "empty") ?? ""]: !0
|
|
371
371
|
}) })), Vt = r(() => e(C.value?.loading, {}, { class: m({
|
|
372
372
|
"absolute inset-0 z-30 bg-white/50 dark:bg-dark-900/50": !0,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EmptyStateOwnProps, EmptyStateSlots } from './emptyState.types';
|
|
2
|
+
type __VLS_Slots = EmptyStateSlots;
|
|
3
|
+
declare const __VLS_base: import('vue').DefineComponent<EmptyStateOwnProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EmptyStateOwnProps> & Readonly<{}>, {
|
|
4
|
+
size: import('@bridge-ui/core/Utils').MergeProps<import('@bridge-ui/core/Tokens').EmptyStateSize, import('./emptyState.types').EmptyStateSizeOverrides>;
|
|
5
|
+
align: import('@bridge-ui/core/Utils').MergeProps<import('@bridge-ui/core/Tokens').EmptyStateAlign, import('./emptyState.types').EmptyStateAlignOverrides>;
|
|
6
|
+
mediaDecorative: boolean;
|
|
7
|
+
titleAs: "p" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "div";
|
|
8
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { hasNamedSlot as e, hasSlotOrProp as t, isPropPresent as n } from "../../Utils/slotOrProp.js";
|
|
2
|
+
import r from "../Icon/Icon.js";
|
|
3
|
+
import { useEmptyState as i } from "./composables/useEmptyState.js";
|
|
4
|
+
import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createTextVNode as u, defineComponent as d, guardReactiveProps as f, mergeProps as p, normalizeProps as m, openBlock as h, renderSlot as g, resolveDynamicComponent as _, toDisplayString as v, unref as y, withCtx as b } from "vue";
|
|
5
|
+
//#region src/Components/EmptyState/EmptyState.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var x = /*@__PURE__*/ d({
|
|
7
|
+
inheritAttrs: !1,
|
|
8
|
+
__name: "EmptyState",
|
|
9
|
+
props: {
|
|
10
|
+
align: { default: "center" },
|
|
11
|
+
classes: {},
|
|
12
|
+
customProps: {},
|
|
13
|
+
description: {},
|
|
14
|
+
icon: {},
|
|
15
|
+
mediaDecorative: {
|
|
16
|
+
type: Boolean,
|
|
17
|
+
default: !0
|
|
18
|
+
},
|
|
19
|
+
size: { default: "md" },
|
|
20
|
+
title: {},
|
|
21
|
+
titleAs: { default: "p" }
|
|
22
|
+
},
|
|
23
|
+
setup(d) {
|
|
24
|
+
let { slots: x, merged: S, iconBind: C, rootBind: w, titleBind: T, mediaBind: E, actionsBind: D, descriptionBind: O } = i(d, {
|
|
25
|
+
size: "md",
|
|
26
|
+
titleAs: "p",
|
|
27
|
+
align: "center",
|
|
28
|
+
mediaDecorative: !0
|
|
29
|
+
}), k = o(() => e(x, "media") || n(S.value.icon));
|
|
30
|
+
return (i, o) => (h(), l("div", m(f(y(w))), [
|
|
31
|
+
k.value ? (h(), l("div", m(p({ key: 0 }, y(E))), [y(e)(y(x), "media") ? g(i.$slots, "media", {}, void 0, void 0, 0) : y(S).icon ? (h(), s(y(r), p({ key: 1 }, y(C), { icon: y(S).icon }), null, 16, ["icon"])) : c("", !0)], 16)) : c("", !0),
|
|
32
|
+
y(t)(y(x), "title", y(S).title) ? (h(), s(_(y(S).titleAs), m(p({ key: 1 }, y(T))), {
|
|
33
|
+
default: b(() => [y(e)(y(x), "title") ? g(i.$slots, "title", {}, void 0, void 0, 0) : y(n)(y(S).title) ? (h(), l(a, { key: 1 }, [u(v(y(S).title), 1)], 64)) : c("", !0)]),
|
|
34
|
+
_: 3
|
|
35
|
+
}, 16)) : c("", !0),
|
|
36
|
+
y(t)(y(x), "description", y(S).description) ? (h(), l("div", m(p({ key: 2 }, y(O))), [y(e)(y(x), "description") ? g(i.$slots, "description", {}, void 0, void 0, 0) : y(n)(y(S).description) ? (h(), l(a, { key: 1 }, [u(v(y(S).description), 1)], 64)) : c("", !0)], 16)) : c("", !0),
|
|
37
|
+
y(e)(y(x), "action") ? (h(), l("div", m(p({ key: 3 }, y(D))), [g(i.$slots, "action")], 16)) : c("", !0)
|
|
38
|
+
], 16));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
//#endregion
|
|
42
|
+
export { x as default };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IconSize } from '@bridge-ui/core/Tokens';
|
|
2
|
+
import { LibDefaultsShape, MergeLibDefaults } from '@bridge-ui/core/Utils';
|
|
3
|
+
import { EmptyStateOwnProps, EmptyStateProps } from '../emptyState.types';
|
|
4
|
+
type EmptyStateLibDefaults = LibDefaultsShape<EmptyStateOwnProps, "size" | "align" | "titleAs" | "mediaDecorative">;
|
|
5
|
+
type EmptyStateMerged = MergeLibDefaults<EmptyStateOwnProps, EmptyStateLibDefaults>;
|
|
6
|
+
export declare function useEmptyState(props: EmptyStateOwnProps, libDefaults: EmptyStateLibDefaults): {
|
|
7
|
+
slots: Readonly<{
|
|
8
|
+
[name: string]: import('vue').Slot<any> | undefined;
|
|
9
|
+
}>;
|
|
10
|
+
merged: import('vue').ComputedRef<EmptyStateMerged>;
|
|
11
|
+
iconBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
|
|
12
|
+
size: keyof IconSize;
|
|
13
|
+
class: string;
|
|
14
|
+
}, "class", Partial<Omit<import('../../Icon').IconProps, "icon">> | undefined, {}>>;
|
|
15
|
+
rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Omit<EmptyStateProps, "icon" | "size" | "classes" | "customProps" | "title" | "description" | "align" | "mediaDecorative" | "titleAs">>>;
|
|
16
|
+
titleBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
|
|
17
|
+
mediaBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
|
|
18
|
+
"aria-hidden": boolean | undefined;
|
|
19
|
+
class: string;
|
|
20
|
+
}, "class", import('vue').HTMLAttributes | undefined, {}>>;
|
|
21
|
+
actionsBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
|
|
22
|
+
descriptionBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { mergePartBind as e, useBridgeUIComponent as t, useBridgeUIMergedRegistryClasses as n } from "../../../Utils/index.js";
|
|
2
|
+
import { computed as r, useAttrs as i, useSlots as a } from "vue";
|
|
3
|
+
import { get as o } from "es-toolkit/compat";
|
|
4
|
+
import { emptyStateAlignProps as s, emptyStateSizeProps as c } from "@bridge-ui/core/Tokens";
|
|
5
|
+
import { cn as l, mergeBridgeUILayeredClasses as u, splitComponentProps as d } from "@bridge-ui/core/Utils";
|
|
6
|
+
//#region src/Components/EmptyState/composables/useEmptyState.ts
|
|
7
|
+
var f = [
|
|
8
|
+
"icon",
|
|
9
|
+
"size",
|
|
10
|
+
"align",
|
|
11
|
+
"title",
|
|
12
|
+
"classes",
|
|
13
|
+
"titleAs",
|
|
14
|
+
"customProps",
|
|
15
|
+
"description",
|
|
16
|
+
"mediaDecorative"
|
|
17
|
+
];
|
|
18
|
+
function p(p, m) {
|
|
19
|
+
let h = i(), g = a(), _ = r(() => d({
|
|
20
|
+
props: {
|
|
21
|
+
...h,
|
|
22
|
+
...p
|
|
23
|
+
},
|
|
24
|
+
bridgeKeys: f
|
|
25
|
+
})), { merged: v, entry: y } = t({
|
|
26
|
+
libDefaults: m,
|
|
27
|
+
componentName: "EmptyState",
|
|
28
|
+
props: () => _.value.componentProps
|
|
29
|
+
}), b = r(() => v.value.customProps), x = n({
|
|
30
|
+
entry: y,
|
|
31
|
+
props: () => _.value.componentProps
|
|
32
|
+
}), S = r(() => {
|
|
33
|
+
let e = u(c, y.value?.tokens?.size);
|
|
34
|
+
return o(e, v.value.size);
|
|
35
|
+
}), C = r(() => {
|
|
36
|
+
let e = u(s, y.value?.tokens?.align);
|
|
37
|
+
return o(e, v.value.align);
|
|
38
|
+
}), w = r(() => e(b.value?.actions, {}, l({
|
|
39
|
+
[o(S.value, "actions") ?? ""]: !0,
|
|
40
|
+
[o(x.value, "actions") ?? ""]: !0
|
|
41
|
+
}))), T = r(() => e(b.value?.description, {}, l({
|
|
42
|
+
[o(S.value, "description") ?? ""]: !0,
|
|
43
|
+
[o(x.value, "description") ?? ""]: !0
|
|
44
|
+
}))), E = r(() => e(b.value?.icon, {}, {
|
|
45
|
+
size: o(S.value, "icon") ?? "md",
|
|
46
|
+
class: l({
|
|
47
|
+
"shrink-0": !0,
|
|
48
|
+
[o(x.value, "icon") ?? ""]: !0
|
|
49
|
+
})
|
|
50
|
+
})), D = r(() => e(b.value?.media, {}, {
|
|
51
|
+
"aria-hidden": v.value.mediaDecorative ? !0 : void 0,
|
|
52
|
+
class: l({
|
|
53
|
+
[o(S.value, "media") ?? ""]: !0,
|
|
54
|
+
[o(x.value, "media") ?? ""]: !0
|
|
55
|
+
})
|
|
56
|
+
}));
|
|
57
|
+
return {
|
|
58
|
+
slots: g,
|
|
59
|
+
merged: v,
|
|
60
|
+
iconBind: E,
|
|
61
|
+
rootBind: r(() => e(b.value?.root, _.value.inheritedAttrs, l({
|
|
62
|
+
[o(S.value, "root") ?? ""]: !0,
|
|
63
|
+
[C.value ?? ""]: !0,
|
|
64
|
+
[o(x.value, "root") ?? ""]: !0
|
|
65
|
+
}))),
|
|
66
|
+
titleBind: r(() => e(b.value?.title, {}, l({
|
|
67
|
+
[o(S.value, "title") ?? ""]: !0,
|
|
68
|
+
[o(x.value, "title") ?? ""]: !0
|
|
69
|
+
}))),
|
|
70
|
+
mediaBind: D,
|
|
71
|
+
actionsBind: w,
|
|
72
|
+
descriptionBind: T
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
export { p as useEmptyState };
|