@nubisco/ui 5.25.2 → 5.26.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.
Files changed (89) hide show
  1. package/dist/{ActionGroup-lEopoloN.js → ActionGroup-BepLbLUB.js} +1 -1
  2. package/dist/{ActionGroup-CUN48Qea.cjs → ActionGroup-CPJcdC_x.cjs} +1 -1
  3. package/dist/{AiProvider-B4salihw.js → AiProvider-CkzXTd_m.js} +1 -1
  4. package/dist/{AiProvider-pHIvM5zN.cjs → AiProvider-ueSRHZ4d.cjs} +1 -1
  5. package/dist/{BackToTop-Dm7Aq_81.cjs → BackToTop-Bep47dq4.cjs} +1 -1
  6. package/dist/{BackToTop-C4Aol9qJ.js → BackToTop-DwInsaIf.js} +1 -1
  7. package/dist/{BlueprintControls-COeG8N6G.js → BlueprintControls-CLW9PC_k.js} +1 -1
  8. package/dist/{BlueprintControls-BfTyqOwC.cjs → BlueprintControls-xe0sgQXW.cjs} +1 -1
  9. package/dist/{Board-R38Zb5t2.js → Board-CTjk-pTy.js} +1 -1
  10. package/dist/{Board-DmOzimbT.cjs → Board-CoxZg27T.cjs} +1 -1
  11. package/dist/{BriefingDestination-CA8Dv-tJ.js → BriefingDestination-D_IHVo71.js} +1 -1
  12. package/dist/{BriefingDestination-DIXsBoE2.cjs → BriefingDestination-Md4A2sPI.cjs} +1 -1
  13. package/dist/{Button-C0UUTgEB.cjs → Button-CbQyG-jg.cjs} +1 -1
  14. package/dist/{Button-IcCXOoCT.js → Button-Cq9dEeHz.js} +1 -1
  15. package/dist/{Confirm-YhMEfWX5.cjs → Confirm-Bdc104-K.cjs} +1 -1
  16. package/dist/{Confirm-DQqArhXl.js → Confirm-CpKo6Tav.js} +2 -2
  17. package/dist/{CopyButton-CqrXMntq.js → CopyButton-DRpVCGXL.js} +1 -1
  18. package/dist/{CopyButton-BfjJRwj9.cjs → CopyButton-rEPzSx4v.cjs} +1 -1
  19. package/dist/DataTable-D0JW9sxz.cjs +1 -0
  20. package/dist/DataTable-DwLWLUUt.js +500 -0
  21. package/dist/FileUploader-DAbs5fWp.cjs +1 -0
  22. package/dist/FileUploader-DBGNk6Qg.js +187 -0
  23. package/dist/{Modal-CtCD-xEb.cjs → Modal-Bcl003Rp.cjs} +1 -1
  24. package/dist/{Modal-CfcTmfeK.js → Modal-CWeCxkXh.js} +1 -1
  25. package/dist/{NotificationCenter-CGhxyax1.cjs → NotificationCenter-BceqDL0a.cjs} +1 -1
  26. package/dist/{NotificationCenter-xL9_6BMt.js → NotificationCenter-DNA6BL18.js} +1 -1
  27. package/dist/{Pagination-CSISbmpl.js → Pagination-DJ8ZuHST.js} +1 -1
  28. package/dist/{Pagination-Ci1te4UW.cjs → Pagination-d-FYh-zd.cjs} +1 -1
  29. package/dist/{TableOfContents-BqF5y-1t.js → TableOfContents-1OY_mlI4.js} +1 -1
  30. package/dist/{TableOfContents-C6xx7P4d.cjs → TableOfContents-BZCrLDe1.cjs} +1 -1
  31. package/dist/{Video-CY0UEDLL.js → Video-BbraQauu.js} +1 -1
  32. package/dist/{Video-Bgzvf-C9.cjs → Video-DDytsRcF.cjs} +1 -1
  33. package/dist/{Walkthrough-KmxZqXxV.js → Walkthrough-BYCQMYqG.js} +1 -1
  34. package/dist/{Walkthrough-oU-NaG_A.cjs → Walkthrough-ZuHZx69C.cjs} +1 -1
  35. package/dist/all.cjs +1 -1
  36. package/dist/all.mjs +17 -17
  37. package/dist/components/ActionGroup.cjs +1 -1
  38. package/dist/components/ActionGroup.mjs +1 -1
  39. package/dist/components/AiProvider.cjs +1 -1
  40. package/dist/components/AiProvider.mjs +1 -1
  41. package/dist/components/BackToTop.cjs +1 -1
  42. package/dist/components/BackToTop.mjs +1 -1
  43. package/dist/components/BlueprintControls.cjs +1 -1
  44. package/dist/components/BlueprintControls.mjs +1 -1
  45. package/dist/components/Board.cjs +1 -1
  46. package/dist/components/Board.mjs +1 -1
  47. package/dist/components/BriefingDestination.cjs +1 -1
  48. package/dist/components/BriefingDestination.mjs +1 -1
  49. package/dist/components/Button.cjs +1 -1
  50. package/dist/components/Button.mjs +1 -1
  51. package/dist/components/Button.vue.d.ts.map +1 -1
  52. package/dist/components/Confirm.cjs +1 -1
  53. package/dist/components/Confirm.mjs +1 -1
  54. package/dist/components/CopyButton.cjs +1 -1
  55. package/dist/components/CopyButton.mjs +1 -1
  56. package/dist/components/DataTable.cjs +1 -1
  57. package/dist/components/DataTable.d.ts +17 -1
  58. package/dist/components/DataTable.mjs +1 -1
  59. package/dist/components/DataTable.vue.d.ts +7 -1
  60. package/dist/components/DataTable.vue.d.ts.map +1 -1
  61. package/dist/components/FileUploader.cjs +1 -1
  62. package/dist/components/FileUploader.mjs +1 -1
  63. package/dist/components/FileUploader.vue.d.ts +1 -0
  64. package/dist/components/FileUploader.vue.d.ts.map +1 -1
  65. package/dist/components/Modal.cjs +1 -1
  66. package/dist/components/Modal.mjs +1 -1
  67. package/dist/components/NotificationCenter.cjs +1 -1
  68. package/dist/components/NotificationCenter.mjs +1 -1
  69. package/dist/components/Pagination.cjs +1 -1
  70. package/dist/components/Pagination.mjs +1 -1
  71. package/dist/components/TableOfContents.cjs +1 -1
  72. package/dist/components/TableOfContents.mjs +1 -1
  73. package/dist/components/Video.cjs +1 -1
  74. package/dist/components/Video.mjs +1 -1
  75. package/dist/components/Walkthrough.cjs +1 -1
  76. package/dist/components/Walkthrough.mjs +1 -1
  77. package/dist/composables/useConfirm.composable.cjs +1 -1
  78. package/dist/composables/useConfirm.composable.mjs +2 -2
  79. package/dist/index.cjs +1 -1
  80. package/dist/index.mjs +17 -17
  81. package/dist/styles/Button.css +1 -1
  82. package/dist/styles/DataTable.css +1 -1
  83. package/dist/styles/FileUploader.css +1 -1
  84. package/dist/ui.css +3 -3
  85. package/package.json +1 -1
  86. package/dist/DataTable-COfiHgll.js +0 -412
  87. package/dist/DataTable-XSEybeeP.cjs +0 -1
  88. package/dist/FileUploader-BjYXOXxj.cjs +0 -1
  89. package/dist/FileUploader-DwKKUn71.js +0 -162
