analytica-frontend-lib 1.1.93 → 1.1.94

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 (35) hide show
  1. package/dist/BreadcrumbMenu/breadcrumbStore/index.d.mts +77 -0
  2. package/dist/BreadcrumbMenu/breadcrumbStore/index.d.ts +77 -0
  3. package/dist/BreadcrumbMenu/breadcrumbStore/index.js +146 -0
  4. package/dist/BreadcrumbMenu/breadcrumbStore/index.js.map +1 -0
  5. package/dist/BreadcrumbMenu/breadcrumbStore/index.mjs +120 -0
  6. package/dist/BreadcrumbMenu/breadcrumbStore/index.mjs.map +1 -0
  7. package/dist/BreadcrumbMenu/index.d.mts +31 -0
  8. package/dist/BreadcrumbMenu/index.d.ts +31 -0
  9. package/dist/BreadcrumbMenu/index.js +308 -0
  10. package/dist/BreadcrumbMenu/index.js.map +1 -0
  11. package/dist/BreadcrumbMenu/index.mjs +289 -0
  12. package/dist/BreadcrumbMenu/index.mjs.map +1 -0
  13. package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.d.mts +48 -0
  14. package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.d.ts +48 -0
  15. package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.js +189 -0
  16. package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.js.map +1 -0
  17. package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.mjs +164 -0
  18. package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.mjs.map +1 -0
  19. package/dist/BreadcrumbMenu/useUrlParams/index.d.mts +28 -0
  20. package/dist/BreadcrumbMenu/useUrlParams/index.d.ts +28 -0
  21. package/dist/BreadcrumbMenu/useUrlParams/index.js +43 -0
  22. package/dist/BreadcrumbMenu/useUrlParams/index.js.map +1 -0
  23. package/dist/BreadcrumbMenu/useUrlParams/index.mjs +18 -0
  24. package/dist/BreadcrumbMenu/useUrlParams/index.mjs.map +1 -0
  25. package/dist/index.css +3 -0
  26. package/dist/index.css.map +1 -1
  27. package/dist/index.d.mts +4 -0
  28. package/dist/index.d.ts +4 -0
  29. package/dist/index.js +244 -18
  30. package/dist/index.js.map +1 -1
  31. package/dist/index.mjs +236 -14
  32. package/dist/index.mjs.map +1 -1
  33. package/dist/styles.css +3 -0
  34. package/dist/styles.css.map +1 -1
  35. package/package.json +2 -1
