@akira-io/ui 1.0.0 → 1.1.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/README.md +15 -10
- package/dist/blocks.d.ts +162 -9
- package/dist/blocks.js +1410 -36
- package/dist/blocks.js.map +1 -1
- package/dist/button-Bj6My68b.d.ts +17 -0
- package/dist/chunk-2WIIRDHT.js +83 -0
- package/dist/chunk-2WIIRDHT.js.map +1 -0
- package/dist/{chunk-A2SIZOEA.js → chunk-4SOQAVUP.js} +125 -45
- package/dist/chunk-4SOQAVUP.js.map +1 -0
- package/dist/chunk-5AJFQ6C4.js +35 -0
- package/dist/chunk-5AJFQ6C4.js.map +1 -0
- package/dist/chunk-CFDDAFPJ.js +1243 -0
- package/dist/chunk-CFDDAFPJ.js.map +1 -0
- package/dist/chunk-FWQFB37J.js +45 -0
- package/dist/chunk-FWQFB37J.js.map +1 -0
- package/dist/chunk-IQMRJXEO.js +59 -0
- package/dist/chunk-IQMRJXEO.js.map +1 -0
- package/dist/chunk-L2H5GIF7.js +22 -0
- package/dist/chunk-L2H5GIF7.js.map +1 -0
- package/dist/chunk-ODYCBCKS.js +290 -0
- package/dist/chunk-ODYCBCKS.js.map +1 -0
- package/dist/{chunk-5MQWJVM2.js → chunk-QHZWW55M.js} +383 -326
- package/dist/chunk-QHZWW55M.js.map +1 -0
- package/dist/chunk-RPCL7VFQ.js +123 -0
- package/dist/chunk-RPCL7VFQ.js.map +1 -0
- package/dist/chunk-T2INZOCM.js +165 -0
- package/dist/chunk-T2INZOCM.js.map +1 -0
- package/dist/chunk-TGF54WAO.js +29 -0
- package/dist/chunk-TGF54WAO.js.map +1 -0
- package/dist/chunk-XZCC6MTE.js +26 -0
- package/dist/chunk-XZCC6MTE.js.map +1 -0
- package/dist/{chunk-UXL33CZ4.js → chunk-YOVY3KT6.js} +13 -11
- package/dist/chunk-YOVY3KT6.js.map +1 -0
- package/dist/code.d.ts +9 -0
- package/dist/code.js +650 -0
- package/dist/code.js.map +1 -0
- package/dist/context-YWbxMH0C.d.ts +383 -0
- package/dist/editor.d.ts +128 -0
- package/dist/editor.js +450 -0
- package/dist/editor.js.map +1 -0
- package/dist/index.d.ts +298 -222
- package/dist/index.js +1300 -670
- package/dist/index.js.map +1 -1
- package/dist/inertia.d.ts +47 -2
- package/dist/inertia.js +138 -7
- package/dist/inertia.js.map +1 -1
- package/dist/input-Dpi7pXeR.d.ts +6 -0
- package/dist/json-viewer-BARA2RCW.d.ts +51 -0
- package/dist/{language-Bft6rBBt.d.ts → language-Dgjr9bm3.d.ts} +1 -1
- package/dist/locales/pt.d.ts +26 -4
- package/dist/locales/pt.js +127 -1
- package/dist/locales/pt.js.map +1 -1
- package/dist/password-input-DcXX7SG9.d.ts +51 -0
- package/dist/shells.d.ts +45 -7
- package/dist/shells.js +96 -60
- package/dist/shells.js.map +1 -1
- package/dist/sidebar-DqkFRUxQ.d.ts +81 -0
- package/dist/types-B-eGPoFD.d.ts +111 -0
- package/dist/types-cmBL8zOc.d.ts +51 -0
- package/package.json +170 -130
- package/theme.css +20 -0
- package/themes/nosferry.css +4 -0
- package/dist/chunk-42BJBH56.js +0 -786
- package/dist/chunk-42BJBH56.js.map +0 -1
- package/dist/chunk-5MQWJVM2.js.map +0 -1
- package/dist/chunk-A2SIZOEA.js.map +0 -1
- package/dist/chunk-POE7OYET.js +0 -96
- package/dist/chunk-POE7OYET.js.map +0 -1
- package/dist/chunk-UXL33CZ4.js.map +0 -1
- package/dist/date-range-filter-QEa8fhUM.d.ts +0 -149
- package/dist/sidebar-BDhG9SUU.d.ts +0 -88
- package/dist/types-Cno1_Ijx.d.ts +0 -40
- package/dist/types-cOieac8G.d.ts +0 -77
package/dist/inertia.d.ts
CHANGED
|
@@ -1,8 +1,46 @@
|
|
|
1
1
|
import { ReactNode, ReactElement, PropsWithChildren } from 'react';
|
|
2
2
|
import { d as TourLabels } from './types-u1qfmJQi.js';
|
|
3
|
-
import { U as UrlLike, N as NavGroup,
|
|
3
|
+
import { U as UrlLike, N as NavGroup, b as NavItem, c as SharedUser, B as BreadcrumbItem, d as LinkComponent } from './types-cmBL8zOc.js';
|
|
4
|
+
import '@tanstack/react-table';
|
|
5
|
+
import 'lucide-react';
|
|
6
|
+
|
|
7
|
+
type TableFilterValue = string | string[] | number | null | undefined;
|
|
8
|
+
type TableFilterQuery = Record<string, string | string[]>;
|
|
9
|
+
interface TableFiltersVisitOptions {
|
|
10
|
+
data: TableFilterQuery;
|
|
11
|
+
only?: string[];
|
|
12
|
+
preserveState: boolean;
|
|
13
|
+
preserveScroll: boolean;
|
|
14
|
+
replace: boolean;
|
|
15
|
+
onCancelToken: (token: {
|
|
16
|
+
cancel: () => void;
|
|
17
|
+
}) => void;
|
|
18
|
+
}
|
|
19
|
+
interface TableFiltersRouter {
|
|
20
|
+
visit: (url: string, options: TableFiltersVisitOptions) => void;
|
|
21
|
+
}
|
|
22
|
+
interface TableFiltersOptions {
|
|
23
|
+
url: string;
|
|
24
|
+
filters: Record<string, TableFilterValue>;
|
|
25
|
+
only?: string[];
|
|
26
|
+
searchKey?: string;
|
|
27
|
+
pageKey?: string;
|
|
28
|
+
debounce?: number;
|
|
29
|
+
}
|
|
30
|
+
interface TableFilters {
|
|
31
|
+
search: string;
|
|
32
|
+
setSearch: (value: string) => void;
|
|
33
|
+
filterValues: Record<string, string[]>;
|
|
34
|
+
setFilter: (key: string, values: string[]) => void;
|
|
35
|
+
clearFilters: () => void;
|
|
36
|
+
setPage: (pageIndex: number) => void;
|
|
37
|
+
apply: (changes: Record<string, TableFilterValue>) => void;
|
|
38
|
+
}
|
|
39
|
+
type UseTableFilters = (options: TableFiltersOptions) => TableFilters;
|
|
4
40
|
|
|
5
41
|
declare const InertiaLink: LinkComponent;
|
|
42
|
+
|
|
43
|
+
declare const useTableFilters: UseTableFilters;
|
|
6
44
|
declare function useCurrentUrl(): string;
|
|
7
45
|
declare function AppSidebar(props: {
|
|
8
46
|
logo: ReactNode;
|
|
@@ -12,6 +50,9 @@ declare function AppSidebar(props: {
|
|
|
12
50
|
user: SharedUser;
|
|
13
51
|
settingsHref: UrlLike;
|
|
14
52
|
logoutHref: UrlLike;
|
|
53
|
+
collapsibleGroups?: boolean;
|
|
54
|
+
collapsedGroups?: string[];
|
|
55
|
+
onCollapsedChange?: (collapsedGroups: string[]) => void;
|
|
15
56
|
onSettingsClick?: () => void;
|
|
16
57
|
onLogout?: () => void;
|
|
17
58
|
}): ReactElement;
|
|
@@ -26,6 +67,10 @@ declare function Breadcrumbs(props: {
|
|
|
26
67
|
declare function NavMain(props: {
|
|
27
68
|
items: NavItem[];
|
|
28
69
|
label?: string;
|
|
70
|
+
collapsible?: boolean;
|
|
71
|
+
defaultOpen?: boolean;
|
|
72
|
+
collapsedGroups?: string[];
|
|
73
|
+
onCollapsedChange?: (collapsedGroups: string[]) => void;
|
|
29
74
|
}): ReactElement;
|
|
30
75
|
declare function SettingsLayout(props: PropsWithChildren<{
|
|
31
76
|
items: NavItem[];
|
|
@@ -38,4 +83,4 @@ declare function InertiaTourProvider({ children, progressUrl, labels, }: PropsWi
|
|
|
38
83
|
labels?: Partial<TourLabels>;
|
|
39
84
|
}>): ReactElement;
|
|
40
85
|
|
|
41
|
-
export { AppSidebar, AppSidebarHeader, Breadcrumbs, InertiaLink, InertiaTourProvider, NavMain, SettingsLayout, useCurrentUrl };
|
|
86
|
+
export { AppSidebar, AppSidebarHeader, Breadcrumbs, InertiaLink, InertiaTourProvider, NavMain, SettingsLayout, type TableFilterValue, type TableFilters, type TableFiltersOptions, type TableFiltersRouter, useCurrentUrl, useTableFilters };
|
package/dist/inertia.js
CHANGED
|
@@ -1,9 +1,139 @@
|
|
|
1
|
-
import { TourProvider } from './chunk-
|
|
2
|
-
import
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import
|
|
6
|
-
import
|
|
1
|
+
import { TourProvider } from './chunk-YOVY3KT6.js';
|
|
2
|
+
import './chunk-5AJFQ6C4.js';
|
|
3
|
+
import { AppSidebar, AppSidebarHeader, Breadcrumbs, NavMain, SettingsLayout } from './chunk-4SOQAVUP.js';
|
|
4
|
+
import './chunk-QHZWW55M.js';
|
|
5
|
+
import './chunk-L2H5GIF7.js';
|
|
6
|
+
import './chunk-TGF54WAO.js';
|
|
7
|
+
import './chunk-XZCC6MTE.js';
|
|
8
|
+
import './chunk-ODYCBCKS.js';
|
|
9
|
+
import { Link, usePage, router } from '@inertiajs/react';
|
|
10
|
+
import { createElement, useState, useRef, useCallback, useEffect } from 'react';
|
|
11
|
+
|
|
12
|
+
var DEFAULT_DEBOUNCE = 300;
|
|
13
|
+
function toQuery(filters) {
|
|
14
|
+
const query = {};
|
|
15
|
+
for (const [key, value] of Object.entries(filters)) {
|
|
16
|
+
if (Array.isArray(value)) {
|
|
17
|
+
const values = value.filter((entry) => entry !== "");
|
|
18
|
+
if (values.length > 0) {
|
|
19
|
+
query[key] = values;
|
|
20
|
+
}
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (value === null || value === void 0 || value === "") {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
query[key] = String(value);
|
|
27
|
+
}
|
|
28
|
+
return query;
|
|
29
|
+
}
|
|
30
|
+
function toFilterValues(filters, exclude = []) {
|
|
31
|
+
const values = {};
|
|
32
|
+
for (const [key, value] of Object.entries(toQuery(filters))) {
|
|
33
|
+
if (exclude.includes(key)) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
values[key] = Array.isArray(value) ? value : [value];
|
|
37
|
+
}
|
|
38
|
+
return values;
|
|
39
|
+
}
|
|
40
|
+
function createTableFiltersHook(router2) {
|
|
41
|
+
return function useTableFilters2({
|
|
42
|
+
url,
|
|
43
|
+
filters,
|
|
44
|
+
only,
|
|
45
|
+
searchKey = "search",
|
|
46
|
+
pageKey = "page",
|
|
47
|
+
debounce = DEFAULT_DEBOUNCE
|
|
48
|
+
}) {
|
|
49
|
+
const initialSearch = filters[searchKey];
|
|
50
|
+
const [search, setSearchState] = useState(
|
|
51
|
+
typeof initialSearch === "string" ? initialSearch : ""
|
|
52
|
+
);
|
|
53
|
+
const timer = useRef(null);
|
|
54
|
+
const pending = useRef(null);
|
|
55
|
+
const state = useRef({ url, filters, only, searchKey, pageKey });
|
|
56
|
+
state.current = { url, filters, only, searchKey, pageKey };
|
|
57
|
+
const visit = useCallback(
|
|
58
|
+
(changes) => {
|
|
59
|
+
const current = state.current;
|
|
60
|
+
pending.current?.cancel();
|
|
61
|
+
router2.visit(current.url, {
|
|
62
|
+
data: toQuery({ ...current.filters, ...changes }),
|
|
63
|
+
only: current.only,
|
|
64
|
+
preserveState: true,
|
|
65
|
+
preserveScroll: true,
|
|
66
|
+
replace: true,
|
|
67
|
+
onCancelToken: (token) => {
|
|
68
|
+
pending.current = token;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
[]
|
|
73
|
+
);
|
|
74
|
+
const cancelPendingSearch = useCallback(() => {
|
|
75
|
+
if (timer.current !== null) {
|
|
76
|
+
clearTimeout(timer.current);
|
|
77
|
+
timer.current = null;
|
|
78
|
+
}
|
|
79
|
+
}, []);
|
|
80
|
+
useEffect(() => cancelPendingSearch, [cancelPendingSearch]);
|
|
81
|
+
const setSearch = useCallback(
|
|
82
|
+
(value) => {
|
|
83
|
+
setSearchState(value);
|
|
84
|
+
cancelPendingSearch();
|
|
85
|
+
timer.current = setTimeout(() => {
|
|
86
|
+
timer.current = null;
|
|
87
|
+
visit({
|
|
88
|
+
[state.current.searchKey]: value,
|
|
89
|
+
[state.current.pageKey]: null
|
|
90
|
+
});
|
|
91
|
+
}, debounce);
|
|
92
|
+
},
|
|
93
|
+
[cancelPendingSearch, debounce, visit]
|
|
94
|
+
);
|
|
95
|
+
const setFilter = useCallback(
|
|
96
|
+
(key, values) => {
|
|
97
|
+
cancelPendingSearch();
|
|
98
|
+
visit({ [key]: values, [state.current.pageKey]: null });
|
|
99
|
+
},
|
|
100
|
+
[cancelPendingSearch, visit]
|
|
101
|
+
);
|
|
102
|
+
const clearFilters = useCallback(() => {
|
|
103
|
+
cancelPendingSearch();
|
|
104
|
+
setSearchState("");
|
|
105
|
+
const current = state.current;
|
|
106
|
+
const cleared = Object.fromEntries(
|
|
107
|
+
Object.keys(current.filters).map((key) => [key, null])
|
|
108
|
+
);
|
|
109
|
+
visit({ ...cleared, [current.pageKey]: null });
|
|
110
|
+
}, [cancelPendingSearch, visit]);
|
|
111
|
+
const setPage = useCallback(
|
|
112
|
+
(pageIndex) => {
|
|
113
|
+
visit({
|
|
114
|
+
[state.current.pageKey]: pageIndex > 0 ? pageIndex + 1 : null
|
|
115
|
+
});
|
|
116
|
+
},
|
|
117
|
+
[visit]
|
|
118
|
+
);
|
|
119
|
+
const apply = useCallback(
|
|
120
|
+
(changes) => {
|
|
121
|
+
cancelPendingSearch();
|
|
122
|
+
visit({ ...changes, [state.current.pageKey]: null });
|
|
123
|
+
},
|
|
124
|
+
[cancelPendingSearch, visit]
|
|
125
|
+
);
|
|
126
|
+
return {
|
|
127
|
+
search,
|
|
128
|
+
setSearch,
|
|
129
|
+
filterValues: toFilterValues(filters, [searchKey, pageKey]),
|
|
130
|
+
setFilter,
|
|
131
|
+
clearFilters,
|
|
132
|
+
setPage,
|
|
133
|
+
apply
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
}
|
|
7
137
|
|
|
8
138
|
// src/inertia-tour-progress.ts
|
|
9
139
|
function xsrfToken() {
|
|
@@ -31,6 +161,7 @@ function recordTourProgress(url, progress) {
|
|
|
31
161
|
|
|
32
162
|
// src/inertia.ts
|
|
33
163
|
var InertiaLink = Link;
|
|
164
|
+
var useTableFilters = createTableFiltersHook(router);
|
|
34
165
|
function useCurrentUrl() {
|
|
35
166
|
return usePage().url;
|
|
36
167
|
}
|
|
@@ -81,6 +212,6 @@ function InertiaTourProvider({
|
|
|
81
212
|
});
|
|
82
213
|
}
|
|
83
214
|
|
|
84
|
-
export { AppSidebar2 as AppSidebar, AppSidebarHeader2 as AppSidebarHeader, Breadcrumbs2 as Breadcrumbs, InertiaLink, InertiaTourProvider, NavMain2 as NavMain, SettingsLayout2 as SettingsLayout, useCurrentUrl };
|
|
215
|
+
export { AppSidebar2 as AppSidebar, AppSidebarHeader2 as AppSidebarHeader, Breadcrumbs2 as Breadcrumbs, InertiaLink, InertiaTourProvider, NavMain2 as NavMain, SettingsLayout2 as SettingsLayout, useCurrentUrl, useTableFilters };
|
|
85
216
|
//# sourceMappingURL=inertia.js.map
|
|
86
217
|
//# sourceMappingURL=inertia.js.map
|
package/dist/inertia.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/inertia-tour-progress.ts","../src/inertia.ts"],"names":["AppSidebar","AppSidebarHeader","Breadcrumbs","NavMain","SettingsLayout"],"mappings":";;;;;;;;AAEO,SAAS,SAAA,GAAoB;AAChC,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,MAAA,CACnB,KAAA,CAAM,IAAI,CAAA,CACV,IAAA,CAAK,CAAC,KAAA,KAAU,KAAA,CAAM,UAAA,CAAW,aAAa,CAAC,CAAA;AAEpD,EAAA,OAAO,SAAS,kBAAA,CAAmB,MAAA,CAAO,MAAM,aAAA,CAAc,MAAM,CAAC,CAAA,GAAI,EAAA;AAC7E;AAEO,SAAS,kBAAA,CAAmB,KAAa,QAAA,EAA8B;AAC1E,EAAA,KAAK,MAAM,GAAA,EAAK;AAAA,IACZ,MAAA,EAAQ,MAAA;AAAA,IACR,WAAA,EAAa,aAAA;AAAA,IACb,SAAA,EAAW,IAAA;AAAA,IACX,OAAA,EAAS;AAAA,MACL,cAAA,EAAgB,kBAAA;AAAA,MAChB,MAAA,EAAQ,kBAAA;AAAA,MACR,kBAAA,EAAoB,gBAAA;AAAA,MACpB,gBAAgB,SAAA;AAAU,KAC9B;AAAA,IACA,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,MACjB,SAAS,QAAA,CAAS,OAAA;AAAA,MAClB,WAAW,QAAA,CAAS,QAAA;AAAA,MACpB,SAAS,QAAA,CAAS;AAAA,KACrB;AAAA,GACJ,CAAA;AACL;;;ACCO,IAAM,WAAA,GAAc;AAEpB,SAAS,aAAA,GAAwB;AACpC,EAAA,OAAO,SAAQ,CAAE,GAAA;AACrB;AAEO,SAASA,YAAW,KAAA,EAUV;AACb,EAAA,OAAO,cAAc,UAAA,EAAgB;AAAA,IACjC,GAAG,KAAA;AAAA,IACH,UAAA,EAAY,SAAQ,CAAE,GAAA;AAAA,IACtB,aAAA,EAAe;AAAA,GAClB,CAAA;AACL;AAEO,SAASC,kBAAiB,KAAA,EAIhB;AACb,EAAA,OAAO,cAAc,gBAAA,EAAsB;AAAA,IACvC,GAAG,KAAA;AAAA,IACH,aAAA,EAAe;AAAA,GAClB,CAAA;AACL;AAEO,SAASC,aAAY,KAAA,EAEX;AACb,EAAA,OAAO,cAAc,WAAA,EAAiB;AAAA,IAClC,GAAG,KAAA;AAAA,IACH,aAAA,EAAe;AAAA,GAClB,CAAA;AACL;AAEO,SAASC,SAAQ,KAAA,EAGP;AACb,EAAA,OAAO,cAAc,OAAA,EAAa;AAAA,IAC9B,GAAG,KAAA;AAAA,IACH,UAAA,EAAY,SAAQ,CAAE,GAAA;AAAA,IACtB,aAAA,EAAe;AAAA,GAClB,CAAA;AACL;AAEO,SAASC,gBACZ,KAAA,EAMY;AACZ,EAAA,OAAO,cAAc,cAAA,EAAoB;AAAA,IACrC,GAAG,KAAA;AAAA,IACH,WAAA,EAAa,SAAQ,CAAE,GAAA;AAAA,IACvB,aAAA,EAAe;AAAA,GAClB,CAAA;AACL;AAEO,SAAS,mBAAA,CAAoB;AAAA,EAChC,QAAA;AAAA,EACA,WAAA;AAAA,EACA;AACJ,CAAA,EAGkB;AACd,EAAA,MAAM,IAAA,GAAQ,OAAA,EAAQ,CAAE,KAAA,CAAM,SAAS,EAAC;AAExC,EAAA,OAAO,cAAc,YAAA,EAAkB;AAAA,IACnC,IAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA,EAAY,CAAC,QAAA,KACT,kBAAA,CAAmB,YAAY,QAAA,CAAS,IAAI,GAAG,QAAQ;AAAA,GAC9D,CAAA;AACL","file":"inertia.js","sourcesContent":["import type { TourProgress } from '@/blocks/tour';\n\nexport function xsrfToken(): string {\n const cookie = document.cookie\n .split('; ')\n .find((entry) => entry.startsWith('XSRF-TOKEN='));\n\n return cookie ? decodeURIComponent(cookie.slice('XSRF-TOKEN='.length)) : '';\n}\n\nexport function recordTourProgress(url: string, progress: TourProgress): void {\n void fetch(url, {\n method: 'POST',\n credentials: 'same-origin',\n keepalive: true,\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': xsrfToken(),\n },\n body: JSON.stringify({\n version: progress.version,\n last_step: progress.lastStep,\n outcome: progress.outcome,\n }),\n });\n}\n","import { Link, usePage } from '@inertiajs/react';\nimport {\n createElement,\n type PropsWithChildren,\n type ReactElement,\n type ReactNode,\n} from 'react';\n\nimport {\n TourProvider as BaseTourProvider,\n type TourLabels,\n type TourProgress,\n} from '@/blocks/tour';\nimport { recordTourProgress } from '@/inertia-tour-progress';\nimport { AppSidebar as BaseAppSidebar } from '@/shells/app-sidebar';\nimport { AppSidebarHeader as BaseAppSidebarHeader } from '@/shells/app-sidebar-header';\nimport { Breadcrumbs as BaseBreadcrumbs } from '@/shells/breadcrumbs';\nimport { NavMain as BaseNavMain } from '@/shells/nav-main';\nimport { SettingsLayout as BaseSettingsLayout } from '@/shells/settings-layout';\nimport type {\n BreadcrumbItem,\n LinkComponent,\n NavGroup,\n NavItem,\n SharedUser,\n UrlLike,\n} from '@/types';\n\nexport const InertiaLink = Link as unknown as LinkComponent;\n\nexport function useCurrentUrl(): string {\n return usePage().url;\n}\n\nexport function AppSidebar(props: {\n logo: ReactNode;\n logoHref: UrlLike;\n groups: NavGroup[];\n footerItems?: NavItem[];\n user: SharedUser;\n settingsHref: UrlLike;\n logoutHref: UrlLike;\n onSettingsClick?: () => void;\n onLogout?: () => void;\n}): ReactElement {\n return createElement(BaseAppSidebar, {\n ...props,\n currentUrl: usePage().url,\n linkComponent: InertiaLink,\n });\n}\n\nexport function AppSidebarHeader(props: {\n breadcrumbs?: BreadcrumbItem[];\n onSearchClick?: () => void;\n searchLabel?: string;\n}): ReactElement {\n return createElement(BaseAppSidebarHeader, {\n ...props,\n linkComponent: InertiaLink,\n });\n}\n\nexport function Breadcrumbs(props: {\n breadcrumbs: BreadcrumbItem[];\n}): ReactElement {\n return createElement(BaseBreadcrumbs, {\n ...props,\n linkComponent: InertiaLink,\n });\n}\n\nexport function NavMain(props: {\n items: NavItem[];\n label?: string;\n}): ReactElement {\n return createElement(BaseNavMain, {\n ...props,\n currentUrl: usePage().url,\n linkComponent: InertiaLink,\n });\n}\n\nexport function SettingsLayout(\n props: PropsWithChildren<{\n items: NavItem[];\n title?: string;\n description?: string;\n wide?: boolean;\n }>,\n): ReactElement {\n return createElement(BaseSettingsLayout, {\n ...props,\n currentPath: usePage().url,\n linkComponent: InertiaLink,\n });\n}\n\nexport function InertiaTourProvider({\n children,\n progressUrl,\n labels,\n}: PropsWithChildren<{\n progressUrl: (tour: string) => string;\n labels?: Partial<TourLabels>;\n}>): ReactElement {\n const seen = (usePage().props.tours ?? {}) as Record<string, number>;\n\n return createElement(BaseTourProvider, {\n seen,\n labels,\n children,\n onProgress: (progress: TourProgress) =>\n recordTourProgress(progressUrl(progress.tour), progress),\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/inertia-table-filters.ts","../src/inertia-tour-progress.ts","../src/inertia.ts"],"names":["router","useTableFilters","AppSidebar","AppSidebarHeader","Breadcrumbs","NavMain","SettingsLayout"],"mappings":"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","file":"inertia.js","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nexport type TableFilterValue = string | string[] | number | null | undefined;\n\nexport type TableFilterQuery = Record<string, string | string[]>;\n\nexport interface TableFiltersVisitOptions {\n data: TableFilterQuery;\n only?: string[];\n preserveState: boolean;\n preserveScroll: boolean;\n replace: boolean;\n onCancelToken: (token: { cancel: () => void }) => void;\n}\n\nexport interface TableFiltersRouter {\n visit: (url: string, options: TableFiltersVisitOptions) => void;\n}\n\nexport interface TableFiltersOptions {\n url: string;\n filters: Record<string, TableFilterValue>;\n only?: string[];\n searchKey?: string;\n pageKey?: string;\n debounce?: number;\n}\n\nexport interface TableFilters {\n search: string;\n setSearch: (value: string) => void;\n filterValues: Record<string, string[]>;\n setFilter: (key: string, values: string[]) => void;\n clearFilters: () => void;\n setPage: (pageIndex: number) => void;\n apply: (changes: Record<string, TableFilterValue>) => void;\n}\n\nexport type UseTableFilters = (options: TableFiltersOptions) => TableFilters;\n\nconst DEFAULT_DEBOUNCE = 300;\n\nexport function toQuery(\n filters: Record<string, TableFilterValue>,\n): TableFilterQuery {\n const query: TableFilterQuery = {};\n\n for (const [key, value] of Object.entries(filters)) {\n if (Array.isArray(value)) {\n const values = value.filter((entry) => entry !== '');\n\n if (values.length > 0) {\n query[key] = values;\n }\n\n continue;\n }\n\n if (value === null || value === undefined || value === '') {\n continue;\n }\n\n query[key] = String(value);\n }\n\n return query;\n}\n\nexport function toFilterValues(\n filters: Record<string, TableFilterValue>,\n exclude: string[] = [],\n): Record<string, string[]> {\n const values: Record<string, string[]> = {};\n\n for (const [key, value] of Object.entries(toQuery(filters))) {\n if (exclude.includes(key)) {\n continue;\n }\n\n values[key] = Array.isArray(value) ? value : [value];\n }\n\n return values;\n}\n\nexport function createTableFiltersHook(\n router: TableFiltersRouter,\n): UseTableFilters {\n return function useTableFilters({\n url,\n filters,\n only,\n searchKey = 'search',\n pageKey = 'page',\n debounce = DEFAULT_DEBOUNCE,\n }: TableFiltersOptions): TableFilters {\n const initialSearch = filters[searchKey];\n const [search, setSearchState] = useState(\n typeof initialSearch === 'string' ? initialSearch : '',\n );\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const pending = useRef<{ cancel: () => void } | null>(null);\n const state = useRef({ url, filters, only, searchKey, pageKey });\n\n state.current = { url, filters, only, searchKey, pageKey };\n\n const visit = useCallback(\n (changes: Record<string, TableFilterValue>) => {\n const current = state.current;\n\n pending.current?.cancel();\n\n router.visit(current.url, {\n data: toQuery({ ...current.filters, ...changes }),\n only: current.only,\n preserveState: true,\n preserveScroll: true,\n replace: true,\n onCancelToken: (token) => {\n pending.current = token;\n },\n });\n },\n [],\n );\n\n const cancelPendingSearch = useCallback(() => {\n if (timer.current !== null) {\n clearTimeout(timer.current);\n timer.current = null;\n }\n }, []);\n\n useEffect(() => cancelPendingSearch, [cancelPendingSearch]);\n\n const setSearch = useCallback(\n (value: string) => {\n setSearchState(value);\n cancelPendingSearch();\n\n timer.current = setTimeout(() => {\n timer.current = null;\n visit({\n [state.current.searchKey]: value,\n [state.current.pageKey]: null,\n });\n }, debounce);\n },\n [cancelPendingSearch, debounce, visit],\n );\n\n const setFilter = useCallback(\n (key: string, values: string[]) => {\n cancelPendingSearch();\n visit({ [key]: values, [state.current.pageKey]: null });\n },\n [cancelPendingSearch, visit],\n );\n\n const clearFilters = useCallback(() => {\n cancelPendingSearch();\n setSearchState('');\n\n const current = state.current;\n const cleared = Object.fromEntries(\n Object.keys(current.filters).map((key) => [key, null]),\n );\n\n visit({ ...cleared, [current.pageKey]: null });\n }, [cancelPendingSearch, visit]);\n\n const setPage = useCallback(\n (pageIndex: number) => {\n visit({\n [state.current.pageKey]:\n pageIndex > 0 ? pageIndex + 1 : null,\n });\n },\n [visit],\n );\n\n const apply = useCallback(\n (changes: Record<string, TableFilterValue>) => {\n cancelPendingSearch();\n visit({ ...changes, [state.current.pageKey]: null });\n },\n [cancelPendingSearch, visit],\n );\n\n return {\n search,\n setSearch,\n filterValues: toFilterValues(filters, [searchKey, pageKey]),\n setFilter,\n clearFilters,\n setPage,\n apply,\n };\n };\n}\n","import type { TourProgress } from '@/blocks/tour';\n\nexport function xsrfToken(): string {\n const cookie = document.cookie\n .split('; ')\n .find((entry) => entry.startsWith('XSRF-TOKEN='));\n\n return cookie ? decodeURIComponent(cookie.slice('XSRF-TOKEN='.length)) : '';\n}\n\nexport function recordTourProgress(url: string, progress: TourProgress): void {\n void fetch(url, {\n method: 'POST',\n credentials: 'same-origin',\n keepalive: true,\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': xsrfToken(),\n },\n body: JSON.stringify({\n version: progress.version,\n last_step: progress.lastStep,\n outcome: progress.outcome,\n }),\n });\n}\n","import { Link, router, usePage } from '@inertiajs/react';\nimport {\n createElement,\n type PropsWithChildren,\n type ReactElement,\n type ReactNode,\n} from 'react';\n\nimport {\n TourProvider as BaseTourProvider,\n type TourLabels,\n type TourProgress,\n} from '@/blocks/tour';\nimport {\n createTableFiltersHook,\n type TableFilters,\n type TableFiltersOptions,\n type TableFiltersRouter,\n type TableFilterValue,\n} from '@/inertia-table-filters';\nimport { recordTourProgress } from '@/inertia-tour-progress';\nimport { AppSidebar as BaseAppSidebar } from '@/shells/app-sidebar';\nimport { AppSidebarHeader as BaseAppSidebarHeader } from '@/shells/app-sidebar-header';\nimport { Breadcrumbs as BaseBreadcrumbs } from '@/shells/breadcrumbs';\nimport { NavMain as BaseNavMain } from '@/shells/nav-main';\nimport { SettingsLayout as BaseSettingsLayout } from '@/shells/settings-layout';\nimport type {\n BreadcrumbItem,\n LinkComponent,\n NavGroup,\n NavItem,\n SharedUser,\n UrlLike,\n} from '@/types';\n\nexport const InertiaLink = Link as unknown as LinkComponent;\n\nexport type {\n TableFilters,\n TableFiltersOptions,\n TableFiltersRouter,\n TableFilterValue,\n};\n\nexport const useTableFilters = createTableFiltersHook(router);\n\nexport function useCurrentUrl(): string {\n return usePage().url;\n}\n\nexport function AppSidebar(props: {\n logo: ReactNode;\n logoHref: UrlLike;\n groups: NavGroup[];\n footerItems?: NavItem[];\n user: SharedUser;\n settingsHref: UrlLike;\n logoutHref: UrlLike;\n collapsibleGroups?: boolean;\n collapsedGroups?: string[];\n onCollapsedChange?: (collapsedGroups: string[]) => void;\n onSettingsClick?: () => void;\n onLogout?: () => void;\n}): ReactElement {\n return createElement(BaseAppSidebar, {\n ...props,\n currentUrl: usePage().url,\n linkComponent: InertiaLink,\n });\n}\n\nexport function AppSidebarHeader(props: {\n breadcrumbs?: BreadcrumbItem[];\n onSearchClick?: () => void;\n searchLabel?: string;\n}): ReactElement {\n return createElement(BaseAppSidebarHeader, {\n ...props,\n linkComponent: InertiaLink,\n });\n}\n\nexport function Breadcrumbs(props: {\n breadcrumbs: BreadcrumbItem[];\n}): ReactElement {\n return createElement(BaseBreadcrumbs, {\n ...props,\n linkComponent: InertiaLink,\n });\n}\n\nexport function NavMain(props: {\n items: NavItem[];\n label?: string;\n collapsible?: boolean;\n defaultOpen?: boolean;\n collapsedGroups?: string[];\n onCollapsedChange?: (collapsedGroups: string[]) => void;\n}): ReactElement {\n return createElement(BaseNavMain, {\n ...props,\n currentUrl: usePage().url,\n linkComponent: InertiaLink,\n });\n}\n\nexport function SettingsLayout(\n props: PropsWithChildren<{\n items: NavItem[];\n title?: string;\n description?: string;\n wide?: boolean;\n }>,\n): ReactElement {\n return createElement(BaseSettingsLayout, {\n ...props,\n currentPath: usePage().url,\n linkComponent: InertiaLink,\n });\n}\n\nexport function InertiaTourProvider({\n children,\n progressUrl,\n labels,\n}: PropsWithChildren<{\n progressUrl: (tour: string) => string;\n labels?: Partial<TourLabels>;\n}>): ReactElement {\n const seen = (usePage().props.tours ?? {}) as Record<string, number>;\n\n return createElement(BaseTourProvider, {\n seen,\n labels,\n children,\n onProgress: (progress: TourProgress) =>\n recordTourProgress(progressUrl(progress.tour), progress),\n });\n}\n"]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { S as SlotNameProps } from './types-cmBL8zOc.js';
|
|
3
|
+
|
|
4
|
+
interface CodeBlockLabels {
|
|
5
|
+
copyLabel: string;
|
|
6
|
+
copiedLabel: string;
|
|
7
|
+
expandLabel: string;
|
|
8
|
+
collapseLabel: string;
|
|
9
|
+
}
|
|
10
|
+
declare const codeBlockLabels: CodeBlockLabels;
|
|
11
|
+
interface CodeBlockProps extends Omit<React.ComponentProps<'div'>, 'children'> {
|
|
12
|
+
code: string;
|
|
13
|
+
language?: string;
|
|
14
|
+
html?: string;
|
|
15
|
+
filename?: string;
|
|
16
|
+
lineNumbers?: boolean;
|
|
17
|
+
highlightLines?: string | number[];
|
|
18
|
+
maxHeight?: number | string;
|
|
19
|
+
copyLabel?: CodeBlockLabels['copyLabel'];
|
|
20
|
+
copiedLabel?: CodeBlockLabels['copiedLabel'];
|
|
21
|
+
expandLabel?: CodeBlockLabels['expandLabel'];
|
|
22
|
+
collapseLabel?: CodeBlockLabels['collapseLabel'];
|
|
23
|
+
}
|
|
24
|
+
declare function CodeBlock({ code, language, html, filename, lineNumbers, highlightLines, maxHeight, copyLabel, copiedLabel, expandLabel, collapseLabel, className, slotName, ...props }: CodeBlockProps & SlotNameProps): React.JSX.Element;
|
|
25
|
+
|
|
26
|
+
interface JsonNodeLabels {
|
|
27
|
+
expandLabel: string;
|
|
28
|
+
collapseLabel: string;
|
|
29
|
+
circularLabel: string;
|
|
30
|
+
entriesLabel: (count: number) => string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
interface JsonViewerLabels extends JsonNodeLabels {
|
|
34
|
+
copyLabel: string;
|
|
35
|
+
copiedLabel: string;
|
|
36
|
+
}
|
|
37
|
+
declare const jsonViewerLabels: JsonViewerLabels;
|
|
38
|
+
interface JsonViewerProps extends Omit<React.ComponentProps<'div'>, 'children'> {
|
|
39
|
+
value: unknown;
|
|
40
|
+
initialDepth?: number;
|
|
41
|
+
maxHeight?: number | string;
|
|
42
|
+
copyLabel?: JsonViewerLabels['copyLabel'];
|
|
43
|
+
copiedLabel?: JsonViewerLabels['copiedLabel'];
|
|
44
|
+
expandLabel?: JsonViewerLabels['expandLabel'];
|
|
45
|
+
collapseLabel?: JsonViewerLabels['collapseLabel'];
|
|
46
|
+
circularLabel?: JsonViewerLabels['circularLabel'];
|
|
47
|
+
entriesLabel?: JsonViewerLabels['entriesLabel'];
|
|
48
|
+
}
|
|
49
|
+
declare function JsonViewer({ value, initialDepth, maxHeight, copyLabel, copiedLabel, expandLabel, collapseLabel, circularLabel, entriesLabel, className, slotName, ...props }: JsonViewerProps & SlotNameProps): React.JSX.Element;
|
|
50
|
+
|
|
51
|
+
export { CodeBlock as C, JsonViewer as J, type CodeBlockLabels as a, type CodeBlockProps as b, type JsonViewerLabels as c, type JsonViewerProps as d, codeBlockLabels as e, jsonViewerLabels as j };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
declare const elevatedSurface = "ring-1 ring-surface-ring backdrop-blur-2xl backdrop-saturate-150 rounded-3xl border-0 shadow-(--glass-elevation)";
|
|
2
|
-
declare const recessedSurface = "rounded-2xl border-0 bg-surface-recessed text-foreground shadow-none ring-0 backdrop-blur-none";
|
|
2
|
+
declare const recessedSurface = "rounded-2xl border-0 bg-surface-recessed/30 text-foreground shadow-none ring-0 backdrop-blur-none";
|
|
3
3
|
declare const nestedRadius = "rounded-2xl";
|
|
4
4
|
declare const nestedSurfaceReset = "nested-surface:border-0 nested-surface:ring-0 nested-surface:bg-transparent nested-surface:shadow-none nested-surface:backdrop-blur-none";
|
|
5
5
|
declare const nestedEdgeToEdge = "nested-surface:rounded-none";
|
package/dist/locales/pt.d.ts
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as AppearanceToggleLabels, I as ComboboxLabels, aj as CommandPaletteLabels, M as ConfirmDialogLabels, C as CopyButtonLabels, Q as DataTableFacetedFilterLabels, T as DataTableLabels, a as DateFilterLabels, b as DateFilterOption, Y as DatePickerLabels, $ as DateRangeFilterLabels, F as FloatingSheetLabels, v as UiLabels, a5 as SaveStatusLabels, q as SettingsLabels } from '../context-YWbxMH0C.js';
|
|
2
|
+
import { e as DangerZoneLabels, a as FormOverlayLabels, i as TwoFactorLabels } from '../types-B-eGPoFD.js';
|
|
2
3
|
import { d as TourLabels } from '../types-u1qfmJQi.js';
|
|
3
|
-
import { a as
|
|
4
|
+
import { a as CodeBlockLabels, c as JsonViewerLabels } from '../json-viewer-BARA2RCW.js';
|
|
5
|
+
import { f as FieldLabels, h as PasswordInputLabels } from '../password-input-DcXX7SG9.js';
|
|
4
6
|
import 'react';
|
|
5
7
|
import 'lucide-react';
|
|
8
|
+
import '../types-cmBL8zOc.js';
|
|
6
9
|
import '@tanstack/react-table';
|
|
7
|
-
import '../
|
|
10
|
+
import '../button-Bj6My68b.js';
|
|
11
|
+
import 'class-variance-authority/types';
|
|
12
|
+
import 'class-variance-authority';
|
|
13
|
+
import '@radix-ui/react-slot';
|
|
14
|
+
import '@radix-ui/react-label';
|
|
15
|
+
import '../input-Dpi7pXeR.js';
|
|
8
16
|
|
|
17
|
+
declare const appearanceToggleLabelsPt: AppearanceToggleLabels;
|
|
9
18
|
declare const dataTableLabelsPt: DataTableLabels;
|
|
19
|
+
declare const floatingSheetLabelsPt: FloatingSheetLabels;
|
|
20
|
+
declare const formOverlayLabelsPt: FormOverlayLabels;
|
|
10
21
|
declare const dateRangeFilterLabelsPt: DateRangeFilterLabels;
|
|
22
|
+
declare const datePickerLabelsPt: DatePickerLabels;
|
|
11
23
|
declare const comboboxLabelsPt: ComboboxLabels;
|
|
12
24
|
declare const confirmDialogLabelsPt: ConfirmDialogLabels;
|
|
25
|
+
declare const fieldLabelsPt: FieldLabels;
|
|
26
|
+
declare const passwordInputLabelsPt: PasswordInputLabels;
|
|
13
27
|
declare const dataTableFacetedFilterLabelsPt: DataTableFacetedFilterLabels;
|
|
14
28
|
declare const commandPaletteLabelsPt: CommandPaletteLabels;
|
|
15
29
|
declare const tourLabelsPt: TourLabels;
|
|
@@ -17,5 +31,13 @@ declare const dateFilterPresetsPt: DateFilterOption[];
|
|
|
17
31
|
declare const dateFilterOperatorsPt: DateFilterOption[];
|
|
18
32
|
declare const dateFilterUnitsPt: DateFilterOption[];
|
|
19
33
|
declare const dateFilterLabelsPt: DateFilterLabels;
|
|
34
|
+
declare const settingsLabelsPt: SettingsLabels;
|
|
35
|
+
declare const saveStatusLabelsPt: SaveStatusLabels;
|
|
36
|
+
declare const copyButtonLabelsPt: CopyButtonLabels;
|
|
37
|
+
declare const twoFactorLabelsPt: TwoFactorLabels;
|
|
38
|
+
declare const dangerZoneLabelsPt: DangerZoneLabels;
|
|
39
|
+
declare const codeBlockLabelsPt: CodeBlockLabels;
|
|
40
|
+
declare const jsonViewerLabelsPt: JsonViewerLabels;
|
|
41
|
+
declare const ptLabels: UiLabels;
|
|
20
42
|
|
|
21
|
-
export { comboboxLabelsPt, commandPaletteLabelsPt, confirmDialogLabelsPt, dataTableFacetedFilterLabelsPt, dataTableLabelsPt, dateFilterLabelsPt, dateFilterOperatorsPt, dateFilterPresetsPt, dateFilterUnitsPt, dateRangeFilterLabelsPt, tourLabelsPt };
|
|
43
|
+
export { appearanceToggleLabelsPt, codeBlockLabelsPt, comboboxLabelsPt, commandPaletteLabelsPt, confirmDialogLabelsPt, copyButtonLabelsPt, dangerZoneLabelsPt, dataTableFacetedFilterLabelsPt, dataTableLabelsPt, dateFilterLabelsPt, dateFilterOperatorsPt, dateFilterPresetsPt, dateFilterUnitsPt, datePickerLabelsPt, dateRangeFilterLabelsPt, fieldLabelsPt, floatingSheetLabelsPt, formOverlayLabelsPt, jsonViewerLabelsPt, passwordInputLabelsPt, ptLabels, saveStatusLabelsPt, settingsLabelsPt, tourLabelsPt, twoFactorLabelsPt };
|
package/dist/locales/pt.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
// src/locales/pt.ts
|
|
2
|
+
var appearanceToggleLabelsPt = {
|
|
3
|
+
groupLabel: "Apar\xEAncia",
|
|
4
|
+
lightLabel: "Claro",
|
|
5
|
+
darkLabel: "Escuro",
|
|
6
|
+
systemLabel: "Sistema"
|
|
7
|
+
};
|
|
2
8
|
var dataTableLabelsPt = {
|
|
3
9
|
searchPlaceholder: "Pesquisar...",
|
|
4
10
|
emptyLabel: "Sem registos.",
|
|
@@ -8,10 +14,24 @@ var dataTableLabelsPt = {
|
|
|
8
14
|
noOptionsLabel: "Sem op\xE7\xF5es.",
|
|
9
15
|
totalLabel: (total) => `${total.toLocaleString("pt-PT")} registos`
|
|
10
16
|
};
|
|
17
|
+
var floatingSheetLabelsPt = {
|
|
18
|
+
backLabel: "Voltar",
|
|
19
|
+
closeLabel: "Fechar"
|
|
20
|
+
};
|
|
21
|
+
var formOverlayLabelsPt = {
|
|
22
|
+
cancelLabel: "Cancelar",
|
|
23
|
+
saveLabel: "Guardar",
|
|
24
|
+
savingLabel: "A guardar..."
|
|
25
|
+
};
|
|
11
26
|
var dateRangeFilterLabelsPt = {
|
|
12
27
|
emptyLabel: "Per\xEDodo",
|
|
13
28
|
dateFormat: "dd/MM/yy"
|
|
14
29
|
};
|
|
30
|
+
var datePickerLabelsPt = {
|
|
31
|
+
placeholder: "Escolha uma data",
|
|
32
|
+
dateFormat: "dd/MM/yy",
|
|
33
|
+
clearLabel: "Limpar data"
|
|
34
|
+
};
|
|
15
35
|
var comboboxLabelsPt = {
|
|
16
36
|
placeholder: "Seleccione uma op\xE7\xE3o",
|
|
17
37
|
searchPlaceholder: "Pesquisar...",
|
|
@@ -23,6 +43,13 @@ var confirmDialogLabelsPt = {
|
|
|
23
43
|
confirmText: "Confirmar",
|
|
24
44
|
cancelText: "Cancelar"
|
|
25
45
|
};
|
|
46
|
+
var fieldLabelsPt = {
|
|
47
|
+
requiredLabel: "Obrigat\xF3rio"
|
|
48
|
+
};
|
|
49
|
+
var passwordInputLabelsPt = {
|
|
50
|
+
showLabel: "Mostrar palavra-passe",
|
|
51
|
+
hideLabel: "Ocultar palavra-passe"
|
|
52
|
+
};
|
|
26
53
|
var dataTableFacetedFilterLabelsPt = {
|
|
27
54
|
noOptionsLabel: "Sem op\xE7\xF5es."
|
|
28
55
|
};
|
|
@@ -73,7 +100,106 @@ var dateFilterLabelsPt = {
|
|
|
73
100
|
removeOffset: "Remover deslocamento",
|
|
74
101
|
fallback: "Data"
|
|
75
102
|
};
|
|
103
|
+
var settingsLabelsPt = {
|
|
104
|
+
back: "Voltar"
|
|
105
|
+
};
|
|
106
|
+
var saveStatusLabelsPt = {
|
|
107
|
+
error: "N\xE3o foi poss\xEDvel guardar as altera\xE7\xF5es",
|
|
108
|
+
idle: "As altera\xE7\xF5es s\xE3o guardadas automaticamente",
|
|
109
|
+
saved: "Guardado",
|
|
110
|
+
saving: "A guardar"
|
|
111
|
+
};
|
|
112
|
+
var copyButtonLabelsPt = {
|
|
113
|
+
copyLabel: "Copiar",
|
|
114
|
+
copiedLabel: "Copiado"
|
|
115
|
+
};
|
|
116
|
+
var twoFactorLabelsPt = {
|
|
117
|
+
setupTitle: "Autentica\xE7\xE3o de dois fatores",
|
|
118
|
+
setupDescription: "Acrescente um segundo passo ao seu in\xEDcio de sess\xE3o com uma aplica\xE7\xE3o autenticadora.",
|
|
119
|
+
pendingLabel: "A preparar a sua chave de configura\xE7\xE3o",
|
|
120
|
+
scanTitle: "Leia o c\xF3digo",
|
|
121
|
+
scanDescription: "Abra a aplica\xE7\xE3o autenticadora e leia o c\xF3digo abaixo para adicionar esta conta.",
|
|
122
|
+
qrFallbackLabel: "O c\xF3digo QR ainda n\xE3o est\xE1 dispon\xEDvel.",
|
|
123
|
+
manualKeyLabel: "Chave de configura\xE7\xE3o",
|
|
124
|
+
manualKeyDescription: "Introduza esta chave manualmente se a aplica\xE7\xE3o n\xE3o conseguir ler o c\xF3digo.",
|
|
125
|
+
manualKeyRevealLabel: "Mostrar chave",
|
|
126
|
+
manualKeyHideLabel: "Ocultar chave",
|
|
127
|
+
continueLabel: "Continuar",
|
|
128
|
+
confirmTitle: "Confirme o c\xF3digo",
|
|
129
|
+
confirmDescription: "Introduza o c\xF3digo de seis d\xEDgitos apresentado na aplica\xE7\xE3o autenticadora.",
|
|
130
|
+
codeLabel: "C\xF3digo de autentica\xE7\xE3o",
|
|
131
|
+
recoveryCodeLabel: "C\xF3digo de recupera\xE7\xE3o",
|
|
132
|
+
recoveryCodePlaceholder: "Introduza um c\xF3digo de recupera\xE7\xE3o",
|
|
133
|
+
useRecoveryCodeLabel: "Usar um c\xF3digo de recupera\xE7\xE3o",
|
|
134
|
+
useCodeLabel: "Usar um c\xF3digo de autentica\xE7\xE3o",
|
|
135
|
+
verifyLabel: "Verificar",
|
|
136
|
+
verifyingLabel: "A verificar",
|
|
137
|
+
errorFallbackLabel: "N\xE3o resultou. Tente novamente.",
|
|
138
|
+
cancelLabel: "Cancelar",
|
|
139
|
+
challengeTitle: "Confirma\xE7\xE3o em dois passos",
|
|
140
|
+
challengeDescription: "Confirme o acesso \xE0 sua conta com o c\xF3digo da aplica\xE7\xE3o autenticadora.",
|
|
141
|
+
recoveryTitle: "C\xF3digos de recupera\xE7\xE3o",
|
|
142
|
+
recoveryDescription: "Guarde estes c\xF3digos em lugar seguro. Cada um permite um in\xEDcio de sess\xE3o se perder o dispositivo.",
|
|
143
|
+
recoveryWarning: "S\xE3o mostrados uma \xFAnica vez e n\xE3o podem ser lidos depois.",
|
|
144
|
+
revealLabel: "Mostrar c\xF3digos",
|
|
145
|
+
hideLabel: "Ocultar c\xF3digos",
|
|
146
|
+
copyLabel: "Copiar",
|
|
147
|
+
copiedLabel: "Copiado",
|
|
148
|
+
copyFailedLabel: "N\xE3o \xE9 poss\xEDvel copiar aqui. Selecione os c\xF3digos manualmente.",
|
|
149
|
+
regenerateLabel: "Gerar novos c\xF3digos",
|
|
150
|
+
doneLabel: "Concluir",
|
|
151
|
+
disableLabel: "Desativar autentica\xE7\xE3o de dois fatores",
|
|
152
|
+
disableTitle: "Desativar autentica\xE7\xE3o de dois fatores",
|
|
153
|
+
disableDescription: "A sua conta fica protegida apenas pela palavra-passe. Os c\xF3digos de recupera\xE7\xE3o deixam de funcionar.",
|
|
154
|
+
disableConfirmLabel: "Desativar",
|
|
155
|
+
disableCancelLabel: "Manter ativa"
|
|
156
|
+
};
|
|
157
|
+
var dangerZoneLabelsPt = {
|
|
158
|
+
title: "Zona de perigo",
|
|
159
|
+
description: "Estas a\xE7\xF5es s\xE3o permanentes e n\xE3o podem ser desfeitas.",
|
|
160
|
+
actionLabel: "Eliminar",
|
|
161
|
+
confirmTitle: "Confirmar A\xE7\xE3o",
|
|
162
|
+
confirmDescription: "Tem a certeza que pretende continuar? Esta a\xE7\xE3o n\xE3o pode ser desfeita.",
|
|
163
|
+
confirmText: "Confirmar",
|
|
164
|
+
cancelText: "Cancelar",
|
|
165
|
+
requiredValueLabel: "Escreva {{value}} para confirmar"
|
|
166
|
+
};
|
|
167
|
+
var codeBlockLabelsPt = {
|
|
168
|
+
copyLabel: "Copiar",
|
|
169
|
+
copiedLabel: "Copiado",
|
|
170
|
+
expandLabel: "Expandir",
|
|
171
|
+
collapseLabel: "Recolher"
|
|
172
|
+
};
|
|
173
|
+
var jsonViewerLabelsPt = {
|
|
174
|
+
copyLabel: "Copiar",
|
|
175
|
+
copiedLabel: "Copiado",
|
|
176
|
+
expandLabel: "Expandir",
|
|
177
|
+
collapseLabel: "Recolher",
|
|
178
|
+
circularLabel: "Refer\xEAncia circular",
|
|
179
|
+
entriesLabel: (count) => `${count} ${count === 1 ? "entrada" : "entradas"}`
|
|
180
|
+
};
|
|
181
|
+
var ptLabels = {
|
|
182
|
+
codeBlock: codeBlockLabelsPt,
|
|
183
|
+
combobox: comboboxLabelsPt,
|
|
184
|
+
commandPalette: commandPaletteLabelsPt,
|
|
185
|
+
confirmDialog: confirmDialogLabelsPt,
|
|
186
|
+
appearanceToggle: appearanceToggleLabelsPt,
|
|
187
|
+
copyButton: copyButtonLabelsPt,
|
|
188
|
+
dataTable: dataTableLabelsPt,
|
|
189
|
+
dataTableFacetedFilter: dataTableFacetedFilterLabelsPt,
|
|
190
|
+
dateFilter: dateFilterLabelsPt,
|
|
191
|
+
dateFilterOperators: dateFilterOperatorsPt,
|
|
192
|
+
dateFilterPresets: dateFilterPresetsPt,
|
|
193
|
+
dateFilterUnits: dateFilterUnitsPt,
|
|
194
|
+
datePicker: datePickerLabelsPt,
|
|
195
|
+
dateRangeFilter: dateRangeFilterLabelsPt,
|
|
196
|
+
floatingSheet: floatingSheetLabelsPt,
|
|
197
|
+
jsonViewer: jsonViewerLabelsPt,
|
|
198
|
+
saveStatus: saveStatusLabelsPt,
|
|
199
|
+
settings: settingsLabelsPt,
|
|
200
|
+
tour: tourLabelsPt
|
|
201
|
+
};
|
|
76
202
|
|
|
77
|
-
export { comboboxLabelsPt, commandPaletteLabelsPt, confirmDialogLabelsPt, dataTableFacetedFilterLabelsPt, dataTableLabelsPt, dateFilterLabelsPt, dateFilterOperatorsPt, dateFilterPresetsPt, dateFilterUnitsPt, dateRangeFilterLabelsPt, tourLabelsPt };
|
|
203
|
+
export { appearanceToggleLabelsPt, codeBlockLabelsPt, comboboxLabelsPt, commandPaletteLabelsPt, confirmDialogLabelsPt, copyButtonLabelsPt, dangerZoneLabelsPt, dataTableFacetedFilterLabelsPt, dataTableLabelsPt, dateFilterLabelsPt, dateFilterOperatorsPt, dateFilterPresetsPt, dateFilterUnitsPt, datePickerLabelsPt, dateRangeFilterLabelsPt, fieldLabelsPt, floatingSheetLabelsPt, formOverlayLabelsPt, jsonViewerLabelsPt, passwordInputLabelsPt, ptLabels, saveStatusLabelsPt, settingsLabelsPt, tourLabelsPt, twoFactorLabelsPt };
|
|
78
204
|
//# sourceMappingURL=pt.js.map
|
|
79
205
|
//# sourceMappingURL=pt.js.map
|
package/dist/locales/pt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/locales/pt.ts"],"names":[],"mappings":"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","file":"pt.js","sourcesContent":["import type { CommandPaletteLabels } from '@/blocks/command-palette';\nimport type {\n DateFilterLabels,\n DateFilterOption,\n} from '@/blocks/date-filter/types';\nimport type { TourLabels } from '@/blocks/tour/types';\nimport type { ComboboxLabels } from '@/components/ui/combobox';\nimport type { ConfirmDialogLabels } from '@/components/ui/confirm-dialog';\nimport type { DataTableLabels } from '@/components/ui/data-table';\nimport type { DataTableFacetedFilterLabels } from '@/components/ui/data-table-faceted-filter';\nimport type { DateRangeFilterLabels } from '@/components/ui/date-range-filter';\n\nexport const dataTableLabelsPt: DataTableLabels = {\n searchPlaceholder: 'Pesquisar...',\n emptyLabel: 'Sem registos.',\n createLabel: 'Novo',\n clearFiltersLabel: 'Limpar filtros',\n paginationLabel: (page, pages) => `Página ${page} de ${pages}`,\n noOptionsLabel: 'Sem opções.',\n totalLabel: (total) => `${total.toLocaleString('pt-PT')} registos`,\n};\n\nexport const dateRangeFilterLabelsPt: DateRangeFilterLabels = {\n emptyLabel: 'Período',\n dateFormat: 'dd/MM/yy',\n};\n\nexport const comboboxLabelsPt: ComboboxLabels = {\n placeholder: 'Seleccione uma opção',\n searchPlaceholder: 'Pesquisar...',\n emptyText: 'Sem resultados.',\n};\n\nexport const confirmDialogLabelsPt: ConfirmDialogLabels = {\n title: 'Confirmar Ação',\n description:\n 'Tem a certeza que pretende continuar? Esta ação não pode ser desfeita.',\n confirmText: 'Confirmar',\n cancelText: 'Cancelar',\n};\n\nexport const dataTableFacetedFilterLabelsPt: DataTableFacetedFilterLabels = {\n noOptionsLabel: 'Sem opções.',\n};\n\nexport const commandPaletteLabelsPt: CommandPaletteLabels = {\n placeholder: 'Pesquisar...',\n noResultsLabel: 'Nenhum resultado encontrado',\n};\n\nexport const tourLabelsPt: TourLabels = {\n next: 'Seguinte',\n previous: 'Anterior',\n done: 'Concluir',\n progress: '{{current}} de {{total}}',\n};\n\nexport const dateFilterPresetsPt: DateFilterOption[] = [\n { value: 'today', label: 'Hoje' },\n { value: 'yesterday', label: 'Ontem' },\n { value: 'previous_week', label: 'Semana anterior' },\n { value: 'previous_7_days', label: 'Últimos 7 dias' },\n { value: 'previous_30_days', label: 'Últimos 30 dias' },\n { value: 'previous_month', label: 'Mês anterior' },\n { value: 'previous_3_months', label: 'Últimos 3 meses' },\n { value: 'previous_12_months', label: 'Últimos 12 meses' },\n];\n\nexport const dateFilterOperatorsPt: DateFilterOption[] = [\n { value: 'between', label: 'Entre' },\n { value: 'before', label: 'Antes de' },\n { value: 'on', label: 'Em' },\n { value: 'after', label: 'Depois de' },\n];\n\nexport const dateFilterUnitsPt: DateFilterOption[] = [\n { value: 'day', label: 'dias' },\n { value: 'week', label: 'semanas' },\n { value: 'month', label: 'meses' },\n { value: 'quarter', label: 'trimestres' },\n { value: 'year', label: 'anos' },\n];\n\nexport const dateFilterLabelsPt: DateFilterLabels = {\n all: 'Todo o período',\n fixed: 'Intervalo fixo...',\n relative: 'Intervalo relativo...',\n relativeTitle: 'Intervalo relativo',\n apply: 'Aplicar filtro',\n back: 'Voltar',\n latest: 'Últimos',\n ago: 'há',\n includeCurrent: 'Incluir período atual',\n startingAgo: 'A começar há',\n removeOffset: 'Remover deslocamento',\n fallback: 'Data',\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/locales/pt.ts"],"names":[],"mappings":"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","file":"pt.js","sourcesContent":["import type { CommandPaletteLabels } from '@/blocks/command-palette';\nimport type { DangerZoneLabels } from '@/blocks/danger-zone';\nimport type {\n DateFilterLabels,\n DateFilterOption,\n} from '@/blocks/date-filter/types';\nimport type { FormOverlayLabels } from '@/blocks/form-overlay';\nimport type { SettingsLabels } from '@/blocks/settings-page';\nimport type { TourLabels } from '@/blocks/tour/types';\nimport type { TwoFactorLabels } from '@/blocks/two-factor/types';\nimport type { AppearanceToggleLabels } from '@/components/ui/appearance-toggle';\nimport type { CodeBlockLabels } from '@/components/ui/code-block';\nimport type { ComboboxLabels } from '@/components/ui/combobox';\nimport type { ConfirmDialogLabels } from '@/components/ui/confirm-dialog';\nimport type { CopyButtonLabels } from '@/components/ui/copy-button';\nimport type { DataTableLabels } from '@/components/ui/data-table';\nimport type { DataTableFacetedFilterLabels } from '@/components/ui/data-table-faceted-filter';\nimport type { DatePickerLabels } from '@/components/ui/date-picker';\nimport type { DateRangeFilterLabels } from '@/components/ui/date-range-filter';\nimport type { FieldLabels } from '@/components/ui/field';\nimport type { FloatingSheetLabels } from '@/components/ui/floating-sheet';\nimport type { JsonViewerLabels } from '@/components/ui/json-viewer';\nimport type { PasswordInputLabels } from '@/components/ui/password-input';\nimport type { SaveStatusLabels } from '@/components/ui/save-status';\nimport type { UiLabels } from '@/locales/context';\n\nexport const appearanceToggleLabelsPt: AppearanceToggleLabels = {\n groupLabel: 'Aparência',\n lightLabel: 'Claro',\n darkLabel: 'Escuro',\n systemLabel: 'Sistema',\n};\n\nexport const dataTableLabelsPt: DataTableLabels = {\n searchPlaceholder: 'Pesquisar...',\n emptyLabel: 'Sem registos.',\n createLabel: 'Novo',\n clearFiltersLabel: 'Limpar filtros',\n paginationLabel: (page, pages) => `Página ${page} de ${pages}`,\n noOptionsLabel: 'Sem opções.',\n totalLabel: (total) => `${total.toLocaleString('pt-PT')} registos`,\n};\n\nexport const floatingSheetLabelsPt: FloatingSheetLabels = {\n backLabel: 'Voltar',\n closeLabel: 'Fechar',\n};\n\nexport const formOverlayLabelsPt: FormOverlayLabels = {\n cancelLabel: 'Cancelar',\n saveLabel: 'Guardar',\n savingLabel: 'A guardar...',\n};\n\nexport const dateRangeFilterLabelsPt: DateRangeFilterLabels = {\n emptyLabel: 'Período',\n dateFormat: 'dd/MM/yy',\n};\n\nexport const datePickerLabelsPt: DatePickerLabels = {\n placeholder: 'Escolha uma data',\n dateFormat: 'dd/MM/yy',\n clearLabel: 'Limpar data',\n};\n\nexport const comboboxLabelsPt: ComboboxLabels = {\n placeholder: 'Seleccione uma opção',\n searchPlaceholder: 'Pesquisar...',\n emptyText: 'Sem resultados.',\n};\n\nexport const confirmDialogLabelsPt: ConfirmDialogLabels = {\n title: 'Confirmar Ação',\n description:\n 'Tem a certeza que pretende continuar? Esta ação não pode ser desfeita.',\n confirmText: 'Confirmar',\n cancelText: 'Cancelar',\n};\n\nexport const fieldLabelsPt: FieldLabels = {\n requiredLabel: 'Obrigatório',\n};\n\nexport const passwordInputLabelsPt: PasswordInputLabels = {\n showLabel: 'Mostrar palavra-passe',\n hideLabel: 'Ocultar palavra-passe',\n};\n\nexport const dataTableFacetedFilterLabelsPt: DataTableFacetedFilterLabels = {\n noOptionsLabel: 'Sem opções.',\n};\n\nexport const commandPaletteLabelsPt: CommandPaletteLabels = {\n placeholder: 'Pesquisar...',\n noResultsLabel: 'Nenhum resultado encontrado',\n};\n\nexport const tourLabelsPt: TourLabels = {\n next: 'Seguinte',\n previous: 'Anterior',\n done: 'Concluir',\n progress: '{{current}} de {{total}}',\n};\n\nexport const dateFilterPresetsPt: DateFilterOption[] = [\n { value: 'today', label: 'Hoje' },\n { value: 'yesterday', label: 'Ontem' },\n { value: 'previous_week', label: 'Semana anterior' },\n { value: 'previous_7_days', label: 'Últimos 7 dias' },\n { value: 'previous_30_days', label: 'Últimos 30 dias' },\n { value: 'previous_month', label: 'Mês anterior' },\n { value: 'previous_3_months', label: 'Últimos 3 meses' },\n { value: 'previous_12_months', label: 'Últimos 12 meses' },\n];\n\nexport const dateFilterOperatorsPt: DateFilterOption[] = [\n { value: 'between', label: 'Entre' },\n { value: 'before', label: 'Antes de' },\n { value: 'on', label: 'Em' },\n { value: 'after', label: 'Depois de' },\n];\n\nexport const dateFilterUnitsPt: DateFilterOption[] = [\n { value: 'day', label: 'dias' },\n { value: 'week', label: 'semanas' },\n { value: 'month', label: 'meses' },\n { value: 'quarter', label: 'trimestres' },\n { value: 'year', label: 'anos' },\n];\n\nexport const dateFilterLabelsPt: DateFilterLabels = {\n all: 'Todo o período',\n fixed: 'Intervalo fixo...',\n relative: 'Intervalo relativo...',\n relativeTitle: 'Intervalo relativo',\n apply: 'Aplicar filtro',\n back: 'Voltar',\n latest: 'Últimos',\n ago: 'há',\n includeCurrent: 'Incluir período atual',\n startingAgo: 'A começar há',\n removeOffset: 'Remover deslocamento',\n fallback: 'Data',\n};\n\nexport const settingsLabelsPt: SettingsLabels = {\n back: 'Voltar',\n};\n\nexport const saveStatusLabelsPt: SaveStatusLabels = {\n error: 'Não foi possível guardar as alterações',\n idle: 'As alterações são guardadas automaticamente',\n saved: 'Guardado',\n saving: 'A guardar',\n};\n\nexport const copyButtonLabelsPt: CopyButtonLabels = {\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n};\n\nexport const twoFactorLabelsPt: TwoFactorLabels = {\n setupTitle: 'Autenticação de dois fatores',\n setupDescription:\n 'Acrescente um segundo passo ao seu início de sessão com uma aplicação autenticadora.',\n pendingLabel: 'A preparar a sua chave de configuração',\n scanTitle: 'Leia o código',\n scanDescription:\n 'Abra a aplicação autenticadora e leia o código abaixo para adicionar esta conta.',\n qrFallbackLabel: 'O código QR ainda não está disponível.',\n manualKeyLabel: 'Chave de configuração',\n manualKeyDescription:\n 'Introduza esta chave manualmente se a aplicação não conseguir ler o código.',\n manualKeyRevealLabel: 'Mostrar chave',\n manualKeyHideLabel: 'Ocultar chave',\n continueLabel: 'Continuar',\n confirmTitle: 'Confirme o código',\n confirmDescription:\n 'Introduza o código de seis dígitos apresentado na aplicação autenticadora.',\n codeLabel: 'Código de autenticação',\n recoveryCodeLabel: 'Código de recuperação',\n recoveryCodePlaceholder: 'Introduza um código de recuperação',\n useRecoveryCodeLabel: 'Usar um código de recuperação',\n useCodeLabel: 'Usar um código de autenticação',\n verifyLabel: 'Verificar',\n verifyingLabel: 'A verificar',\n errorFallbackLabel: 'Não resultou. Tente novamente.',\n cancelLabel: 'Cancelar',\n challengeTitle: 'Confirmação em dois passos',\n challengeDescription:\n 'Confirme o acesso à sua conta com o código da aplicação autenticadora.',\n recoveryTitle: 'Códigos de recuperação',\n recoveryDescription:\n 'Guarde estes códigos em lugar seguro. Cada um permite um início de sessão se perder o dispositivo.',\n recoveryWarning:\n 'São mostrados uma única vez e não podem ser lidos depois.',\n revealLabel: 'Mostrar códigos',\n hideLabel: 'Ocultar códigos',\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n copyFailedLabel:\n 'Não é possível copiar aqui. Selecione os códigos manualmente.',\n regenerateLabel: 'Gerar novos códigos',\n doneLabel: 'Concluir',\n disableLabel: 'Desativar autenticação de dois fatores',\n disableTitle: 'Desativar autenticação de dois fatores',\n disableDescription:\n 'A sua conta fica protegida apenas pela palavra-passe. Os códigos de recuperação deixam de funcionar.',\n disableConfirmLabel: 'Desativar',\n disableCancelLabel: 'Manter ativa',\n};\n\nexport const dangerZoneLabelsPt: DangerZoneLabels = {\n title: 'Zona de perigo',\n description: 'Estas ações são permanentes e não podem ser desfeitas.',\n actionLabel: 'Eliminar',\n confirmTitle: 'Confirmar Ação',\n confirmDescription:\n 'Tem a certeza que pretende continuar? Esta ação não pode ser desfeita.',\n confirmText: 'Confirmar',\n cancelText: 'Cancelar',\n requiredValueLabel: 'Escreva {{value}} para confirmar',\n};\n\nexport const codeBlockLabelsPt: CodeBlockLabels = {\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n expandLabel: 'Expandir',\n collapseLabel: 'Recolher',\n};\n\nexport const jsonViewerLabelsPt: JsonViewerLabels = {\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n expandLabel: 'Expandir',\n collapseLabel: 'Recolher',\n circularLabel: 'Referência circular',\n entriesLabel: (count) => `${count} ${count === 1 ? 'entrada' : 'entradas'}`,\n};\n\nexport const ptLabels: UiLabels = {\n codeBlock: codeBlockLabelsPt,\n combobox: comboboxLabelsPt,\n commandPalette: commandPaletteLabelsPt,\n confirmDialog: confirmDialogLabelsPt,\n appearanceToggle: appearanceToggleLabelsPt,\n copyButton: copyButtonLabelsPt,\n dataTable: dataTableLabelsPt,\n dataTableFacetedFilter: dataTableFacetedFilterLabelsPt,\n dateFilter: dateFilterLabelsPt,\n dateFilterOperators: dateFilterOperatorsPt,\n dateFilterPresets: dateFilterPresetsPt,\n dateFilterUnits: dateFilterUnitsPt,\n datePicker: datePickerLabelsPt,\n dateRangeFilter: dateRangeFilterLabelsPt,\n floatingSheet: floatingSheetLabelsPt,\n jsonViewer: jsonViewerLabelsPt,\n saveStatus: saveStatusLabelsPt,\n settings: settingsLabelsPt,\n tour: tourLabelsPt,\n};\n"]}
|