@@ -1,412 +0,0 @@
1
- import { t as e } from "./_plugin-vue_export-helper-O4QQSku4.js";
2
- import { r as t } from "./Size.d-Bah6vMl3.js";
3
- import { t as n } from "./Icon-rREAqsu0.js";
4
- import { useSurfaceLayer as r } from "./composables/useSurfaceLayer.composable.mjs";
5
- import { usePhoneLayout as i } from "./composables/usePhoneLayout.composable.mjs";
6
- import { t as a } from "./Button-IcCXOoCT.js";
7
- import { t as o } from "./Grid-XtnH-vr_.js";
8
- import { t as s } from "./Checkbox-B3gBM6xy.js";
9
- import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createTextVNode as m, createVNode as h, defineComponent as g, getCurrentInstance as ee, mergeProps as te, normalizeClass as _, normalizeStyle as ne, onBeforeUnmount as re, openBlock as v, ref as y, renderList as b, renderSlot as x, toDisplayString as S, unref as ie, useId as ae, useSlots as oe, watch as C, withCtx as w, withModifiers as T } from "vue";
10
- import * as se from "@nubisco/ui/icons/arrow-up";
11
- import * as ce from "@nubisco/ui/icons/arrows-down-up";
12
- import * as le from "@nubisco/ui/icons/arrow-down";
13
- //#region src/components/DataTable.vue?vue&type=script&setup=true&lang.ts
14
- var ue = ["inert", "aria-hidden"], de = { key: 0 }, fe = {
15
- key: 0,
16
- class: "nb-data-table__title"
17
- }, pe = {
18
- key: 1,
19
- class: "nb-data-table__description"
20
- }, me = ["inert", "aria-hidden"], he = {
21
- key: 1,
22
- class: "nb-data-table__batch",
23
- role: "region",
24
- "aria-label": "Table batch actions"
25
- }, ge = { class: "nb-data-table__batch-count" }, _e = { class: "nb-data-table__batch-actions" }, ve = { class: "nb-data-table__scroll" }, ye = [
26
- "role",
27
- "aria-label",
28
- "aria-busy"
29
- ], be = {
30
- key: 0,
31
- class: "nb-data-table__col-select"
32
- }, xe = {
33
- key: 1,
34
- class: "nb-data-table__col-actions"
35
- }, Se = ["role"], Ce = ["role"], we = {
36
- key: 0,
37
- scope: "col",
38
- class: "nb-data-table__th nb-data-table__select-cell"
39
- }, Te = ["aria-sort"], Ee = ["onClick"], De = { class: "nb-data-table__th-label" }, Oe = {
40
- key: 1,
41
- class: "nb-data-table__th-label"
42
- }, ke = {
43
- key: 1,
44
- scope: "col",
45
- class: "nb-data-table__th nb-data-table__actions-cell"
46
- }, Ae = ["role"], je = {
47
- key: 0,
48
- class: "nb-data-table__td"
49
- }, Me = {
50
- key: 1,
51
- class: "nb-data-table__td"
52
- }, Ne = {
53
- key: 1,
54
- class: "nb-data-table__state-row"
55
- }, Pe = ["colspan"], Fe = {
56
- key: 2,
57
- class: "nb-data-table__state-row"
58
- }, Ie = ["colspan"], Le = [
59
- "role",
60
- "aria-selected",
61
- "onClick"
62
- ], Re = [
63
- "checked",
64
- "aria-label",
65
- "onChange"
66
- ], ze = ["role", "data-label"], Be = {
67
- key: 1,
68
- class: "nb-data-table__footer"
69
- }, E = /* @__PURE__ */ e(/* @__PURE__ */ g({
70
- __name: "DataTable",
71
- props: {
72
- columns: {},
73
- rows: {},
74
- rowKey: {},
75
- size: { default: t.Medium },
76
- sortState: { default: null },
77
- selectable: { default: "none" },
78
- selected: { default: () => [] },
79
- loading: {
80
- type: Boolean,
81
- default: !1
82
- },
83
- skeletonRows: { default: 5 },
84
- error: { default: void 0 },
85
- emptyMessage: { default: void 0 },
86
- stickyHeader: {
87
- type: Boolean,
88
- default: !0
89
- },
90
- zebra: {
91
- type: Boolean,
92
- default: !1
93
- },
94
- fill: {
95
- type: Boolean,
96
- default: !1
97
- },
98
- title: { default: void 0 },
99
- description: { default: void 0 },
100
- ariaLabel: { default: void 0 },
101
- stackOnPhone: {
102
- type: Boolean,
103
- default: !1
104
- }
105
- },
106
- emits: [
107
- "sort",
108
- "update:selected",
109
- "row-click"
110
- ],
111
- setup(e, { emit: t }) {
112
- let g = e, { layerProps: E } = r(), D = t, O = oe(), Ve = `nb-data-table-select-${ae()}`, He = l(() => g.size), k = l(() => g.columns.filter((e) => !e.hidden)), A = l(() => g.selectable !== "none"), j = l(() => !!O["row-actions"]), Ue = l(() => k.value.length + (A.value ? 1 : 0) + (j.value ? 1 : 0)), { phone: We } = i(), M = l(() => g.stackOnPhone && We.value), Ge = l(() => (k.value.find((e) => e.primary) ?? k.value.find((e) => !e.phoneHidden && !e.phoneMeta))?.key);
113
- function Ke(e) {
114
- return e.phoneHidden ? "nb-data-table__td--phone-hidden" : e.key === Ge.value ? "nb-data-table__td--primary" : e.phoneMeta ? "nb-data-table__td--meta" : "nb-data-table__td--field";
115
- }
116
- let qe = l(() => !g.loading && !g.error && g.rows.length > 0 && (g.selectable === "multiple" || k.value.some((e) => e.sortable && !e.phoneHidden)));
117
- function Je(e) {
118
- if (e.width != null) return { width: typeof e.width == "number" ? `${e.width}px` : e.width };
119
- }
120
- function N(e, t) {
121
- return t[e.key];
122
- }
123
- function Ye(e) {
124
- return e == null ? "" : String(e);
125
- }
126
- let P = (e) => e.column.render?.(e.row, N(e.column, e.row), e.rowIndex) ?? null;
127
- P.props = [
128
- "column",
129
- "row",
130
- "rowIndex"
131
- ];
132
- function F(e) {
133
- let t = g.rowKey;
134
- return typeof t == "function" ? t(e) : e[t];
135
- }
136
- let I = l(() => new Set(g.selected)), Xe = l(() => g.selected), L = l(() => g.selected.length);
137
- function R(e) {
138
- return I.value.has(F(e));
139
- }
140
- let z = l(() => g.rows.map((e) => F(e))), B = l(() => z.value.length > 0 && z.value.every((e) => I.value.has(e))), Ze = l(() => !B.value && z.value.some((e) => I.value.has(e))), V = y(null), H = !1;
141
- function U(e) {
142
- H = e.shiftKey;
143
- }
144
- C(z, () => {
145
- V.value = null;
146
- });
147
- function Qe(e, t) {
148
- let n = F(e), r = new Set(g.selected), i = !r.has(n), a = V.value, o = (e) => {
149
- i ? r.add(e) : r.delete(e);
150
- };
151
- if (H && a !== null && a !== t) {
152
- let e = Math.min(a, t), n = Math.max(a, t);
153
- for (let t = e; t <= n; t++) {
154
- let e = g.rows[t];
155
- e && o(F(e));
156
- }
157
- } else o(n), V.value = t;
158
- H = !1, D("update:selected", [...r]);
159
- }
160
- function $e(e) {
161
- D("update:selected", [F(e)]);
162
- }
163
- function et() {
164
- let e = new Set(g.selected);
165
- B.value ? z.value.forEach((t) => e.delete(t)) : z.value.forEach((t) => e.add(t)), D("update:selected", [...e]);
166
- }
167
- function W() {
168
- D("update:selected", []);
169
- }
170
- let G = l(() => g.selectable !== "none" && !!O["batch-actions"]), K = l(() => G.value && L.value > 0), tt = l(() => !!g.title || !!g.description || !!O.toolbar || !!O.search || !!O["toolbar-actions"]), nt = l(() => tt.value || G.value), q = y(null), J = y(null), Y = y(null), X = y(!1);
171
- function Z() {
172
- let e = J.value, t = Y.value;
173
- X.value = !!e && !!t && t.offsetTop >= e.offsetTop + e.offsetHeight - 1;
174
- }
175
- let Q = null;
176
- C([
177
- q,
178
- J,
179
- Y
180
- ], (e) => {
181
- if (Q?.disconnect(), Z(), !(typeof ResizeObserver > "u")) {
182
- Q ??= new ResizeObserver(Z);
183
- for (let t of e) t && Q.observe(t);
184
- }
185
- }, { flush: "post" }), re(() => {
186
- Q?.disconnect(), Q = null;
187
- });
188
- function $(e) {
189
- return !!g.sortState && g.sortState.key === e.key && g.sortState.direction !== "none";
190
- }
191
- function rt(e) {
192
- return $(e) ? g.sortState.direction === "asc" ? "ascending" : "descending" : "none";
193
- }
194
- function it(e) {
195
- return $(e) ? g.sortState.direction === "asc" ? se : le : ce;
196
- }
197
- function at(e) {
198
- return e === "asc" ? "desc" : e === "desc" ? "none" : "asc";
199
- }
200
- function ot(e) {
201
- let t = g.sortState && g.sortState.key === e.key ? g.sortState.direction : "none";
202
- D("sort", {
203
- key: e.key,
204
- direction: at(t)
205
- });
206
- }
207
- let st = ee(), ct = l(() => !!st?.vnode.props?.onRowClick);
208
- function lt(e, t) {
209
- D("row-click", e, t);
210
- }
211
- return (t, r) => (v(), f("div", te({ class: [
212
- "nb-data-table",
213
- `nb-data-table--${e.size}`,
214
- { "nb-data-table--zebra": e.zebra },
215
- { "nb-data-table--sticky": e.stickyHeader },
216
- { "nb-data-table--fill": e.fill },
217
- { "nb-data-table--stacked": M.value },
218
- { "nb-data-table--stacked-headless": M.value && !qe.value }
219
- ] }, ie(E)), [
220
- nt.value ? (v(), f("div", {
221
- key: 0,
222
- ref_key: "toolbarRef",
223
- ref: q,
224
- class: _(["nb-data-table__toolbar", { "nb-data-table__toolbar--wrapped": X.value }])
225
- }, [
226
- p("div", {
227
- ref_key: "toolbarHeadingRef",
228
- ref: J,
229
- class: "nb-data-table__toolbar-heading",
230
- inert: K.value || void 0,
231
- "aria-hidden": K.value || void 0
232
- }, [x(t.$slots, "toolbar", { selectedCount: L.value }, () => [e.title || e.description ? (v(), f("div", de, [e.title ? (v(), f("h2", fe, S(e.title), 1)) : d("", !0), e.description ? (v(), f("p", pe, S(e.description), 1)) : d("", !0)])) : d("", !0)], !0)], 8, ue),
233
- t.$slots.search || t.$slots["toolbar-actions"] ? (v(), f("div", {
234
- key: 0,
235
- ref_key: "toolbarToolsRef",
236
- ref: Y,
237
- class: _(["nb-data-table__toolbar-tools", { "nb-data-table__toolbar-tools--grow-search": X.value && !!t.$slots.search }]),
238
- inert: K.value || void 0,
239
- "aria-hidden": K.value || void 0
240
- }, [x(t.$slots, "search", {}, void 0, !0), x(t.$slots, "toolbar-actions", {}, void 0, !0)], 10, me)) : d("", !0),
241
- K.value ? (v(), f("div", he, [
242
- p("span", ge, S(L.value) + " selected ", 1),
243
- p("div", _e, [x(t.$slots, "batch-actions", {
244
- selectedKeys: Xe.value,
245
- clear: W
246
- }, void 0, !0)]),
247
- h(a, {
248
- class: "nb-data-table__batch-cancel",
249
- variant: "ghost",
250
- size: He.value,
251
- onClick: W
252
- }, {
253
- default: w(() => [...r[2] ||= [m(" Cancel ", -1)]]),
254
- _: 1
255
- }, 8, ["size"])
256
- ])) : d("", !0)
257
- ], 2)) : d("", !0),
258
- p("div", ve, [p("table", {
259
- class: "nb-data-table__table",
260
- role: M.value ? "table" : void 0,
261
- "aria-label": e.ariaLabel || e.title || void 0,
262
- "aria-busy": e.loading || void 0
263
- }, [
264
- p("colgroup", null, [
265
- A.value ? (v(), f("col", be)) : d("", !0),
266
- (v(!0), f(c, null, b(k.value, (e) => (v(), f("col", {
267
- key: `col-${e.key}`,
268
- style: ne(Je(e))
269
- }, null, 4))), 128)),
270
- j.value ? (v(), f("col", xe)) : d("", !0)
271
- ]),
272
- p("thead", {
273
- class: "nb-data-table__head",
274
- role: M.value ? "rowgroup" : void 0
275
- }, [p("tr", { role: M.value ? "row" : void 0 }, [
276
- A.value ? (v(), f("th", we, [e.selectable === "multiple" ? (v(), u(s, {
277
- key: 0,
278
- "model-value": B.value,
279
- indeterminate: Ze.value,
280
- "aria-label": "Select all rows",
281
- "onUpdate:modelValue": et
282
- }, null, 8, ["model-value", "indeterminate"])) : d("", !0)])) : d("", !0),
283
- (v(!0), f(c, null, b(k.value, (e) => (v(), f("th", {
284
- key: `th-${e.key}`,
285
- scope: "col",
286
- class: _([
287
- "nb-data-table__th",
288
- `nb-data-table__th--${e.align || "left"}`,
289
- { "nb-data-table__th--sortable": e.sortable },
290
- { "nb-data-table__th--sorted": $(e) },
291
- M.value && e.phoneHidden && "nb-data-table__th--phone-hidden"
292
- ]),
293
- "aria-sort": e.sortable ? rt(e) : void 0
294
- }, [e.sortable ? (v(), f("button", {
295
- key: 0,
296
- type: "button",
297
- class: "nb-data-table__sort",
298
- onClick: (t) => ot(e)
299
- }, [p("span", De, [x(t.$slots, `header-${e.key}`, { column: e }, () => [m(S(e.header), 1)], !0)]), h(n, {
300
- name: it(e),
301
- class: "nb-data-table__sort-icon",
302
- "aria-hidden": "true"
303
- }, null, 8, ["name"])], 8, Ee)) : (v(), f("span", Oe, [x(t.$slots, `header-${e.key}`, { column: e }, () => [m(S(e.header), 1)], !0)]))], 10, Te))), 128)),
304
- j.value ? (v(), f("th", ke, [...r[3] ||= [p("span", { class: "nb-sr-only" }, "Row actions", -1)]])) : d("", !0)
305
- ], 8, Ce)], 8, Se),
306
- p("tbody", {
307
- class: "nb-data-table__body",
308
- role: M.value ? "rowgroup" : void 0
309
- }, [e.loading ? (v(!0), f(c, { key: 0 }, b(e.skeletonRows, (e) => (v(), f("tr", {
310
- key: `skeleton-${e}`,
311
- class: "nb-data-table__row nb-data-table__row--skeleton"
312
- }, [
313
- A.value ? (v(), f("td", je, [...r[4] ||= [p("span", { class: "nb-data-table__skeleton nb-data-table__skeleton--box" }, null, -1)]])) : d("", !0),
314
- (v(!0), f(c, null, b(k.value, (t) => (v(), f("td", {
315
- key: `sk-${e}-${t.key}`,
316
- class: "nb-data-table__td"
317
- }, [...r[5] ||= [p("span", { class: "nb-data-table__skeleton" }, null, -1)]]))), 128)),
318
- j.value ? (v(), f("td", Me, [...r[6] ||= [p("span", { class: "nb-data-table__skeleton nb-data-table__skeleton--box" }, null, -1)]])) : d("", !0)
319
- ]))), 128)) : e.error ? (v(), f("tr", Ne, [p("td", {
320
- colspan: Ue.value,
321
- class: "nb-data-table__state nb-data-table__state--error"
322
- }, [x(t.$slots, "error", { error: e.error }, () => [h(o, {
323
- is: "span",
324
- align: "center",
325
- justify: "center",
326
- gap: "xs",
327
- class: "nb-data-table__state-inner"
328
- }, {
329
- default: w(() => [h(n, {
330
- name: "warning-circle-fill",
331
- "aria-hidden": "true"
332
- }), p("span", null, S(e.error), 1)]),
333
- _: 1
334
- })], !0)], 8, Pe)])) : e.rows.length ? (v(!0), f(c, { key: 3 }, b(e.rows, (n, i) => (v(), f("tr", {
335
- key: F(n),
336
- class: _([
337
- "nb-data-table__row",
338
- { "nb-data-table__row--selected": R(n) },
339
- { "nb-data-table__row--clickable": ct.value }
340
- ]),
341
- role: M.value ? "row" : void 0,
342
- "aria-selected": e.selectable === "none" ? void 0 : R(n),
343
- onClick: (e) => lt(n, i)
344
- }, [
345
- A.value ? (v(), f("td", {
346
- key: 0,
347
- class: "nb-data-table__td nb-data-table__select-cell",
348
- onClick: r[0] ||= T(() => {}, ["stop"]),
349
- onMousedown: U,
350
- onKeydown: U
351
- }, [e.selectable === "multiple" ? (v(), u(s, {
352
- key: 0,
353
- "model-value": R(n),
354
- "aria-label": `Select row ${i + 1}`,
355
- "onUpdate:modelValue": (e) => Qe(n, i)
356
- }, null, 8, [
357
- "model-value",
358
- "aria-label",
359
- "onUpdate:modelValue"
360
- ])) : (v(), f("input", {
361
- key: 1,
362
- type: "radio",
363
- class: "nb-data-table__radio",
364
- name: Ve,
365
- checked: R(n),
366
- "aria-label": `Select row ${i + 1}`,
367
- onChange: (e) => $e(n)
368
- }, null, 40, Re))], 32)) : d("", !0),
369
- (v(!0), f(c, null, b(k.value, (r) => (v(), f("td", {
370
- key: `td-${F(n)}-${r.key}`,
371
- class: _([
372
- "nb-data-table__td",
373
- `nb-data-table__td--${r.align || "left"}`,
374
- r.cellClass,
375
- M.value && Ke(r)
376
- ]),
377
- role: M.value ? "cell" : void 0,
378
- "data-label": e.stackOnPhone ? r.header : void 0
379
- }, [x(t.$slots, `cell-${r.key}`, {
380
- row: n,
381
- value: N(r, n),
382
- column: r,
383
- rowIndex: i
384
- }, () => [r.render ? (v(), u(P, {
385
- key: 0,
386
- column: r,
387
- row: n,
388
- "row-index": i
389
- }, null, 8, [
390
- "column",
391
- "row",
392
- "row-index"
393
- ])) : (v(), f(c, { key: 1 }, [m(S(Ye(N(r, n))), 1)], 64))], !0)], 10, ze))), 128)),
394
- j.value ? (v(), f("td", {
395
- key: 1,
396
- class: "nb-data-table__td nb-data-table__actions-cell",
397
- onClick: r[1] ||= T(() => {}, ["stop"])
398
- }, [x(t.$slots, "row-actions", {
399
- row: n,
400
- rowIndex: i
401
- }, void 0, !0)])) : d("", !0)
402
- ], 10, Le))), 128)) : (v(), f("tr", Fe, [p("td", {
403
- colspan: Ue.value,
404
- class: "nb-data-table__state nb-data-table__state--empty"
405
- }, [x(t.$slots, "empty", {}, () => [p("span", null, S(e.emptyMessage || "No data to display"), 1)], !0)], 8, Ie)]))], 8, Ae)
406
- ], 8, ye)]),
407
- t.$slots.footer ? (v(), f("div", Be, [x(t.$slots, "footer", {}, void 0, !0)])) : d("", !0)
408
- ], 16));
409
- }
410
- }), [["__scopeId", "data-v-0d151db9"]]);
411
- //#endregion
412
- export { E as t };
@@ -1 +0,0 @@
1
- const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),n=require(`./Size.d-GBIblj2D.cjs`),r=require(`./Icon-C8R_r_In.cjs`),i=require(`./composables/useSurfaceLayer.composable.cjs`),a=require(`./composables/usePhoneLayout.composable.cjs`),o=require(`./Button-C0UUTgEB.cjs`),s=require(`./Grid-D8c0StGs.cjs`),c=require(`./Checkbox-lWejJzIQ.cjs`);let l=require(`vue`),u=require(`@nubisco/ui/icons/arrow-up`);u=e.n(u);let d=require(`@nubisco/ui/icons/arrows-down-up`);d=e.n(d);let f=require(`@nubisco/ui/icons/arrow-down`);f=e.n(f);var p=[`inert`,`aria-hidden`],m={key:0},h={key:0,class:`nb-data-table__title`},g={key:1,class:`nb-data-table__description`},ee=[`inert`,`aria-hidden`],te={key:1,class:`nb-data-table__batch`,role:`region`,"aria-label":`Table batch actions`},ne={class:`nb-data-table__batch-count`},re={class:`nb-data-table__batch-actions`},ie={class:`nb-data-table__scroll`},ae=[`role`,`aria-label`,`aria-busy`],oe={key:0,class:`nb-data-table__col-select`},se={key:1,class:`nb-data-table__col-actions`},ce=[`role`],le=[`role`],ue={key:0,scope:`col`,class:`nb-data-table__th nb-data-table__select-cell`},_=[`aria-sort`],de=[`onClick`],fe={class:`nb-data-table__th-label`},pe={key:1,class:`nb-data-table__th-label`},me={key:1,scope:`col`,class:`nb-data-table__th nb-data-table__actions-cell`},he=[`role`],ge={key:0,class:`nb-data-table__td`},v={key:1,class:`nb-data-table__td`},y={key:1,class:`nb-data-table__state-row`},b=[`colspan`],x={key:2,class:`nb-data-table__state-row`},_e=[`colspan`],ve=[`role`,`aria-selected`,`onClick`],ye=[`checked`,`aria-label`,`onChange`],be=[`role`,`data-label`],xe={key:1,class:`nb-data-table__footer`},S=(0,l.defineComponent)({__name:`DataTable`,props:{columns:{},rows:{},rowKey:{},size:{default:n.r.Medium},sortState:{default:null},selectable:{default:`none`},selected:{default:()=>[]},loading:{type:Boolean,default:!1},skeletonRows:{default:5},error:{default:void 0},emptyMessage:{default:void 0},stickyHeader:{type:Boolean,default:!0},zebra:{type:Boolean,default:!1},fill:{type:Boolean,default:!1},title:{default:void 0},description:{default:void 0},ariaLabel:{default:void 0},stackOnPhone:{type:Boolean,default:!1}},emits:[`sort`,`update:selected`,`row-click`],setup(e,{emit:t}){let n=e,{layerProps:S}=i.useSurfaceLayer(),C=t,w=(0,l.useSlots)(),T=`nb-data-table-select-${(0,l.useId)()}`,E=(0,l.computed)(()=>n.size),D=(0,l.computed)(()=>n.columns.filter(e=>!e.hidden)),O=(0,l.computed)(()=>n.selectable!==`none`),k=(0,l.computed)(()=>!!w[`row-actions`]),A=(0,l.computed)(()=>D.value.length+(O.value?1:0)+(k.value?1:0)),{phone:j}=a.usePhoneLayout(),M=(0,l.computed)(()=>n.stackOnPhone&&j.value),Se=(0,l.computed)(()=>(D.value.find(e=>e.primary)??D.value.find(e=>!e.phoneHidden&&!e.phoneMeta))?.key);function Ce(e){return e.phoneHidden?`nb-data-table__td--phone-hidden`:e.key===Se.value?`nb-data-table__td--primary`:e.phoneMeta?`nb-data-table__td--meta`:`nb-data-table__td--field`}let we=(0,l.computed)(()=>!n.loading&&!n.error&&n.rows.length>0&&(n.selectable===`multiple`||D.value.some(e=>e.sortable&&!e.phoneHidden)));function Te(e){if(e.width!=null)return{width:typeof e.width==`number`?`${e.width}px`:e.width}}function N(e,t){return t[e.key]}function Ee(e){return e==null?``:String(e)}let P=e=>e.column.render?.(e.row,N(e.column,e.row),e.rowIndex)??null;P.props=[`column`,`row`,`rowIndex`];function F(e){let t=n.rowKey;return typeof t==`function`?t(e):e[t]}let I=(0,l.computed)(()=>new Set(n.selected)),De=(0,l.computed)(()=>n.selected),L=(0,l.computed)(()=>n.selected.length);function R(e){return I.value.has(F(e))}let z=(0,l.computed)(()=>n.rows.map(e=>F(e))),B=(0,l.computed)(()=>z.value.length>0&&z.value.every(e=>I.value.has(e))),Oe=(0,l.computed)(()=>!B.value&&z.value.some(e=>I.value.has(e))),V=(0,l.ref)(null),H=!1;function U(e){H=e.shiftKey}(0,l.watch)(z,()=>{V.value=null});function ke(e,t){let r=F(e),i=new Set(n.selected),a=!i.has(r),o=V.value,s=e=>{a?i.add(e):i.delete(e)};if(H&&o!==null&&o!==t){let e=Math.min(o,t),r=Math.max(o,t);for(let t=e;t<=r;t++){let e=n.rows[t];e&&s(F(e))}}else s(r),V.value=t;H=!1,C(`update:selected`,[...i])}function Ae(e){C(`update:selected`,[F(e)])}function je(){let e=new Set(n.selected);B.value?z.value.forEach(t=>e.delete(t)):z.value.forEach(t=>e.add(t)),C(`update:selected`,[...e])}function W(){C(`update:selected`,[])}let G=(0,l.computed)(()=>n.selectable!==`none`&&!!w[`batch-actions`]),K=(0,l.computed)(()=>G.value&&L.value>0),Me=(0,l.computed)(()=>!!n.title||!!n.description||!!w.toolbar||!!w.search||!!w[`toolbar-actions`]),Ne=(0,l.computed)(()=>Me.value||G.value),q=(0,l.ref)(null),J=(0,l.ref)(null),Y=(0,l.ref)(null),X=(0,l.ref)(!1);function Z(){let e=J.value,t=Y.value;X.value=!!e&&!!t&&t.offsetTop>=e.offsetTop+e.offsetHeight-1}let Q=null;(0,l.watch)([q,J,Y],e=>{if(Q?.disconnect(),Z(),!(typeof ResizeObserver>`u`)){Q??=new ResizeObserver(Z);for(let t of e)t&&Q.observe(t)}},{flush:`post`}),(0,l.onBeforeUnmount)(()=>{Q?.disconnect(),Q=null});function $(e){return!!n.sortState&&n.sortState.key===e.key&&n.sortState.direction!==`none`}function Pe(e){return $(e)?n.sortState.direction===`asc`?`ascending`:`descending`:`none`}function Fe(e){return $(e)?n.sortState.direction===`asc`?u:f:d}function Ie(e){return e===`asc`?`desc`:e===`desc`?`none`:`asc`}function Le(e){let t=n.sortState&&n.sortState.key===e.key?n.sortState.direction:`none`;C(`sort`,{key:e.key,direction:Ie(t)})}let Re=(0,l.getCurrentInstance)(),ze=(0,l.computed)(()=>!!Re?.vnode.props?.onRowClick);function Be(e,t){C(`row-click`,e,t)}return(t,n)=>((0,l.openBlock)(),(0,l.createElementBlock)(`div`,(0,l.mergeProps)({class:[`nb-data-table`,`nb-data-table--${e.size}`,{"nb-data-table--zebra":e.zebra},{"nb-data-table--sticky":e.stickyHeader},{"nb-data-table--fill":e.fill},{"nb-data-table--stacked":M.value},{"nb-data-table--stacked-headless":M.value&&!we.value}]},(0,l.unref)(S)),[Ne.value?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,{key:0,ref_key:`toolbarRef`,ref:q,class:(0,l.normalizeClass)([`nb-data-table__toolbar`,{"nb-data-table__toolbar--wrapped":X.value}])},[(0,l.createElementVNode)(`div`,{ref_key:`toolbarHeadingRef`,ref:J,class:`nb-data-table__toolbar-heading`,inert:K.value||void 0,"aria-hidden":K.value||void 0},[(0,l.renderSlot)(t.$slots,`toolbar`,{selectedCount:L.value},()=>[e.title||e.description?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,m,[e.title?((0,l.openBlock)(),(0,l.createElementBlock)(`h2`,h,(0,l.toDisplayString)(e.title),1)):(0,l.createCommentVNode)(``,!0),e.description?((0,l.openBlock)(),(0,l.createElementBlock)(`p`,g,(0,l.toDisplayString)(e.description),1)):(0,l.createCommentVNode)(``,!0)])):(0,l.createCommentVNode)(``,!0)],!0)],8,p),t.$slots.search||t.$slots[`toolbar-actions`]?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,{key:0,ref_key:`toolbarToolsRef`,ref:Y,class:(0,l.normalizeClass)([`nb-data-table__toolbar-tools`,{"nb-data-table__toolbar-tools--grow-search":X.value&&!!t.$slots.search}]),inert:K.value||void 0,"aria-hidden":K.value||void 0},[(0,l.renderSlot)(t.$slots,`search`,{},void 0,!0),(0,l.renderSlot)(t.$slots,`toolbar-actions`,{},void 0,!0)],10,ee)):(0,l.createCommentVNode)(``,!0),K.value?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,te,[(0,l.createElementVNode)(`span`,ne,(0,l.toDisplayString)(L.value)+` selected `,1),(0,l.createElementVNode)(`div`,re,[(0,l.renderSlot)(t.$slots,`batch-actions`,{selectedKeys:De.value,clear:W},void 0,!0)]),(0,l.createVNode)(o.t,{class:`nb-data-table__batch-cancel`,variant:`ghost`,size:E.value,onClick:W},{default:(0,l.withCtx)(()=>[...n[2]||=[(0,l.createTextVNode)(` Cancel `,-1)]]),_:1},8,[`size`])])):(0,l.createCommentVNode)(``,!0)],2)):(0,l.createCommentVNode)(``,!0),(0,l.createElementVNode)(`div`,ie,[(0,l.createElementVNode)(`table`,{class:`nb-data-table__table`,role:M.value?`table`:void 0,"aria-label":e.ariaLabel||e.title||void 0,"aria-busy":e.loading||void 0},[(0,l.createElementVNode)(`colgroup`,null,[O.value?((0,l.openBlock)(),(0,l.createElementBlock)(`col`,oe)):(0,l.createCommentVNode)(``,!0),((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(D.value,e=>((0,l.openBlock)(),(0,l.createElementBlock)(`col`,{key:`col-${e.key}`,style:(0,l.normalizeStyle)(Te(e))},null,4))),128)),k.value?((0,l.openBlock)(),(0,l.createElementBlock)(`col`,se)):(0,l.createCommentVNode)(``,!0)]),(0,l.createElementVNode)(`thead`,{class:`nb-data-table__head`,role:M.value?`rowgroup`:void 0},[(0,l.createElementVNode)(`tr`,{role:M.value?`row`:void 0},[O.value?((0,l.openBlock)(),(0,l.createElementBlock)(`th`,ue,[e.selectable===`multiple`?((0,l.openBlock)(),(0,l.createBlock)(c.t,{key:0,"model-value":B.value,indeterminate:Oe.value,"aria-label":`Select all rows`,"onUpdate:modelValue":je},null,8,[`model-value`,`indeterminate`])):(0,l.createCommentVNode)(``,!0)])):(0,l.createCommentVNode)(``,!0),((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(D.value,e=>((0,l.openBlock)(),(0,l.createElementBlock)(`th`,{key:`th-${e.key}`,scope:`col`,class:(0,l.normalizeClass)([`nb-data-table__th`,`nb-data-table__th--${e.align||`left`}`,{"nb-data-table__th--sortable":e.sortable},{"nb-data-table__th--sorted":$(e)},M.value&&e.phoneHidden&&`nb-data-table__th--phone-hidden`]),"aria-sort":e.sortable?Pe(e):void 0},[e.sortable?((0,l.openBlock)(),(0,l.createElementBlock)(`button`,{key:0,type:`button`,class:`nb-data-table__sort`,onClick:t=>Le(e)},[(0,l.createElementVNode)(`span`,fe,[(0,l.renderSlot)(t.$slots,`header-${e.key}`,{column:e},()=>[(0,l.createTextVNode)((0,l.toDisplayString)(e.header),1)],!0)]),(0,l.createVNode)(r.t,{name:Fe(e),class:`nb-data-table__sort-icon`,"aria-hidden":`true`},null,8,[`name`])],8,de)):((0,l.openBlock)(),(0,l.createElementBlock)(`span`,pe,[(0,l.renderSlot)(t.$slots,`header-${e.key}`,{column:e},()=>[(0,l.createTextVNode)((0,l.toDisplayString)(e.header),1)],!0)]))],10,_))),128)),k.value?((0,l.openBlock)(),(0,l.createElementBlock)(`th`,me,[...n[3]||=[(0,l.createElementVNode)(`span`,{class:`nb-sr-only`},`Row actions`,-1)]])):(0,l.createCommentVNode)(``,!0)],8,le)],8,ce),(0,l.createElementVNode)(`tbody`,{class:`nb-data-table__body`,role:M.value?`rowgroup`:void 0},[e.loading?((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,{key:0},(0,l.renderList)(e.skeletonRows,e=>((0,l.openBlock)(),(0,l.createElementBlock)(`tr`,{key:`skeleton-${e}`,class:`nb-data-table__row nb-data-table__row--skeleton`},[O.value?((0,l.openBlock)(),(0,l.createElementBlock)(`td`,ge,[...n[4]||=[(0,l.createElementVNode)(`span`,{class:`nb-data-table__skeleton nb-data-table__skeleton--box`},null,-1)]])):(0,l.createCommentVNode)(``,!0),((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(D.value,t=>((0,l.openBlock)(),(0,l.createElementBlock)(`td`,{key:`sk-${e}-${t.key}`,class:`nb-data-table__td`},[...n[5]||=[(0,l.createElementVNode)(`span`,{class:`nb-data-table__skeleton`},null,-1)]]))),128)),k.value?((0,l.openBlock)(),(0,l.createElementBlock)(`td`,v,[...n[6]||=[(0,l.createElementVNode)(`span`,{class:`nb-data-table__skeleton nb-data-table__skeleton--box`},null,-1)]])):(0,l.createCommentVNode)(``,!0)]))),128)):e.error?((0,l.openBlock)(),(0,l.createElementBlock)(`tr`,y,[(0,l.createElementVNode)(`td`,{colspan:A.value,class:`nb-data-table__state nb-data-table__state--error`},[(0,l.renderSlot)(t.$slots,`error`,{error:e.error},()=>[(0,l.createVNode)(s.t,{is:`span`,align:`center`,justify:`center`,gap:`xs`,class:`nb-data-table__state-inner`},{default:(0,l.withCtx)(()=>[(0,l.createVNode)(r.t,{name:`warning-circle-fill`,"aria-hidden":`true`}),(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(e.error),1)]),_:1})],!0)],8,b)])):e.rows.length?((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,{key:3},(0,l.renderList)(e.rows,(r,i)=>((0,l.openBlock)(),(0,l.createElementBlock)(`tr`,{key:F(r),class:(0,l.normalizeClass)([`nb-data-table__row`,{"nb-data-table__row--selected":R(r)},{"nb-data-table__row--clickable":ze.value}]),role:M.value?`row`:void 0,"aria-selected":e.selectable===`none`?void 0:R(r),onClick:e=>Be(r,i)},[O.value?((0,l.openBlock)(),(0,l.createElementBlock)(`td`,{key:0,class:`nb-data-table__td nb-data-table__select-cell`,onClick:n[0]||=(0,l.withModifiers)(()=>{},[`stop`]),onMousedown:U,onKeydown:U},[e.selectable===`multiple`?((0,l.openBlock)(),(0,l.createBlock)(c.t,{key:0,"model-value":R(r),"aria-label":`Select row ${i+1}`,"onUpdate:modelValue":e=>ke(r,i)},null,8,[`model-value`,`aria-label`,`onUpdate:modelValue`])):((0,l.openBlock)(),(0,l.createElementBlock)(`input`,{key:1,type:`radio`,class:`nb-data-table__radio`,name:T,checked:R(r),"aria-label":`Select row ${i+1}`,onChange:e=>Ae(r)},null,40,ye))],32)):(0,l.createCommentVNode)(``,!0),((0,l.openBlock)(!0),(0,l.createElementBlock)(l.Fragment,null,(0,l.renderList)(D.value,n=>((0,l.openBlock)(),(0,l.createElementBlock)(`td`,{key:`td-${F(r)}-${n.key}`,class:(0,l.normalizeClass)([`nb-data-table__td`,`nb-data-table__td--${n.align||`left`}`,n.cellClass,M.value&&Ce(n)]),role:M.value?`cell`:void 0,"data-label":e.stackOnPhone?n.header:void 0},[(0,l.renderSlot)(t.$slots,`cell-${n.key}`,{row:r,value:N(n,r),column:n,rowIndex:i},()=>[n.render?((0,l.openBlock)(),(0,l.createBlock)(P,{key:0,column:n,row:r,"row-index":i},null,8,[`column`,`row`,`row-index`])):((0,l.openBlock)(),(0,l.createElementBlock)(l.Fragment,{key:1},[(0,l.createTextVNode)((0,l.toDisplayString)(Ee(N(n,r))),1)],64))],!0)],10,be))),128)),k.value?((0,l.openBlock)(),(0,l.createElementBlock)(`td`,{key:1,class:`nb-data-table__td nb-data-table__actions-cell`,onClick:n[1]||=(0,l.withModifiers)(()=>{},[`stop`])},[(0,l.renderSlot)(t.$slots,`row-actions`,{row:r,rowIndex:i},void 0,!0)])):(0,l.createCommentVNode)(``,!0)],10,ve))),128)):((0,l.openBlock)(),(0,l.createElementBlock)(`tr`,x,[(0,l.createElementVNode)(`td`,{colspan:A.value,class:`nb-data-table__state nb-data-table__state--empty`},[(0,l.renderSlot)(t.$slots,`empty`,{},()=>[(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(e.emptyMessage||`No data to display`),1)],!0)],8,_e)]))],8,he)],8,ae)]),t.$slots.footer?((0,l.openBlock)(),(0,l.createElementBlock)(`div`,xe,[(0,l.renderSlot)(t.$slots,`footer`,{},void 0,!0)])):(0,l.createCommentVNode)(``,!0)],16))}}),C=t.t(S,[[`__scopeId`,`data-v-0d151db9`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return C}});
@@ -1 +0,0 @@
1
- require(`./chunk-D-qHiVGv.cjs`);const e=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),t=require(`./Icon-C8R_r_In.cjs`),n=require(`./composables/useSurfaceLayer.composable.cjs`),r=require(`./Button-C0UUTgEB.cjs`);let i=require(`vue`),a=require(`@nubisco/ui/icons/x`),o=require(`@nubisco/ui/icons/circle-notch`);var s=function(e){return e.Primary=`primary`,e.Secondary=`secondary`,e.Ghost=`ghost`,e.Danger=`danger`,e.Success=`success`,e.Warning=`warning`,e}(s||{}),c=function(e){return e.Idle=`idle`,e.Loading=`loading`,e.Success=`success`,e}(c||{}),l={key:0,class:`nb-file-uploader__heading`},u={key:1,class:`nb-file-uploader__description`},d=[`accept`,`multiple`],f={key:4,class:`nb-file-uploader__list`},p={class:`nb-file-uploader__name`},m={class:`nb-file-uploader__status`},h=[`aria-label`,`onClick`],g={key:0,class:`nb-file-uploader__error`},_=(0,i.defineComponent)({__name:`FileUploader`,props:{heading:{},description:{},buttonLabel:{default:`Add file`},variant:{default:s.Primary},accept:{},multiple:{type:Boolean,default:!1},maxSize:{},disabled:{type:Boolean},id:{}},emits:[`change`,`remove`],setup(e,{expose:s,emit:_}){let v=e,{layerProps:y}=n.useSurfaceLayer(),b=_,x=(0,i.ref)(null),S=(0,i.ref)([]),C=(0,i.ref)(!1),w=0;function T(){x.value?.click()}function E(e){if(v.maxSize&&e.size>v.maxSize)return`File exceeds size limit.`;if(v.accept){let t=v.accept.split(`,`).map(e=>e.trim().toLowerCase()),n=e.name.toLowerCase();if(!t.some(t=>t.startsWith(`.`)?n.endsWith(t):t.includes(`/`)?e.type===t||e.type.startsWith(t.replaceAll(`*`,``)):!1))return`File type not accepted.`}}function D(e){let t=Array.from(e);v.multiple||(S.value=[]);for(let e of t){let t=E(e);S.value.push({file:e,status:c.Idle,error:t})}b(`change`,S.value.filter(e=>!e.error).map(e=>e.file))}function O(e){let t=e.target;t.files?.length&&(D(t.files),t.value=``)}function k(){w++,C.value=!0}function A(){w--,w<=0&&(w=0,C.value=!1)}function j(e){w=0,C.value=!1;let t=e.dataTransfer?.files;t?.length&&D(t)}function M(e){let t=S.value[e];S.value.splice(e,1),b(`remove`,t.file),b(`change`,S.value.filter(e=>!e.error).map(e=>e.file))}function N(e,t,n){S.value[e]&&(S.value[e].status=t,S.value[e].error=n)}return s({files:S,setFileStatus:N}),(n,s)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,(0,i.mergeProps)({class:`nb-file-uploader`},(0,i.unref)(y),{onDragenter:(0,i.withModifiers)(k,[`prevent`]),onDragover:s[0]||=(0,i.withModifiers)(()=>{},[`prevent`]),onDragleave:(0,i.withModifiers)(A,[`prevent`]),onDrop:(0,i.withModifiers)(j,[`prevent`])}),[e.heading?((0,i.openBlock)(),(0,i.createElementBlock)(`p`,l,(0,i.toDisplayString)(e.heading),1)):(0,i.createCommentVNode)(``,!0),e.description?((0,i.openBlock)(),(0,i.createElementBlock)(`p`,u,(0,i.toDisplayString)(e.description),1)):(0,i.createCommentVNode)(``,!0),C.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:2,class:(0,i.normalizeClass)([`nb-file-uploader__dropzone`,`nb-file-uploader__dropzone--${e.variant}`])},[...s[1]||=[(0,i.createElementVNode)(`span`,{class:`nb-file-uploader__drop-label`},[(0,i.createTextVNode)(` Drag and drop files here`),(0,i.createElementVNode)(`br`),(0,i.createTextVNode)(`or click to upload `)],-1)]],2)):((0,i.openBlock)(),(0,i.createBlock)(r.t,{key:3,class:`nb-file-uploader__btn`,variant:e.variant,onClick:(0,i.withModifiers)(T,[`stop`])},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.buttonLabel),1)]),_:1},8,[`variant`])),(0,i.createElementVNode)(`input`,{ref_key:`inputRef`,ref:x,type:`file`,class:`nb-file-uploader__input`,accept:e.accept,multiple:e.multiple,onChange:O},null,40,d),S.value.length?((0,i.openBlock)(),(0,i.createElementBlock)(`ul`,f,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(S.value,(e,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`li`,{key:n,class:(0,i.normalizeClass)([`nb-file-uploader__item`,{"nb-file-uploader__item--error":e.error,"nb-file-uploader__item--success":e.status===`success`}])},[(0,i.createElementVNode)(`span`,p,(0,i.toDisplayString)(e.file.name),1),(0,i.createElementVNode)(`span`,m,[e.status===`loading`?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:0,name:(0,i.unref)(o.regular),class:`nb-file-uploader__spinner`},null,8,[`name`])):e.status===`success`?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:1,name:`check-circle-fill`,class:`nb-file-uploader__check`})):(0,i.createCommentVNode)(``,!0),e.error?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:2,name:`warning-circle-fill`,class:`nb-file-uploader__warn`})):(0,i.createCommentVNode)(``,!0),e.status===`loading`?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:3,class:`nb-file-uploader__remove`,type:`button`,"aria-label":`Remove ${e.file.name}`,onClick:e=>M(n)},[(0,i.createVNode)(t.t,{name:(0,i.unref)(a.regular)},null,8,[`name`])],8,h))]),e.error?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,g,(0,i.toDisplayString)(e.error),1)):(0,i.createCommentVNode)(``,!0)],2))),128))])):(0,i.createCommentVNode)(``,!0)],16))}}),v=e.t(_,[[`__scopeId`,`data-v-7f391a7f`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return v}});
@@ -1,162 +0,0 @@
1
- import { t as e } from "./_plugin-vue_export-helper-O4QQSku4.js";
2
- import { t } from "./Icon-rREAqsu0.js";
3
- import { useSurfaceLayer as n } from "./composables/useSurfaceLayer.composable.mjs";
4
- import { t as r } from "./Button-IcCXOoCT.js";
5
- import { Fragment as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, mergeProps as f, normalizeClass as p, openBlock as m, ref as h, renderList as g, toDisplayString as _, unref as v, withCtx as y, withModifiers as b } from "vue";
6
- import { regular as x } from "@nubisco/ui/icons/x";
7
- import { regular as S } from "@nubisco/ui/icons/circle-notch";
8
- //#region src/types/Variants.d.ts
9
- var C = /* @__PURE__ */ function(e) {
10
- return e.Primary = "primary", e.Secondary = "secondary", e.Ghost = "ghost", e.Danger = "danger", e.Success = "success", e.Warning = "warning", e;
11
- }(C || {}), w = /* @__PURE__ */ function(e) {
12
- return e.Idle = "idle", e.Loading = "loading", e.Success = "success", e;
13
- }(w || {}), T = {
14
- key: 0,
15
- class: "nb-file-uploader__heading"
16
- }, E = {
17
- key: 1,
18
- class: "nb-file-uploader__description"
19
- }, D = ["accept", "multiple"], O = {
20
- key: 4,
21
- class: "nb-file-uploader__list"
22
- }, k = { class: "nb-file-uploader__name" }, A = { class: "nb-file-uploader__status" }, j = ["aria-label", "onClick"], M = {
23
- key: 0,
24
- class: "nb-file-uploader__error"
25
- }, N = /* @__PURE__ */ e(/* @__PURE__ */ d({
26
- __name: "FileUploader",
27
- props: {
28
- heading: {},
29
- description: {},
30
- buttonLabel: { default: "Add file" },
31
- variant: { default: C.Primary },
32
- accept: {},
33
- multiple: {
34
- type: Boolean,
35
- default: !1
36
- },
37
- maxSize: {},
38
- disabled: { type: Boolean },
39
- id: {}
40
- },
41
- emits: ["change", "remove"],
42
- setup(e, { expose: d, emit: C }) {
43
- let N = e, { layerProps: P } = n(), F = C, I = h(null), L = h([]), R = h(!1), z = 0;
44
- function B() {
45
- I.value?.click();
46
- }
47
- function V(e) {
48
- if (N.maxSize && e.size > N.maxSize) return "File exceeds size limit.";
49
- if (N.accept) {
50
- let t = N.accept.split(",").map((e) => e.trim().toLowerCase()), n = e.name.toLowerCase();
51
- if (!t.some((t) => t.startsWith(".") ? n.endsWith(t) : t.includes("/") ? e.type === t || e.type.startsWith(t.replaceAll("*", "")) : !1)) return "File type not accepted.";
52
- }
53
- }
54
- function H(e) {
55
- let t = Array.from(e);
56
- N.multiple || (L.value = []);
57
- for (let e of t) {
58
- let t = V(e);
59
- L.value.push({
60
- file: e,
61
- status: w.Idle,
62
- error: t
63
- });
64
- }
65
- F("change", L.value.filter((e) => !e.error).map((e) => e.file));
66
- }
67
- function U(e) {
68
- let t = e.target;
69
- t.files?.length && (H(t.files), t.value = "");
70
- }
71
- function W() {
72
- z++, R.value = !0;
73
- }
74
- function G() {
75
- z--, z <= 0 && (z = 0, R.value = !1);
76
- }
77
- function K(e) {
78
- z = 0, R.value = !1;
79
- let t = e.dataTransfer?.files;
80
- t?.length && H(t);
81
- }
82
- function q(e) {
83
- let t = L.value[e];
84
- L.value.splice(e, 1), F("remove", t.file), F("change", L.value.filter((e) => !e.error).map((e) => e.file));
85
- }
86
- function J(e, t, n) {
87
- L.value[e] && (L.value[e].status = t, L.value[e].error = n);
88
- }
89
- return d({
90
- files: L,
91
- setFileStatus: J
92
- }), (n, d) => (m(), s("div", f({ class: "nb-file-uploader" }, v(P), {
93
- onDragenter: b(W, ["prevent"]),
94
- onDragover: d[0] ||= b(() => {}, ["prevent"]),
95
- onDragleave: b(G, ["prevent"]),
96
- onDrop: b(K, ["prevent"])
97
- }), [
98
- e.heading ? (m(), s("p", T, _(e.heading), 1)) : o("", !0),
99
- e.description ? (m(), s("p", E, _(e.description), 1)) : o("", !0),
100
- R.value ? (m(), s("div", {
101
- key: 2,
102
- class: p(["nb-file-uploader__dropzone", `nb-file-uploader__dropzone--${e.variant}`])
103
- }, [...d[1] ||= [c("span", { class: "nb-file-uploader__drop-label" }, [
104
- l(" Drag and drop files here"),
105
- c("br"),
106
- l("or click to upload ")
107
- ], -1)]], 2)) : (m(), a(r, {
108
- key: 3,
109
- class: "nb-file-uploader__btn",
110
- variant: e.variant,
111
- onClick: b(B, ["stop"])
112
- }, {
113
- default: y(() => [l(_(e.buttonLabel), 1)]),
114
- _: 1
115
- }, 8, ["variant"])),
116
- c("input", {
117
- ref_key: "inputRef",
118
- ref: I,
119
- type: "file",
120
- class: "nb-file-uploader__input",
121
- accept: e.accept,
122
- multiple: e.multiple,
123
- onChange: U
124
- }, null, 40, D),
125
- L.value.length ? (m(), s("ul", O, [(m(!0), s(i, null, g(L.value, (e, n) => (m(), s("li", {
126
- key: n,
127
- class: p(["nb-file-uploader__item", {
128
- "nb-file-uploader__item--error": e.error,
129
- "nb-file-uploader__item--success": e.status === "success"
130
- }])
131
- }, [
132
- c("span", k, _(e.file.name), 1),
133
- c("span", A, [
134
- e.status === "loading" ? (m(), a(t, {
135
- key: 0,
136
- name: v(S),
137
- class: "nb-file-uploader__spinner"
138
- }, null, 8, ["name"])) : e.status === "success" ? (m(), a(t, {
139
- key: 1,
140
- name: "check-circle-fill",
141
- class: "nb-file-uploader__check"
142
- })) : o("", !0),
143
- e.error ? (m(), a(t, {
144
- key: 2,
145
- name: "warning-circle-fill",
146
- class: "nb-file-uploader__warn"
147
- })) : o("", !0),
148
- e.status === "loading" ? o("", !0) : (m(), s("button", {
149
- key: 3,
150
- class: "nb-file-uploader__remove",
151
- type: "button",
152
- "aria-label": `Remove ${e.file.name}`,
153
- onClick: (e) => q(n)
154
- }, [u(t, { name: v(x) }, null, 8, ["name"])], 8, j))
155
- ]),
156
- e.error ? (m(), s("div", M, _(e.error), 1)) : o("", !0)
157
- ], 2))), 128))])) : o("", !0)
158
- ], 16));
159
- }
160
- }), [["__scopeId", "data-v-7f391a7f"]]);
161
- //#endregion
162
- export { N as t };