@@ -0,0 +1,77 @@
1
+ import * as zustand from 'zustand';
2
+
3
+ /**
4
+ * Interface para um item de breadcrumb
5
+ */
6
+ interface BreadcrumbItem {
7
+ id: string;
8
+ name: string;
9
+ url: string;
10
+ }
11
+ /**
12
+ * Interface para o estado do store de breadcrumbs
13
+ */
14
+ interface BreadcrumbStore {
15
+ breadcrumbs: Record<string, BreadcrumbItem[]>;
16
+ setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => void;
17
+ addBreadcrumb: (namespace: string, item: BreadcrumbItem) => void;
18
+ updateBreadcrumb: (namespace: string, itemId: string, updates: Partial<BreadcrumbItem>) => void;
19
+ removeBreadcrumbFrom: (namespace: string, itemId: string) => void;
20
+ sliceBreadcrumbs: (namespace: string, index: number) => void;
21
+ clearBreadcrumbs: (namespace: string) => void;
22
+ getBreadcrumbs: (namespace: string) => BreadcrumbItem[];
23
+ }
24
+ /**
25
+ * Store Zustand para gerenciar breadcrumbs
26
+ * Suporta múltiplas instâncias através de namespaces
27
+ */
28
+ declare const useBreadcrumbStore: zustand.UseBoundStore<zustand.StoreApi<BreadcrumbStore>>;
29
+ /**
30
+ * Hook customizado para facilitar o uso de breadcrumbs
31
+ *
32
+ * @param namespace - Identificador único para esta instância de breadcrumbs
33
+ * @returns Objeto com breadcrumbs e métodos para manipulá-los
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * const { breadcrumbs, setBreadcrumbs, addBreadcrumb } = useBreadcrumb('performance');
38
+ *
39
+ * // Definir breadcrumbs iniciais
40
+ * setBreadcrumbs([
41
+ * { id: 'home', name: 'Home', url: '/' },
42
+ * { id: 'page', name: 'Page', url: '/page' }
43
+ * ]);
44
+ *
45
+ * // Adicionar novo breadcrumb
46
+ * addBreadcrumb({ id: 'detail', name: 'Detail', url: '/page/detail' });
47
+ * ```
48
+ */
49
+ declare const useBreadcrumb: (namespace: string) => {
50
+ breadcrumbs: BreadcrumbItem[];
51
+ /**
52
+ * Define todos os breadcrumbs de uma vez
53
+ */
54
+ setBreadcrumbs: (items: BreadcrumbItem[]) => void;
55
+ /**
56
+ * Adiciona um novo breadcrumb ao final
57
+ */
58
+ addBreadcrumb: (item: BreadcrumbItem) => void;
59
+ /**
60
+ * Atualiza um breadcrumb existente
61
+ */
62
+ updateBreadcrumb: (itemId: string, updates: Partial<BreadcrumbItem>) => void;
63
+ /**
64
+ * Remove um breadcrumb e todos os seguintes
65
+ */
66
+ removeBreadcrumbFrom: (itemId: string) => void;
67
+ /**
68
+ * Mantém apenas os breadcrumbs até o índice especificado (inclusivo)
69
+ */
70
+ sliceBreadcrumbs: (index: number) => void;
71
+ /**
72
+ * Limpa todos os breadcrumbs
73
+ */
74
+ clearBreadcrumbs: () => void;
75
+ };
76
+
77
+ export { type BreadcrumbItem, useBreadcrumb, useBreadcrumbStore };
@@ -0,0 +1,77 @@
1
+ import * as zustand from 'zustand';
2
+
3
+ /**
4
+ * Interface para um item de breadcrumb
5
+ */
6
+ interface BreadcrumbItem {
7
+ id: string;
8
+ name: string;
9
+ url: string;
10
+ }
11
+ /**
12
+ * Interface para o estado do store de breadcrumbs
13
+ */
14
+ interface BreadcrumbStore {
15
+ breadcrumbs: Record<string, BreadcrumbItem[]>;
16
+ setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => void;
17
+ addBreadcrumb: (namespace: string, item: BreadcrumbItem) => void;
18
+ updateBreadcrumb: (namespace: string, itemId: string, updates: Partial<BreadcrumbItem>) => void;
19
+ removeBreadcrumbFrom: (namespace: string, itemId: string) => void;
20
+ sliceBreadcrumbs: (namespace: string, index: number) => void;
21
+ clearBreadcrumbs: (namespace: string) => void;
22
+ getBreadcrumbs: (namespace: string) => BreadcrumbItem[];
23
+ }
24
+ /**
25
+ * Store Zustand para gerenciar breadcrumbs
26
+ * Suporta múltiplas instâncias através de namespaces
27
+ */
28
+ declare const useBreadcrumbStore: zustand.UseBoundStore<zustand.StoreApi<BreadcrumbStore>>;
29
+ /**
30
+ * Hook customizado para facilitar o uso de breadcrumbs
31
+ *
32
+ * @param namespace - Identificador único para esta instância de breadcrumbs
33
+ * @returns Objeto com breadcrumbs e métodos para manipulá-los
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * const { breadcrumbs, setBreadcrumbs, addBreadcrumb } = useBreadcrumb('performance');
38
+ *
39
+ * // Definir breadcrumbs iniciais
40
+ * setBreadcrumbs([
41
+ * { id: 'home', name: 'Home', url: '/' },
42
+ * { id: 'page', name: 'Page', url: '/page' }
43
+ * ]);
44
+ *
45
+ * // Adicionar novo breadcrumb
46
+ * addBreadcrumb({ id: 'detail', name: 'Detail', url: '/page/detail' });
47
+ * ```
48
+ */
49
+ declare const useBreadcrumb: (namespace: string) => {
50
+ breadcrumbs: BreadcrumbItem[];
51
+ /**
52
+ * Define todos os breadcrumbs de uma vez
53
+ */
54
+ setBreadcrumbs: (items: BreadcrumbItem[]) => void;
55
+ /**
56
+ * Adiciona um novo breadcrumb ao final
57
+ */
58
+ addBreadcrumb: (item: BreadcrumbItem) => void;
59
+ /**
60
+ * Atualiza um breadcrumb existente
61
+ */
62
+ updateBreadcrumb: (itemId: string, updates: Partial<BreadcrumbItem>) => void;
63
+ /**
64
+ * Remove um breadcrumb e todos os seguintes
65
+ */
66
+ removeBreadcrumbFrom: (itemId: string) => void;
67
+ /**
68
+ * Mantém apenas os breadcrumbs até o índice especificado (inclusivo)
69
+ */
70
+ sliceBreadcrumbs: (index: number) => void;
71
+ /**
72
+ * Limpa todos os breadcrumbs
73
+ */
74
+ clearBreadcrumbs: () => void;
75
+ };
76
+
77
+ export { type BreadcrumbItem, useBreadcrumb, useBreadcrumbStore };
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/BreadcrumbMenu/breadcrumbStore.ts
21
+ var breadcrumbStore_exports = {};
22
+ __export(breadcrumbStore_exports, {
23
+ useBreadcrumb: () => useBreadcrumb,
24
+ useBreadcrumbStore: () => useBreadcrumbStore
25
+ });
26
+ module.exports = __toCommonJS(breadcrumbStore_exports);
27
+ var import_zustand = require("zustand");
28
+ var useBreadcrumbStore = (0, import_zustand.create)((set, get) => ({
29
+ breadcrumbs: {},
30
+ setBreadcrumbs: (namespace, items) => {
31
+ set((state) => ({
32
+ breadcrumbs: {
33
+ ...state.breadcrumbs,
34
+ [namespace]: items
35
+ }
36
+ }));
37
+ },
38
+ addBreadcrumb: (namespace, item) => {
39
+ set((state) => {
40
+ const current = state.breadcrumbs[namespace] || [];
41
+ return {
42
+ breadcrumbs: {
43
+ ...state.breadcrumbs,
44
+ [namespace]: [...current, item]
45
+ }
46
+ };
47
+ });
48
+ },
49
+ updateBreadcrumb: (namespace, itemId, updates) => {
50
+ set((state) => {
51
+ const current = state.breadcrumbs[namespace] || [];
52
+ return {
53
+ breadcrumbs: {
54
+ ...state.breadcrumbs,
55
+ [namespace]: current.map(
56
+ (item) => item.id === itemId ? { ...item, ...updates } : item
57
+ )
58
+ }
59
+ };
60
+ });
61
+ },
62
+ removeBreadcrumbFrom: (namespace, itemId) => {
63
+ set((state) => {
64
+ const current = state.breadcrumbs[namespace] || [];
65
+ const index = current.findIndex((item) => item.id === itemId);
66
+ if (index === -1) return state;
67
+ return {
68
+ breadcrumbs: {
69
+ ...state.breadcrumbs,
70
+ [namespace]: current.slice(0, index)
71
+ }
72
+ };
73
+ });
74
+ },
75
+ sliceBreadcrumbs: (namespace, index) => {
76
+ set((state) => {
77
+ const current = state.breadcrumbs[namespace] || [];
78
+ return {
79
+ breadcrumbs: {
80
+ ...state.breadcrumbs,
81
+ [namespace]: current.slice(0, index + 1)
82
+ }
83
+ };
84
+ });
85
+ },
86
+ clearBreadcrumbs: (namespace) => {
87
+ set((state) => {
88
+ const { [namespace]: _, ...rest } = state.breadcrumbs;
89
+ return {
90
+ breadcrumbs: rest
91
+ };
92
+ });
93
+ },
94
+ getBreadcrumbs: (namespace) => {
95
+ return get().breadcrumbs[namespace] || [];
96
+ }
97
+ }));
98
+ var useBreadcrumb = (namespace) => {
99
+ const store = useBreadcrumbStore();
100
+ const breadcrumbs = store.breadcrumbs[namespace] || [];
101
+ return {
102
+ breadcrumbs,
103
+ /**
104
+ * Define todos os breadcrumbs de uma vez
105
+ */
106
+ setBreadcrumbs: (items) => {
107
+ store.setBreadcrumbs(namespace, items);
108
+ },
109
+ /**
110
+ * Adiciona um novo breadcrumb ao final
111
+ */
112
+ addBreadcrumb: (item) => {
113
+ store.addBreadcrumb(namespace, item);
114
+ },
115
+ /**
116
+ * Atualiza um breadcrumb existente
117
+ */
118
+ updateBreadcrumb: (itemId, updates) => {
119
+ store.updateBreadcrumb(namespace, itemId, updates);
120
+ },
121
+ /**
122
+ * Remove um breadcrumb e todos os seguintes
123
+ */
124
+ removeBreadcrumbFrom: (itemId) => {
125
+ store.removeBreadcrumbFrom(namespace, itemId);
126
+ },
127
+ /**
128
+ * Mantém apenas os breadcrumbs até o índice especificado (inclusivo)
129
+ */
130
+ sliceBreadcrumbs: (index) => {
131
+ store.sliceBreadcrumbs(namespace, index);
132
+ },
133
+ /**
134
+ * Limpa todos os breadcrumbs
135
+ */
136
+ clearBreadcrumbs: () => {
137
+ store.clearBreadcrumbs(namespace);
138
+ }
139
+ };
140
+ };
141
+ // Annotate the CommonJS export names for ESM import in node:
142
+ 0 && (module.exports = {
143
+ useBreadcrumb,
144
+ useBreadcrumbStore
145
+ });
146
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/BreadcrumbMenu/breadcrumbStore.ts"],"sourcesContent":["import { create } from 'zustand';\n\n/**\n * Interface para um item de breadcrumb\n */\nexport interface BreadcrumbItem {\n id: string;\n name: string;\n url: string;\n}\n\n/**\n * Interface para o estado do store de breadcrumbs\n */\ninterface BreadcrumbStore {\n // Múltiplas instâncias de breadcrumbs identificadas por namespace\n breadcrumbs: Record<string, BreadcrumbItem[]>;\n\n // Define todos os breadcrumbs de uma instância\n setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => void;\n\n // Adiciona um breadcrumb ao final da lista\n addBreadcrumb: (namespace: string, item: BreadcrumbItem) => void;\n\n // Atualiza um breadcrumb existente\n updateBreadcrumb: (\n namespace: string,\n itemId: string,\n updates: Partial<BreadcrumbItem>\n ) => void;\n\n // Remove um breadcrumb e todos os seguintes\n removeBreadcrumbFrom: (namespace: string, itemId: string) => void;\n\n // Mantém apenas os breadcrumbs até o índice especificado\n sliceBreadcrumbs: (namespace: string, index: number) => void;\n\n // Limpa todos os breadcrumbs de uma instância\n clearBreadcrumbs: (namespace: string) => void;\n\n // Obtém os breadcrumbs de uma instância\n getBreadcrumbs: (namespace: string) => BreadcrumbItem[];\n}\n\n/**\n * Store Zustand para gerenciar breadcrumbs\n * Suporta múltiplas instâncias através de namespaces\n */\nexport const useBreadcrumbStore = create<BreadcrumbStore>((set, get) => ({\n breadcrumbs: {},\n\n setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => {\n set((state) => ({\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: items,\n },\n }));\n },\n\n addBreadcrumb: (namespace: string, item: BreadcrumbItem) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: [...current, item],\n },\n };\n });\n },\n\n updateBreadcrumb: (\n namespace: string,\n itemId: string,\n updates: Partial<BreadcrumbItem>\n ) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.map((item) =>\n item.id === itemId ? { ...item, ...updates } : item\n ),\n },\n };\n });\n },\n\n removeBreadcrumbFrom: (namespace: string, itemId: string) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n const index = current.findIndex((item) => item.id === itemId);\n if (index === -1) return state;\n\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.slice(0, index),\n },\n };\n });\n },\n\n sliceBreadcrumbs: (namespace: string, index: number) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.slice(0, index + 1),\n },\n };\n });\n },\n\n clearBreadcrumbs: (namespace: string) => {\n set((state) => {\n const { [namespace]: _, ...rest } = state.breadcrumbs;\n return {\n breadcrumbs: rest,\n };\n });\n },\n\n getBreadcrumbs: (namespace: string) => {\n return get().breadcrumbs[namespace] || [];\n },\n}));\n\n/**\n * Hook customizado para facilitar o uso de breadcrumbs\n *\n * @param namespace - Identificador único para esta instância de breadcrumbs\n * @returns Objeto com breadcrumbs e métodos para manipulá-los\n *\n * @example\n * ```tsx\n * const { breadcrumbs, setBreadcrumbs, addBreadcrumb } = useBreadcrumb('performance');\n *\n * // Definir breadcrumbs iniciais\n * setBreadcrumbs([\n * { id: 'home', name: 'Home', url: '/' },\n * { id: 'page', name: 'Page', url: '/page' }\n * ]);\n *\n * // Adicionar novo breadcrumb\n * addBreadcrumb({ id: 'detail', name: 'Detail', url: '/page/detail' });\n * ```\n */\nexport const useBreadcrumb = (namespace: string) => {\n const store = useBreadcrumbStore();\n const breadcrumbs = store.breadcrumbs[namespace] || [];\n\n return {\n breadcrumbs,\n\n /**\n * Define todos os breadcrumbs de uma vez\n */\n setBreadcrumbs: (items: BreadcrumbItem[]) => {\n store.setBreadcrumbs(namespace, items);\n },\n\n /**\n * Adiciona um novo breadcrumb ao final\n */\n addBreadcrumb: (item: BreadcrumbItem) => {\n store.addBreadcrumb(namespace, item);\n },\n\n /**\n * Atualiza um breadcrumb existente\n */\n updateBreadcrumb: (itemId: string, updates: Partial<BreadcrumbItem>) => {\n store.updateBreadcrumb(namespace, itemId, updates);\n },\n\n /**\n * Remove um breadcrumb e todos os seguintes\n */\n removeBreadcrumbFrom: (itemId: string) => {\n store.removeBreadcrumbFrom(namespace, itemId);\n },\n\n /**\n * Mantém apenas os breadcrumbs até o índice especificado (inclusivo)\n */\n sliceBreadcrumbs: (index: number) => {\n store.sliceBreadcrumbs(namespace, index);\n },\n\n /**\n * Limpa todos os breadcrumbs\n */\n clearBreadcrumbs: () => {\n store.clearBreadcrumbs(namespace);\n },\n };\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,120 @@
1
+ // src/components/BreadcrumbMenu/breadcrumbStore.ts
2
+ import { create } from "zustand";
3
+ var useBreadcrumbStore = create((set, get) => ({
4
+ breadcrumbs: {},
5
+ setBreadcrumbs: (namespace, items) => {
6
+ set((state) => ({
7
+ breadcrumbs: {
8
+ ...state.breadcrumbs,
9
+ [namespace]: items
10
+ }
11
+ }));
12
+ },
13
+ addBreadcrumb: (namespace, item) => {
14
+ set((state) => {
15
+ const current = state.breadcrumbs[namespace] || [];
16
+ return {
17
+ breadcrumbs: {
18
+ ...state.breadcrumbs,
19
+ [namespace]: [...current, item]
20
+ }
21
+ };
22
+ });
23
+ },
24
+ updateBreadcrumb: (namespace, itemId, updates) => {
25
+ set((state) => {
26
+ const current = state.breadcrumbs[namespace] || [];
27
+ return {
28
+ breadcrumbs: {
29
+ ...state.breadcrumbs,
30
+ [namespace]: current.map(
31
+ (item) => item.id === itemId ? { ...item, ...updates } : item
32
+ )
33
+ }
34
+ };
35
+ });
36
+ },
37
+ removeBreadcrumbFrom: (namespace, itemId) => {
38
+ set((state) => {
39
+ const current = state.breadcrumbs[namespace] || [];
40
+ const index = current.findIndex((item) => item.id === itemId);
41
+ if (index === -1) return state;
42
+ return {
43
+ breadcrumbs: {
44
+ ...state.breadcrumbs,
45
+ [namespace]: current.slice(0, index)
46
+ }
47
+ };
48
+ });
49
+ },
50
+ sliceBreadcrumbs: (namespace, index) => {
51
+ set((state) => {
52
+ const current = state.breadcrumbs[namespace] || [];
53
+ return {
54
+ breadcrumbs: {
55
+ ...state.breadcrumbs,
56
+ [namespace]: current.slice(0, index + 1)
57
+ }
58
+ };
59
+ });
60
+ },
61
+ clearBreadcrumbs: (namespace) => {
62
+ set((state) => {
63
+ const { [namespace]: _, ...rest } = state.breadcrumbs;
64
+ return {
65
+ breadcrumbs: rest
66
+ };
67
+ });
68
+ },
69
+ getBreadcrumbs: (namespace) => {
70
+ return get().breadcrumbs[namespace] || [];
71
+ }
72
+ }));
73
+ var useBreadcrumb = (namespace) => {
74
+ const store = useBreadcrumbStore();
75
+ const breadcrumbs = store.breadcrumbs[namespace] || [];
76
+ return {
77
+ breadcrumbs,
78
+ /**
79
+ * Define todos os breadcrumbs de uma vez
80
+ */
81
+ setBreadcrumbs: (items) => {
82
+ store.setBreadcrumbs(namespace, items);
83
+ },
84
+ /**
85
+ * Adiciona um novo breadcrumb ao final
86
+ */
87
+ addBreadcrumb: (item) => {
88
+ store.addBreadcrumb(namespace, item);
89
+ },
90
+ /**
91
+ * Atualiza um breadcrumb existente
92
+ */
93
+ updateBreadcrumb: (itemId, updates) => {
94
+ store.updateBreadcrumb(namespace, itemId, updates);
95
+ },
96
+ /**
97
+ * Remove um breadcrumb e todos os seguintes
98
+ */
99
+ removeBreadcrumbFrom: (itemId) => {
100
+ store.removeBreadcrumbFrom(namespace, itemId);
101
+ },
102
+ /**
103
+ * Mantém apenas os breadcrumbs até o índice especificado (inclusivo)
104
+ */
105
+ sliceBreadcrumbs: (index) => {
106
+ store.sliceBreadcrumbs(namespace, index);
107
+ },
108
+ /**
109
+ * Limpa todos os breadcrumbs
110
+ */
111
+ clearBreadcrumbs: () => {
112
+ store.clearBreadcrumbs(namespace);
113
+ }
114
+ };
115
+ };
116
+ export {
117
+ useBreadcrumb,
118
+ useBreadcrumbStore
119
+ };
120
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/BreadcrumbMenu/breadcrumbStore.ts"],"sourcesContent":["import { create } from 'zustand';\n\n/**\n * Interface para um item de breadcrumb\n */\nexport interface BreadcrumbItem {\n id: string;\n name: string;\n url: string;\n}\n\n/**\n * Interface para o estado do store de breadcrumbs\n */\ninterface BreadcrumbStore {\n // Múltiplas instâncias de breadcrumbs identificadas por namespace\n breadcrumbs: Record<string, BreadcrumbItem[]>;\n\n // Define todos os breadcrumbs de uma instância\n setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => void;\n\n // Adiciona um breadcrumb ao final da lista\n addBreadcrumb: (namespace: string, item: BreadcrumbItem) => void;\n\n // Atualiza um breadcrumb existente\n updateBreadcrumb: (\n namespace: string,\n itemId: string,\n updates: Partial<BreadcrumbItem>\n ) => void;\n\n // Remove um breadcrumb e todos os seguintes\n removeBreadcrumbFrom: (namespace: string, itemId: string) => void;\n\n // Mantém apenas os breadcrumbs até o índice especificado\n sliceBreadcrumbs: (namespace: string, index: number) => void;\n\n // Limpa todos os breadcrumbs de uma instância\n clearBreadcrumbs: (namespace: string) => void;\n\n // Obtém os breadcrumbs de uma instância\n getBreadcrumbs: (namespace: string) => BreadcrumbItem[];\n}\n\n/**\n * Store Zustand para gerenciar breadcrumbs\n * Suporta múltiplas instâncias através de namespaces\n */\nexport const useBreadcrumbStore = create<BreadcrumbStore>((set, get) => ({\n breadcrumbs: {},\n\n setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => {\n set((state) => ({\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: items,\n },\n }));\n },\n\n addBreadcrumb: (namespace: string, item: BreadcrumbItem) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: [...current, item],\n },\n };\n });\n },\n\n updateBreadcrumb: (\n namespace: string,\n itemId: string,\n updates: Partial<BreadcrumbItem>\n ) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.map((item) =>\n item.id === itemId ? { ...item, ...updates } : item\n ),\n },\n };\n });\n },\n\n removeBreadcrumbFrom: (namespace: string, itemId: string) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n const index = current.findIndex((item) => item.id === itemId);\n if (index === -1) return state;\n\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.slice(0, index),\n },\n };\n });\n },\n\n sliceBreadcrumbs: (namespace: string, index: number) => {\n set((state) => {\n const current = state.breadcrumbs[namespace] || [];\n return {\n breadcrumbs: {\n ...state.breadcrumbs,\n [namespace]: current.slice(0, index + 1),\n },\n };\n });\n },\n\n clearBreadcrumbs: (namespace: string) => {\n set((state) => {\n const { [namespace]: _, ...rest } = state.breadcrumbs;\n return {\n breadcrumbs: rest,\n };\n });\n },\n\n getBreadcrumbs: (namespace: string) => {\n return get().breadcrumbs[namespace] || [];\n },\n}));\n\n/**\n * Hook customizado para facilitar o uso de breadcrumbs\n *\n * @param namespace - Identificador único para esta instância de breadcrumbs\n * @returns Objeto com breadcrumbs e métodos para manipulá-los\n *\n * @example\n * ```tsx\n * const { breadcrumbs, setBreadcrumbs, addBreadcrumb } = useBreadcrumb('performance');\n *\n * // Definir breadcrumbs iniciais\n * setBreadcrumbs([\n * { id: 'home', name: 'Home', url: '/' },\n * { id: 'page', name: 'Page', url: '/page' }\n * ]);\n *\n * // Adicionar novo breadcrumb\n * addBreadcrumb({ id: 'detail', name: 'Detail', url: '/page/detail' });\n * ```\n */\nexport const useBreadcrumb = (namespace: string) => {\n const store = useBreadcrumbStore();\n const breadcrumbs = store.breadcrumbs[namespace] || [];\n\n return {\n breadcrumbs,\n\n /**\n * Define todos os breadcrumbs de uma vez\n */\n setBreadcrumbs: (items: BreadcrumbItem[]) => {\n store.setBreadcrumbs(namespace, items);\n },\n\n /**\n * Adiciona um novo breadcrumb ao final\n */\n addBreadcrumb: (item: BreadcrumbItem) => {\n store.addBreadcrumb(namespace, item);\n },\n\n /**\n * Atualiza um breadcrumb existente\n */\n updateBreadcrumb: (itemId: string, updates: Partial<BreadcrumbItem>) => {\n store.updateBreadcrumb(namespace, itemId, updates);\n },\n\n /**\n * Remove um breadcrumb e todos os seguintes\n */\n removeBreadcrumbFrom: (itemId: string) => {\n store.removeBreadcrumbFrom(namespace, itemId);\n },\n\n /**\n * Mantém apenas os breadcrumbs até o índice especificado (inclusivo)\n */\n sliceBreadcrumbs: (index: number) => {\n store.sliceBreadcrumbs(namespace, index);\n },\n\n /**\n * Limpa todos os breadcrumbs\n */\n clearBreadcrumbs: () => {\n store.clearBreadcrumbs(namespace);\n },\n };\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,31 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { BreadcrumbItem } from './breadcrumbStore/index.mjs';
3
+ import 'zustand';
4
+
5
+ /**
6
+ * Props do componente BreadcrumbMenu
7
+ */
8
+ interface BreadcrumbMenuProps {
9
+ /** Lista de breadcrumbs a serem exibidos */
10
+ breadcrumbs: BreadcrumbItem[];
11
+ /** Callback quando um breadcrumb é clicado */
12
+ onBreadcrumbClick?: (breadcrumb: BreadcrumbItem, index: number) => void;
13
+ /** Classes CSS adicionais */
14
+ className?: string;
15
+ }
16
+ /**
17
+ * Componente reutilizável para renderizar um menu de breadcrumbs
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <BreadcrumbMenu
22
+ * breadcrumbs={breadcrumbs}
23
+ * onBreadcrumbClick={(breadcrumb, index) => {
24
+ * console.log('Clicked:', breadcrumb, 'at index:', index);
25
+ * }}
26
+ * />
27
+ * ```
28
+ */
29
+ declare const BreadcrumbMenu: ({ breadcrumbs, onBreadcrumbClick, className, }: BreadcrumbMenuProps) => react_jsx_runtime.JSX.Element;
30
+
31
+ export { BreadcrumbMenu, type BreadcrumbMenuProps };
@@ -0,0 +1,31 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { BreadcrumbItem } from './breadcrumbStore/index.js';
3
+ import 'zustand';
4
+
5
+ /**
6
+ * Props do componente BreadcrumbMenu
7
+ */
8
+ interface BreadcrumbMenuProps {
9
+ /** Lista de breadcrumbs a serem exibidos */
10
+ breadcrumbs: BreadcrumbItem[];
11
+ /** Callback quando um breadcrumb é clicado */
12
+ onBreadcrumbClick?: (breadcrumb: BreadcrumbItem, index: number) => void;
13
+ /** Classes CSS adicionais */
14
+ className?: string;
15
+ }
16
+ /**
17
+ * Componente reutilizável para renderizar um menu de breadcrumbs
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <BreadcrumbMenu
22
+ * breadcrumbs={breadcrumbs}
23
+ * onBreadcrumbClick={(breadcrumb, index) => {
24
+ * console.log('Clicked:', breadcrumb, 'at index:', index);
25
+ * }}
26
+ * />
27
+ * ```
28
+ */
29
+ declare const BreadcrumbMenu: ({ breadcrumbs, onBreadcrumbClick, className, }: BreadcrumbMenuProps) => react_jsx_runtime.JSX.Element;
30
+
31
+ export { BreadcrumbMenu, type BreadcrumbMenuProps };