@bridge-ui/vue 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +96 -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 +35 -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 +10 -0
- package/dist/Components/Sidebar/composables/useSidebarTrigger.js +25 -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 +1 -0
- package/docs/examples/icon-heroicons.ts +2 -0
- package/docs/examples/icon-lucide.ts +2 -0
- package/docs/examples/icon-phosphor.ts +2 -0
- package/docs/examples/icon-tabler.ts +2 -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,53 @@ 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
|
+
size: C(R).size,
|
|
268
|
+
title: C(F)("No data")
|
|
269
|
+
}, null, 8, ["size", "title"])])], 16)]),
|
|
266
270
|
_: 3
|
|
267
271
|
}, 8, ["colspan"])]),
|
|
268
272
|
_: 3
|
|
269
|
-
})) : u("", !0),
|
|
270
|
-
default:
|
|
273
|
+
})) : 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), {
|
|
274
|
+
default: T(() => [(b(!0), d(s, null, x(t.cells, (e) => (b(), l(C(a), _({
|
|
271
275
|
key: e.id,
|
|
272
|
-
align:
|
|
273
|
-
}, { ref_for: !0 },
|
|
274
|
-
default:
|
|
276
|
+
align: C(W)(e)
|
|
277
|
+
}, { ref_for: !0 }, C(H)(e)), {
|
|
278
|
+
default: T(() => [e.isSelection ? (b(), l(i, {
|
|
275
279
|
key: 0,
|
|
276
280
|
kind: "row",
|
|
277
281
|
value: t.id,
|
|
278
282
|
size: Z.value,
|
|
279
|
-
name:
|
|
283
|
+
name: C(rt),
|
|
280
284
|
checked: t.selected,
|
|
281
|
-
multiple:
|
|
282
|
-
"radio-props":
|
|
283
|
-
"checkbox-props":
|
|
284
|
-
onChange: (e) =>
|
|
285
|
+
multiple: C(Y),
|
|
286
|
+
"radio-props": C(R).customProps?.radio,
|
|
287
|
+
"checkbox-props": C(R).customProps?.checkbox,
|
|
288
|
+
onChange: (e) => C(Re)(t.id, e)
|
|
285
289
|
}, null, 8, [
|
|
286
290
|
"value",
|
|
287
291
|
"size",
|
|
@@ -296,33 +300,33 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
296
300
|
type: "button",
|
|
297
301
|
"aria-label": "Expand row",
|
|
298
302
|
"aria-expanded": t.expanded,
|
|
299
|
-
onClick: (e) =>
|
|
303
|
+
onClick: (e) => C(Ye)(t.id, !t.expanded),
|
|
300
304
|
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(
|
|
305
|
+
}, [f("span", { class: v([{ "rotate-90": t.expanded }, "inline-flex transition-transform duration-200 motion-reduce:transition-none"]) }, [p(C(n), {
|
|
302
306
|
size: "sm",
|
|
303
307
|
icon: "chevronRight"
|
|
304
|
-
})], 2)], 8, O)) : (b(), l(
|
|
308
|
+
})], 2)], 8, O)) : (b(), l(ie, {
|
|
305
309
|
key: 2,
|
|
306
310
|
tooltip: e.tooltip,
|
|
307
311
|
ellipsis: e.ellipsis
|
|
308
312
|
}, {
|
|
309
|
-
default:
|
|
313
|
+
default: T(() => [p($, { node: et(t, e) }, null, 8, ["node"])]),
|
|
310
314
|
_: 2
|
|
311
315
|
}, 1032, ["tooltip", "ellipsis"]))]),
|
|
312
316
|
_: 2
|
|
313
317
|
}, 1040, ["align"]))), 128))]),
|
|
314
318
|
_: 2
|
|
315
|
-
}, 1040),
|
|
316
|
-
default:
|
|
317
|
-
colspan:
|
|
318
|
-
classes: { root:
|
|
319
|
+
}, 1040), C(We) ? (b(), l(C(o), { key: 0 }, {
|
|
320
|
+
default: T(() => [p(C(a), {
|
|
321
|
+
colspan: C(U),
|
|
322
|
+
classes: { root: C(E)({
|
|
319
323
|
"p-0": !0,
|
|
320
324
|
"border-0": !t.expanded
|
|
321
325
|
}) }
|
|
322
326
|
}, {
|
|
323
|
-
default:
|
|
327
|
+
default: T(() => [f("div", {
|
|
324
328
|
"aria-hidden": !t.expanded,
|
|
325
|
-
class: v(
|
|
329
|
+
class: v(C(E)({
|
|
326
330
|
"grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none": !0,
|
|
327
331
|
"grid-rows-[1fr]": t.expanded,
|
|
328
332
|
"grid-rows-[0fr]": !t.expanded
|
|
@@ -334,13 +338,13 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
334
338
|
}, 1024)) : u("", !0)], 64))), 128))]),
|
|
335
339
|
_: 3
|
|
336
340
|
}, 16),
|
|
337
|
-
|
|
338
|
-
default:
|
|
339
|
-
default:
|
|
341
|
+
C(G) ? (b(), l(C(de), { key: 0 }, {
|
|
342
|
+
default: T(() => [p(C(o), y(h(C(R).customProps?.row)), {
|
|
343
|
+
default: T(() => [(b(!0), d(s, null, x(C(G), (e) => (b(), l(C(a), _({
|
|
340
344
|
key: e.id,
|
|
341
|
-
align:
|
|
342
|
-
}, { ref_for: !0 },
|
|
343
|
-
default:
|
|
345
|
+
align: C(W)(e)
|
|
346
|
+
}, { ref_for: !0 }, C(H)(e)), {
|
|
347
|
+
default: T(() => [p($, { node: e.content }, null, 8, ["node"])]),
|
|
344
348
|
_: 2
|
|
345
349
|
}, 1040, ["align"]))), 128))]),
|
|
346
350
|
_: 1
|
|
@@ -349,7 +353,7 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
349
353
|
})) : u("", !0)
|
|
350
354
|
]),
|
|
351
355
|
_: 3
|
|
352
|
-
}, 16),
|
|
356
|
+
}, 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
357
|
role: "status",
|
|
354
358
|
"aria-label": "Loading",
|
|
355
359
|
class: "relative inline-block size-5 animate-spin motion-reduce:animate-none"
|
|
@@ -359,32 +363,32 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
|
|
|
359
363
|
f("span", { class: "absolute inset-e-0 bottom-0 size-2 rounded-full bg-primary-500 dark:bg-primary-400" }),
|
|
360
364
|
f("span", { class: "absolute inset-s-0 bottom-0 size-2 rounded-full bg-primary-500 opacity-70 dark:bg-primary-400" })
|
|
361
365
|
], -1)], void 0, 0)], 16, M)) : u("", !0)]),
|
|
362
|
-
|
|
363
|
-
|
|
366
|
+
C(t)(C(P), "footer") ? (b(), d("div", y(_({ key: 0 }, C(Pe))), [S(e.$slots, "footer")], 16)) : u("", !0),
|
|
367
|
+
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
368
|
overlay: "menu",
|
|
365
369
|
clearable: !1,
|
|
366
370
|
"hide-error-message": "",
|
|
367
371
|
"aria-label": "Per page",
|
|
368
372
|
options: tt.value,
|
|
369
373
|
"custom-props": nt.value,
|
|
370
|
-
"model-value":
|
|
371
|
-
"onUpdate:modelValue": r[0] ||= (e) =>
|
|
374
|
+
"model-value": C(q).perPage,
|
|
375
|
+
"onUpdate:modelValue": r[0] ||= (e) => C(q).onPerPageChange(Number(e)),
|
|
372
376
|
classes: {
|
|
373
|
-
...
|
|
374
|
-
root:
|
|
377
|
+
...C(R).customProps?.perPage?.classes,
|
|
378
|
+
root: C(E)("w-20", C(R).customProps?.perPage?.classes?.root)
|
|
375
379
|
}
|
|
376
380
|
}), null, 16, [
|
|
377
381
|
"options",
|
|
378
382
|
"custom-props",
|
|
379
383
|
"model-value",
|
|
380
384
|
"classes"
|
|
381
|
-
])])], void 0, 0) : u("", !0), S(e.$slots, "pagination", y(h(
|
|
385
|
+
])])], void 0, 0) : u("", !0), S(e.$slots, "pagination", y(h(C(X))), () => [C(J) === void 0 ? u("", !0) : (b(), l(C(ne), _({
|
|
382
386
|
key: 0,
|
|
383
387
|
modelValue: Q.value,
|
|
384
388
|
"onUpdate:modelValue": r[1] ||= (e) => Q.value = e,
|
|
385
|
-
count:
|
|
386
|
-
variant:
|
|
387
|
-
},
|
|
389
|
+
count: C(J),
|
|
390
|
+
variant: C(X).variant
|
|
391
|
+
}, C(R).customProps?.pagination), null, 16, [
|
|
388
392
|
"modelValue",
|
|
389
393
|
"count",
|
|
390
394
|
"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 };
|