@projectcor/maia-components 2.11.68-0 → 2.11.69-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +7 -3
  2. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +4 -2
  3. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  4. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  5. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +26 -6
  6. package/lib/components/atoms/MAIAInput/MAIAInput.js +40 -202
  7. package/lib/components/atoms/MAIAInput/styles.js +24 -64
  8. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +2 -4
  9. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  10. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  11. package/lib/components/atoms/icons/index.js +3 -1
  12. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +14 -1
  13. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +3 -32
  14. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +2 -2
  15. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +31 -12
  16. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +38 -5
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +31 -4
  18. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +26 -18
  19. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  20. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +3 -11
  21. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +2 -2
  22. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  23. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  24. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  25. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  26. package/lib/components/molecules/Sidebar/Sidebar.js +16 -4
  27. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +160 -0
  28. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  29. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  30. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +446 -0
  31. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  32. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  33. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +8 -1
  34. package/lib/constants/config.js +4 -1
  35. package/lib/constants/permissions/index.js +2 -2
  36. package/lib/constants/permissions/utils.js +4 -1
  37. package/lib/context/global-context.js +1 -1
  38. package/lib/dev/DevContextMentionInput.js +1 -3
  39. package/lib/hooks/useChatManager/useChatManager.js +7 -20
  40. package/lib/hooks/useChatMessages/useChatMessages.js +4 -2
  41. package/lib/hooks/useContextMentions.js +60 -15
  42. package/lib/hooks/useEntitySearch.js +294 -108
  43. package/lib/hooks/useMentionAllowedTypes.js +45 -10
  44. package/lib/hooks/useMentionPopover.js +54 -48
  45. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +7 -10
  46. package/lib/hooks/useProjectSummaryConfig.js +17 -32
  47. package/lib/lang/br/index.js +54 -11
  48. package/lib/lang/en/index.js +54 -11
  49. package/lib/lang/es/index.js +54 -11
  50. package/lib/lang/fr/index.js +55 -11
  51. package/lib/services/maia/Agents/getAgents.js +10 -8
  52. package/lib/services/maia/Chats/getChatMessages.js +4 -22
  53. package/lib/services/maia/Orchestrator/orchestrator.js +7 -9
  54. package/lib/services/maia/Skills/createSkill.js +39 -0
  55. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  56. package/lib/services/maia/Skills/generateSkill.js +41 -0
  57. package/lib/services/maia/Skills/getSkills.js +90 -0
  58. package/lib/services/maia/Skills/updateSkill.js +39 -0
  59. package/lib/types/Chat.js +1 -1
  60. package/lib/types/contextMention.js +1 -1
  61. package/lib/types/skill.js +2 -0
  62. package/lib/utils/contextMentionIcons.js +29 -1
  63. package/lib/utils/contextMentionTriggers.js +53 -0
  64. package/lib/utils/corConnectorMentionTypes.js +37 -0
  65. package/lib/utils/normalizeAgentConnectors.js +32 -0
  66. package/lib/utils/renderContextMentions.js +9 -4
  67. package/package.json +1 -1
  68. package/lib/components/atoms/MAIAViz/MAIAViz.js +0 -97
  69. package/lib/components/atoms/MAIAViz/MAIAViz.parse.js +0 -131
  70. package/lib/components/atoms/MAIAViz/MAIAViz.skeleton.js +0 -40
  71. package/lib/components/atoms/MAIAViz/MAIAViz.styles.js +0 -8
  72. package/lib/components/atoms/MAIAViz/MAIAViz.types.js +0 -49
  73. package/lib/components/atoms/MAIAViz/MAIAVizBar.js +0 -123
  74. package/lib/components/atoms/MAIAViz/MAIAVizDonut.js +0 -111
  75. package/lib/components/atoms/MAIAViz/MAIAVizKpis.js +0 -34
  76. package/lib/components/atoms/MAIAViz/README.md +0 -85
  77. package/lib/components/atoms/MAIAViz/index.js +0 -2
  78. package/lib/types/Hitl.js +0 -2
  79. package/lib/utils/maiaStreamdownRenderers.js +0 -16
@@ -1,97 +0,0 @@
1
- import { Skeleton } from '../Skeleton/Skeleton';
2
- import { parseMaiaVizSpec, parseMaiaVizProgressive } from './MAIAViz.parse';
3
- import { MAIAVizKpis } from './MAIAVizKpis';
4
- import { MAIAVizBar } from './MAIAVizBar';
5
- import { MAIAVizDonut } from './MAIAVizDonut';
6
- import { MAIAVizSkeleton } from './MAIAViz.skeleton';
7
- import { StyledMAIAViz } from './MAIAViz.styles';
8
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
- var blockInner = function blockInner(block) {
10
- switch (block.type) {
11
- case 'kpis':
12
- return /*#__PURE__*/_jsx(MAIAVizKpis, {
13
- spec: block
14
- });
15
- case 'bar':
16
- return /*#__PURE__*/_jsx(MAIAVizBar, {
17
- spec: block
18
- });
19
- case 'donut':
20
- return /*#__PURE__*/_jsx(MAIAVizDonut, {
21
- spec: block
22
- });
23
- default:
24
- return null;
25
- }
26
- };
27
- var renderBlock = function renderBlock(block, index) {
28
- var inner = blockInner(block);
29
- if (!inner) return null;
30
- return (
31
- /*#__PURE__*/
32
- // El índice es estable: los bloques solo se agregan al final mientras stremea.
33
- // eslint-disable-next-line react/no-array-index-key
34
- _jsx("div", {
35
- className: "MAIAViz-block",
36
- children: inner
37
- }, index)
38
- );
39
- };
40
- var renderSpec = function renderSpec(spec) {
41
- if (spec.type === 'report') {
42
- return /*#__PURE__*/_jsxs(_Fragment, {
43
- children: [(spec.title || spec.subtitle) && /*#__PURE__*/_jsxs("header", {
44
- className: "MAIAViz-header",
45
- children: [spec.title && /*#__PURE__*/_jsx("h3", {
46
- className: "MAIAViz-title",
47
- children: spec.title
48
- }), spec.subtitle && /*#__PURE__*/_jsx("p", {
49
- className: "MAIAViz-subtitle",
50
- children: spec.subtitle
51
- })]
52
- }), (Array.isArray(spec.blocks) ? spec.blocks : []).map(function (block, i) {
53
- return renderBlock(block, i);
54
- })]
55
- });
56
- }
57
- return renderBlock(spec, 0);
58
- };
59
-
60
- /**
61
- * Renderer que Streamdown invoca para los bloques ```maia-viz.
62
- * Mientras el bloque se transmite (`isIncomplete`) renderiza en vivo cada
63
- * widget apenas su `{…}` queda balanceado; al cerrar el fence hace el parseo
64
- * estricto final.
65
- */
66
- export var MAIAViz = function MAIAViz(_ref) {
67
- var code = _ref.code,
68
- isIncomplete = _ref.isIncomplete;
69
- if (isIncomplete) {
70
- var partial = parseMaiaVizProgressive(code);
71
- if (!partial) {
72
- return /*#__PURE__*/_jsx(StyledMAIAViz, {
73
- children: /*#__PURE__*/_jsx(MAIAVizSkeleton, {})
74
- });
75
- }
76
- return /*#__PURE__*/_jsxs(StyledMAIAViz, {
77
- children: [renderSpec(partial), /*#__PURE__*/_jsx(Skeleton, {
78
- variant: "rectangular",
79
- height: 120,
80
- borderRadius: 12
81
- })]
82
- });
83
- }
84
- var spec = parseMaiaVizSpec(code);
85
- if (!spec) {
86
- return /*#__PURE__*/_jsx(StyledMAIAViz, {
87
- children: /*#__PURE__*/_jsx("p", {
88
- className: "MAIAViz-error",
89
- children: "No se pudo interpretar la visualizaci\xF3n."
90
- })
91
- });
92
- }
93
- return /*#__PURE__*/_jsx(StyledMAIAViz, {
94
- children: renderSpec(spec)
95
- });
96
- };
97
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTa2VsZXRvbiIsInBhcnNlTWFpYVZpelNwZWMiLCJwYXJzZU1haWFWaXpQcm9ncmVzc2l2ZSIsIk1BSUFWaXpLcGlzIiwiTUFJQVZpekJhciIsIk1BSUFWaXpEb251dCIsIk1BSUFWaXpTa2VsZXRvbiIsIlN0eWxlZE1BSUFWaXoiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJibG9ja0lubmVyIiwiYmxvY2siLCJ0eXBlIiwic3BlYyIsInJlbmRlckJsb2NrIiwiaW5kZXgiLCJpbm5lciIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwicmVuZGVyU3BlYyIsInRpdGxlIiwic3VidGl0bGUiLCJBcnJheSIsImlzQXJyYXkiLCJibG9ja3MiLCJtYXAiLCJpIiwiTUFJQVZpeiIsIl9yZWYiLCJjb2RlIiwiaXNJbmNvbXBsZXRlIiwicGFydGlhbCIsInZhcmlhbnQiLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBVml6L01BSUFWaXoudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbVJlbmRlcmVyUHJvcHMgfSBmcm9tICdzdHJlYW1kb3duJ1xuXG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJy4uL1NrZWxldG9uL1NrZWxldG9uJ1xuaW1wb3J0IHsgcGFyc2VNYWlhVml6U3BlYywgcGFyc2VNYWlhVml6UHJvZ3Jlc3NpdmUgfSBmcm9tICcuL01BSUFWaXoucGFyc2UnXG5pbXBvcnQgeyBNYWlhVml6U3BlYywgUmVwb3J0QmxvY2sgfSBmcm9tICcuL01BSUFWaXoudHlwZXMnXG5pbXBvcnQgeyBNQUlBVml6S3BpcyB9IGZyb20gJy4vTUFJQVZpektwaXMnXG5pbXBvcnQgeyBNQUlBVml6QmFyIH0gZnJvbSAnLi9NQUlBVml6QmFyJ1xuaW1wb3J0IHsgTUFJQVZpekRvbnV0IH0gZnJvbSAnLi9NQUlBVml6RG9udXQnXG5pbXBvcnQgeyBNQUlBVml6U2tlbGV0b24gfSBmcm9tICcuL01BSUFWaXouc2tlbGV0b24nXG5pbXBvcnQgeyBTdHlsZWRNQUlBVml6IH0gZnJvbSAnLi9NQUlBVml6LnN0eWxlcydcblxuY29uc3QgYmxvY2tJbm5lciA9IChibG9jazogUmVwb3J0QmxvY2spID0+IHtcbiAgc3dpdGNoIChibG9jay50eXBlKSB7XG4gICAgY2FzZSAna3Bpcyc6XG4gICAgICByZXR1cm4gPE1BSUFWaXpLcGlzIHNwZWM9e2Jsb2NrfSAvPlxuICAgIGNhc2UgJ2Jhcic6XG4gICAgICByZXR1cm4gPE1BSUFWaXpCYXIgc3BlYz17YmxvY2t9IC8+XG4gICAgY2FzZSAnZG9udXQnOlxuICAgICAgcmV0dXJuIDxNQUlBVml6RG9udXQgc3BlYz17YmxvY2t9IC8+XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuY29uc3QgcmVuZGVyQmxvY2sgPSAoYmxvY2s6IFJlcG9ydEJsb2NrLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGlubmVyID0gYmxvY2tJbm5lcihibG9jaylcbiAgaWYgKCFpbm5lcikgcmV0dXJuIG51bGxcbiAgcmV0dXJuIChcbiAgICAvLyBFbCDDrW5kaWNlIGVzIGVzdGFibGU6IGxvcyBibG9xdWVzIHNvbG8gc2UgYWdyZWdhbiBhbCBmaW5hbCBtaWVudHJhcyBzdHJlbWVhLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXlcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIk1BSUFWaXotYmxvY2tcIiBrZXk9e2luZGV4fT5cbiAgICAgIHtpbm5lcn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCByZW5kZXJTcGVjID0gKHNwZWM6IE1haWFWaXpTcGVjKSA9PiB7XG4gIGlmIChzcGVjLnR5cGUgPT09ICdyZXBvcnQnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHsoc3BlYy50aXRsZSB8fCBzcGVjLnN1YnRpdGxlKSAmJiAoXG4gICAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJNQUlBVml6LWhlYWRlclwiPlxuICAgICAgICAgICAge3NwZWMudGl0bGUgJiYgPGgzIGNsYXNzTmFtZT1cIk1BSUFWaXotdGl0bGVcIj57c3BlYy50aXRsZX08L2gzPn1cbiAgICAgICAgICAgIHtzcGVjLnN1YnRpdGxlICYmIDxwIGNsYXNzTmFtZT1cIk1BSUFWaXotc3VidGl0bGVcIj57c3BlYy5zdWJ0aXRsZX08L3A+fVxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICApfVxuICAgICAgICB7KEFycmF5LmlzQXJyYXkoc3BlYy5ibG9ja3MpID8gc3BlYy5ibG9ja3MgOiBbXSkubWFwKChibG9jaywgaSkgPT4gcmVuZGVyQmxvY2soYmxvY2ssIGkpKX1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuICByZXR1cm4gcmVuZGVyQmxvY2soc3BlYywgMClcbn1cblxuLyoqXG4gKiBSZW5kZXJlciBxdWUgU3RyZWFtZG93biBpbnZvY2EgcGFyYSBsb3MgYmxvcXVlcyBgYGBtYWlhLXZpei5cbiAqIE1pZW50cmFzIGVsIGJsb3F1ZSBzZSB0cmFuc21pdGUgKGBpc0luY29tcGxldGVgKSByZW5kZXJpemEgZW4gdml2byBjYWRhXG4gKiB3aWRnZXQgYXBlbmFzIHN1IGB74oCmfWAgcXVlZGEgYmFsYW5jZWFkbzsgYWwgY2VycmFyIGVsIGZlbmNlIGhhY2UgZWwgcGFyc2VvXG4gKiBlc3RyaWN0byBmaW5hbC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1BSUFWaXogPSAoeyBjb2RlLCBpc0luY29tcGxldGUgfTogQ3VzdG9tUmVuZGVyZXJQcm9wcykgPT4ge1xuICBpZiAoaXNJbmNvbXBsZXRlKSB7XG4gICAgY29uc3QgcGFydGlhbCA9IHBhcnNlTWFpYVZpelByb2dyZXNzaXZlKGNvZGUpXG4gICAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTUFJQVZpej5cbiAgICAgICAgICA8TUFJQVZpelNrZWxldG9uIC8+XG4gICAgICAgIDwvU3R5bGVkTUFJQVZpej5cbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNQUlBVml6PlxuICAgICAgICB7cmVuZGVyU3BlYyhwYXJ0aWFsKX1cbiAgICAgICAgPFNrZWxldG9uIHZhcmlhbnQ9XCJyZWN0YW5ndWxhclwiIGhlaWdodD17MTIwfSBib3JkZXJSYWRpdXM9ezEyfSAvPlxuICAgICAgPC9TdHlsZWRNQUlBVml6PlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHNwZWMgPSBwYXJzZU1haWFWaXpTcGVjKGNvZGUpXG4gIGlmICghc3BlYykge1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTUFJQVZpej5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwiTUFJQVZpei1lcnJvclwiPk5vIHNlIHB1ZG8gaW50ZXJwcmV0YXIgbGEgdmlzdWFsaXphY2nDs24uPC9wPlxuICAgICAgPC9TdHlsZWRNQUlBVml6PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiA8U3R5bGVkTUFJQVZpej57cmVuZGVyU3BlYyhzcGVjKX08L1N0eWxlZE1BSUFWaXo+XG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLFFBQVEsUUFBUSxzQkFBc0I7QUFDL0MsU0FBU0MsZ0JBQWdCLEVBQUVDLHVCQUF1QixRQUFRLGlCQUFpQjtBQUUzRSxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxVQUFVLFFBQVEsY0FBYztBQUN6QyxTQUFTQyxZQUFZLFFBQVEsZ0JBQWdCO0FBQzdDLFNBQVNDLGVBQWUsUUFBUSxvQkFBb0I7QUFDcEQsU0FBU0MsYUFBYSxRQUFRLGtCQUFrQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBRWhELElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJQyxLQUFrQixFQUFLO0VBQ3pDLFFBQVFBLEtBQUssQ0FBQ0Ms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
@@ -1,131 +0,0 @@
1
- import _typeof from "@babel/runtime/helpers/typeof";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- var VALID_TYPES = ['kpis', 'bar', 'donut', 'report'];
6
- var BLOCK_TYPES = ['kpis', 'bar', 'donut'];
7
- export var normalizeSeries = function normalizeSeries(data) {
8
- return (Array.isArray(data) ? data : []).map(function (d) {
9
- return _objectSpread(_objectSpread({}, d), {}, {
10
- value: Number(d.value)
11
- });
12
- }).filter(function (d) {
13
- return !Number.isNaN(d.value) && d.value >= 0;
14
- });
15
- };
16
- var isRecord = function isRecord(value) {
17
- return _typeof(value) === 'object' && value !== null && !Array.isArray(value);
18
- };
19
- var isValidBlock = function isValidBlock(value) {
20
- return isRecord(value) && typeof value.type === 'string' && BLOCK_TYPES.includes(value.type);
21
- };
22
-
23
- /**
24
- * Parsea el contenido COMPLETO de un bloque ```maia-viz a un spec tipado.
25
- * Devuelve `null` ante JSON inválido. Se usa cuando el fence ya cerró.
26
- */
27
- export var parseMaiaVizSpec = function parseMaiaVizSpec(code) {
28
- var trimmed = code.trim();
29
- if (!trimmed) return null;
30
- var parsed;
31
- try {
32
- parsed = JSON.parse(trimmed);
33
- } catch (_unused) {
34
- return null;
35
- }
36
- if (!isRecord(parsed)) return null;
37
- if (typeof parsed.type !== 'string' || !VALID_TYPES.includes(parsed.type)) return null;
38
- return parsed;
39
- };
40
-
41
- /**
42
- * Extrae el valor string de una clave de primer nivel (p. ej. "title") desde
43
- * un fragmento de JSON, aunque el JSON todavía esté incompleto. Respeta los
44
- * escapes. Devuelve `undefined` si no aparece todavía.
45
- */
46
- var matchString = function matchString(text, key) {
47
- var match = text.match(new RegExp("\"".concat(key, "\"\\s*:\\s*\"((?:[^\"\\\\]|\\\\.)*)\"")));
48
- if (!match) return undefined;
49
- try {
50
- return JSON.parse("\"".concat(match[1], "\""));
51
- } catch (_unused2) {
52
- return match[1];
53
- }
54
- };
55
-
56
- /**
57
- * Recorre un texto y devuelve cada objeto `{…}` de primer nivel que ya esté
58
- * balanceado (llave abierta y cerrada), ignorando llaves dentro de strings.
59
- * Los objetos a medio transmitir simplemente no aparecen todavía.
60
- */
61
- var extractCompleteObjects = function extractCompleteObjects(text) {
62
- var objects = [];
63
- var depth = 0;
64
- var start = -1;
65
- var inString = false;
66
- var escaped = false;
67
- for (var i = 0; i < text.length; i += 1) {
68
- var ch = text[i];
69
- if (inString) {
70
- if (escaped) escaped = false;else if (ch === '\\') escaped = true;else if (ch === '"') inString = false;
71
- } else if (ch === '"') {
72
- inString = true;
73
- } else if (ch === '{') {
74
- if (depth === 0) start = i;
75
- depth += 1;
76
- } else if (ch === '}') {
77
- depth -= 1;
78
- if (depth === 0 && start !== -1) {
79
- try {
80
- objects.push(JSON.parse(text.slice(start, i + 1)));
81
- } catch (_unused3) {
82
- // objeto balanceado pero aún no parseable: lo ignoramos
83
- }
84
- start = -1;
85
- }
86
- }
87
- }
88
- return objects;
89
- };
90
-
91
- /**
92
- * Parser PROGRESIVO para usar mientras el bloque todavía se transmite.
93
- * - Si el JSON ya es válido completo, devuelve el spec final.
94
- * - Si es un `report` parcial, devuelve el header (title/subtitle) más los
95
- * bloques cuyo `{…}` ya cerró — así se renderizan de a uno, en vivo.
96
- * - Para charts sueltos (kpis/bar/donut) devuelve `null` hasta que cierren
97
- * (no tiene sentido dibujar medio gráfico).
98
- */
99
- export var parseMaiaVizProgressive = function parseMaiaVizProgressive(code) {
100
- var trimmed = code.trim();
101
- if (!trimmed) return null;
102
-
103
- // 1. ¿Ya es JSON completo y válido?
104
- var full = parseMaiaVizSpec(trimmed);
105
- if (full) return full;
106
-
107
- // 2. Solo los reportes tienen render parcial significativo.
108
- if (matchString(trimmed, 'type') !== 'report') return null;
109
- var blocksMatch = trimmed.match(/"blocks"\s*:\s*\[/);
110
- var head = (blocksMatch === null || blocksMatch === void 0 ? void 0 : blocksMatch.index) !== undefined ? trimmed.slice(0, blocksMatch.index) : trimmed;
111
- var title = matchString(head, 'title');
112
- var subtitle = matchString(head, 'subtitle');
113
- var blocks = [];
114
- if ((blocksMatch === null || blocksMatch === void 0 ? void 0 : blocksMatch.index) !== undefined) {
115
- var arrStart = trimmed.indexOf('[', blocksMatch.index);
116
- if (arrStart !== -1) {
117
- blocks = extractCompleteObjects(trimmed.slice(arrStart + 1)).filter(isValidBlock);
118
- }
119
- }
120
-
121
- // Nada que mostrar todavía (ni header ni bloques): que siga el skeleton.
122
- if (!title && !subtitle && !blocks.length) return null;
123
- var spec = {
124
- type: 'report',
125
- blocks: blocks
126
- };
127
- if (title) spec.title = title;
128
- if (subtitle) spec.subtitle = subtitle;
129
- return spec;
130
- };
131
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWQUxJRF9UWVBFUyIsIkJMT0NLX1RZUEVTIiwibm9ybWFsaXplU2VyaWVzIiwiZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImQiLCJfb2JqZWN0U3ByZWFkIiwidmFsdWUiLCJOdW1iZXIiLCJmaWx0ZXIiLCJpc05hTiIsImlzUmVjb3JkIiwiX3R5cGVvZiIsImlzVmFsaWRCbG9jayIsInR5cGUiLCJpbmNsdWRlcyIsInBhcnNlTWFpYVZpelNwZWMiLCJjb2RlIiwidHJpbW1lZCIsInRyaW0iLCJwYXJzZWQiLCJKU09OIiwicGFyc2UiLCJfdW51c2VkIiwibWF0Y2hTdHJpbmciLCJ0ZXh0Iiwia2V5IiwibWF0Y2giLCJSZWdFeHAiLCJjb25jYXQiLCJ1bmRlZmluZWQiLCJfdW51c2VkMiIsImV4dHJhY3RDb21wbGV0ZU9iamVjdHMiLCJvYmplY3RzIiwiZGVwdGgiLCJzdGFydCIsImluU3RyaW5nIiwiZXNjYXBlZCIsImkiLCJsZW5ndGgiLCJjaCIsInB1c2giLCJzbGljZSIsIl91bnVzZWQzIiwicGFyc2VNYWlhVml6UHJvZ3Jlc3NpdmUiLCJmdWxsIiwiYmxvY2tzTWF0Y2giLCJoZWFkIiwiaW5kZXgiLCJ0aXRsZSIsInN1YnRpdGxlIiwiYmxvY2tzIiwiYXJyU3RhcnQiLCJpbmRleE9mIiwic3BlYyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFWaXovTUFJQVZpei5wYXJzZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYWlhVml6U3BlYywgUmVwb3J0QmxvY2ssIFJlcG9ydFNwZWMsIFNlcmllc1BvaW50IH0gZnJvbSAnLi9NQUlBVml6LnR5cGVzJ1xuXG5jb25zdCBWQUxJRF9UWVBFUyA9IFsna3BpcycsICdiYXInLCAnZG9udXQnLCAncmVwb3J0J11cbmNvbnN0IEJMT0NLX1RZUEVTID0gWydrcGlzJywgJ2JhcicsICdkb251dCddXG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVTZXJpZXMgPSAoZGF0YTogU2VyaWVzUG9pbnRbXSB8IHVuZGVmaW5lZCk6IFNlcmllc1BvaW50W10gPT5cbiAgKEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW10pXG4gICAgLm1hcChkID0+ICh7IC4uLmQsIHZhbHVlOiBOdW1iZXIoZC52YWx1ZSkgfSkpXG4gICAgLmZpbHRlcihkID0+ICFOdW1iZXIuaXNOYU4oZC52YWx1ZSkgJiYgZC52YWx1ZSA+PSAwKVxuXG5jb25zdCBpc1JlY29yZCA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+XG4gIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpXG5cbmNvbnN0IGlzVmFsaWRCbG9jayA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlcG9ydEJsb2NrID0+XG4gIGlzUmVjb3JkKHZhbHVlKSAmJiB0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycgJiYgQkxPQ0tfVFlQRVMuaW5jbHVkZXModmFsdWUudHlwZSlcblxuLyoqXG4gKiBQYXJzZWEgZWwgY29udGVuaWRvIENPTVBMRVRPIGRlIHVuIGJsb3F1ZSBgYGBtYWlhLXZpeiBhIHVuIHNwZWMgdGlwYWRvLlxuICogRGV2dWVsdmUgYG51bGxgIGFudGUgSlNPTiBpbnbDoWxpZG8uIFNlIHVzYSBjdWFuZG8gZWwgZmVuY2UgeWEgY2VycsOzLlxuICovXG5leHBvcnQgY29uc3QgcGFyc2VNYWlhVml6U3BlYyA9IChjb2RlOiBzdHJpbmcpOiBNYWlhVml6U3BlYyB8IG51bGwgPT4ge1xuICBjb25zdCB0cmltbWVkID0gY29kZS50cmltKClcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gbnVsbFxuXG4gIGxldCBwYXJzZWQ6IHVua25vd25cbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBKU09OLnBhcnNlKHRyaW1tZWQpXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpZiAoIWlzUmVjb3JkKHBhcnNlZCkpIHJldHVybiBudWxsXG4gIGlmICh0eXBlb2YgcGFyc2VkLnR5cGUgIT09ICdzdHJpbmcnIHx8ICFWQUxJRF9UWVBFUy5pbmNsdWRlcyhwYXJzZWQudHlwZSkpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIHBhcnNlZCBhcyB1bmtub3duIGFzIE1haWFWaXpTcGVjXG59XG5cbi8qKlxuICogRXh0cmFlIGVsIHZhbG9yIHN0cmluZyBkZSB1bmEgY2xhdmUgZGUgcHJpbWVyIG5pdmVsIChwLiBlai4gXCJ0aXRsZVwiKSBkZXNkZVxuICogdW4gZnJhZ21lbnRvIGRlIEpTT04sIGF1bnF1ZSBlbCBKU09OIHRvZGF2w61hIGVzdMOpIGluY29tcGxldG8uIFJlc3BldGEgbG9zXG4gKiBlc2NhcGVzLiBEZXZ1ZWx2ZSBgdW5kZWZpbmVkYCBzaSBubyBhcGFyZWNlIHRvZGF2w61hLlxuICovXG5jb25zdCBtYXRjaFN0cmluZyA9ICh0ZXh0OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgbWF0Y2ggPSB0ZXh0Lm1hdGNoKG5ldyBSZWdFeHAoYFwiJHtrZXl9XCJcXFxccyo6XFxcXHMqXCIoKD86W15cIlxcXFxcXFxcXXxcXFxcXFxcXC4pKilcImApKVxuICBpZiAoIW1hdGNoKSByZXR1cm4gdW5kZWZpbmVkXG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoYFwiJHttYXRjaFsxXX1cImApIGFzIHN0cmluZ1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbWF0Y2hbMV1cbiAgfVxufVxuXG4vKipcbiAqIFJlY29ycmUgdW4gdGV4dG8geSBkZXZ1ZWx2ZSBjYWRhIG9iamV0byBge+KApn1gIGRlIHByaW1lciBuaXZlbCBxdWUgeWEgZXN0w6lcbiAqIGJhbGFuY2VhZG8gKGxsYXZlIGFiaWVydGEgeSBjZXJyYWRhKSwgaWdub3JhbmRvIGxsYXZlcyBkZW50cm8gZGUgc3RyaW5ncy5cbiAqIExvcyBvYmpldG9zIGEgbWVkaW8gdHJhbnNtaXRpciBzaW1wbGVtZW50ZSBubyBhcGFyZWNlbiB0b2RhdsOtYS5cbiAqL1xuY29uc3QgZXh0cmFjdENvbXBsZXRlT2JqZWN0cyA9ICh0ZXh0OiBzdHJpbmcpOiB1bmtub3duW10gPT4ge1xuICBjb25zdCBvYmplY3RzOiB1bmtub3duW10gPSBbXVxuICBsZXQgZGVwdGggPSAwXG4gIGxldCBzdGFydCA9IC0xXG4gIGxldCBpblN0cmluZyA9IGZhbHNlXG4gIGxldCBlc2NhcGVkID0gZmFsc2VcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBjb25zdCBjaCA9IHRleHRbaV1cbiAgICBpZiAoaW5TdHJpbmcpIHtcbiAgICAgIGlmIChlc2NhcGVkKSBlc2NhcGVkID0gZmFsc2VcbiAgICAgIGVsc2UgaWYgKGNoID09PSAnXFxcXCcpIGVzY2FwZWQgPSB0cnVlXG4gICAgICBlbHNlIGlmIChjaCA9PT0gJ1wiJykgaW5TdHJpbmcgPSBmYWxzZVxuICAgIH0gZWxzZSBpZiAoY2ggPT09ICdcIicpIHtcbiAgICAgIGluU3RyaW5nID0gdHJ1ZVxuICAgIH0gZWxzZSBpZiAoY2ggPT09ICd7Jykge1xuICAgICAgaWYgKGRlcHRoID09PSAwKSBzdGFydCA9IGlcbiAgICAgIGRlcHRoICs9IDFcbiAgICB9IGVsc2UgaWYgKGNoID09PSAnfScpIHtcbiAgICAgIGRlcHRoIC09IDFcbiAgICAgIGlmIChkZXB0aCA9PT0gMCAmJiBzdGFydCAhPT0gLTEpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBvYmplY3RzLnB1c2goSlNPTi5wYXJzZSh0ZXh0LnNsaWNlKHN0YXJ0LCBpICsgMSkpIGFzIHVua25vd24pXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIG9iamV0byBiYWxhbmNlYWRvIHBlcm8gYcO6biBubyBwYXJzZWFibGU6IGxvIGlnbm9yYW1vc1xuICAgICAgICB9XG4gICAgICAgIHN0YXJ0ID0gLTFcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqZWN0c1xufVxuXG4vKipcbiAqIFBhcnNlciBQUk9HUkVTSVZPIHBhcmEgdXNhciBtaWVudHJhcyBlbCBibG9xdWUgdG9kYXbDrWEgc2UgdHJhbnNtaXRlLlxuICogLSBTaSBlbCBKU09OIHlhIGVzIHbDoWxpZG8gY29tcGxldG8sIGRldnVlbHZlIGVsIHNwZWMgZmluYWwuXG4gKiAtIFNpIGVzIHVuIGByZXBvcnRgIHBhcmNpYWwsIGRldnVlbHZlIGVsIGhlYWRlciAodGl0bGUvc3VidGl0bGUpIG3DoXMgbG9zXG4gKiAgIGJsb3F1ZXMgY3V5byBge+KApn1gIHlhIGNlcnLDsyDigJQgYXPDrSBzZSByZW5kZXJpemFuIGRlIGEgdW5vLCBlbiB2aXZvLlxuICogLSBQYXJhIGNoYXJ0cyBzdWVsdG9zIChrcGlzL2Jhci9kb251dCkgZGV2dWVsdmUgYG51bGxgIGhhc3RhIHF1ZSBjaWVycmVuXG4gKiAgIChubyB0aWVuZSBzZW50aWRvIGRpYnVqYXIgbWVkaW8gZ3LDoWZpY28pLlxuICovXG5leHBvcnQgY29uc3QgcGFyc2VNYWlhVml6UHJvZ3Jlc3NpdmUgPSAoY29kZTogc3RyaW5nKTogTWFpYVZpelNwZWMgfCBudWxsID0+IHtcbiAgY29uc3QgdHJpbW1lZCA9IGNvZGUudHJpbSgpXG4gIGlmICghdHJpbW1lZCkgcmV0dXJuIG51bGxcblxuICAvLyAxLiDCv1lhIGVzIEpTT04gY29tcGxldG8geSB2w6FsaWRvP1xuICBjb25zdCBmdWxsID0gcGFyc2VNYWlhVml6U3BlYyh0cmltbWVkKVxuICBpZiAoZnVsbCkgcmV0dXJuIGZ1bGxcblxuICAvLyAyLiBTb2xvIGxvcyByZXBvcnRlcyB0aWVuZW4gcmVuZGVyIHBhcmNpYWwgc2lnbmlmaWNhdGl2by5cbiAgaWYgKG1hdGNoU3RyaW5nKHRyaW1tZWQsICd0eXBlJykgIT09ICdyZXBvcnQnKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IGJsb2Nrc01hdGNoID0gdHJpbW1lZC5tYXRjaCgvXCJibG9ja3NcIlxccyo6XFxzKlxcWy8pXG4gIGNvbnN0IGhlYWQgPSBibG9ja3NNYXRjaD8uaW5kZXggIT09IHVuZGVmaW5lZCA/IHRyaW1tZWQuc2xpY2UoMCwgYmxvY2tzTWF0Y2guaW5kZXgpIDogdHJpbW1lZFxuICBjb25zdCB0aXRsZSA9IG1hdGNoU3RyaW5nKGhlYWQsICd0aXRsZScpXG4gIGNvbnN0IHN1YnRpdGxlID0gbWF0Y2hTdHJpbmcoaGVhZCwgJ3N1YnRpdGxlJylcblxuICBsZXQgYmxvY2tzOiBSZXBvcnRCbG9ja1tdID0gW11cbiAgaWYgKGJsb2Nrc01hdGNoPy5pbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgYXJyU3RhcnQgPSB0cmltbWVkLmluZGV4T2YoJ1snLCBibG9ja3NNYXRjaC5pbmRleClcbiAgICBpZiAoYXJyU3RhcnQgIT09IC0xKSB7XG4gICAgICBibG9ja3MgPSBleHRyYWN0Q29tcGxldGVPYmplY3RzKHRyaW1tZWQuc2xpY2UoYXJyU3RhcnQgKyAxKSkuZmlsdGVyKGlzVmFsaWRCbG9jaylcbiAgICB9XG4gIH1cblxuICAvLyBOYWRhIHF1ZSBtb3N0cmFyIHRvZGF2w61hIChuaSBoZWFkZXIgbmkgYmxvcXVlcyk6IHF1ZSBzaWdhIGVsIHNrZWxldG9uLlxuICBpZiAoIXRpdGxlICYmICFzdWJ0aXRsZSAmJiAhYmxvY2tzLmxlbmd0aCkgcmV0dXJuIG51bGxcblxuICBjb25zdCBzcGVjOiBSZXBvcnRTcGVjID0geyB0eXBlOiAncmVwb3J0JywgYmxvY2tzIH1cbiAgaWYgKHRpdGxlKSBzcGVjLnRpdGxlID0gdGl0bGVcbiAgaWYgKHN1YnRpdGxlKSBzcGVjLnN1YnRpdGxlID0gc3VidGl0bGVcbiAgcmV0dXJuIHNwZWNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQU1BLFdBQVcsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQztBQUN0RCxJQUFNQyxXQUFXLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFF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
@@ -1,40 +0,0 @@
1
- import { Skeleton } from '../Skeleton/Skeleton';
2
-
3
- /**
4
- * Placeholder mientras el bloque ```maia-viz todavía se está transmitiendo
5
- * (JSON parcial). Replica el layout: fila de KPIs + área de gráfico.
6
- */
7
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
- export var MAIAVizSkeleton = function MAIAVizSkeleton() {
9
- return /*#__PURE__*/_jsxs("div", {
10
- style: {
11
- display: 'flex',
12
- flexDirection: 'column',
13
- gap: 16,
14
- width: '100%'
15
- },
16
- children: [/*#__PURE__*/_jsx(Skeleton, {
17
- variant: "text",
18
- width: "40%",
19
- height: 18
20
- }), /*#__PURE__*/_jsx("div", {
21
- style: {
22
- display: 'grid',
23
- gridTemplateColumns: 'repeat(auto-fill, minmax(150px, 1fr))',
24
- gap: 12
25
- },
26
- children: ['kpi-a', 'kpi-b', 'kpi-c', 'kpi-d'].map(function (id) {
27
- return /*#__PURE__*/_jsx(Skeleton, {
28
- variant: "rectangular",
29
- height: 92,
30
- borderRadius: 12
31
- }, id);
32
- })
33
- }), /*#__PURE__*/_jsx(Skeleton, {
34
- variant: "rectangular",
35
- height: 200,
36
- borderRadius: 12
37
- })]
38
- });
39
- };
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTa2VsZXRvbiIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJNQUlBVml6U2tlbGV0b24iLCJzdHlsZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiZ2FwIiwid2lkdGgiLCJjaGlsZHJlbiIsInZhcmlhbnQiLCJoZWlnaHQiLCJncmlkVGVtcGxhdGVDb2x1bW5zIiwibWFwIiwiaWQiLCJib3JkZXJSYWRpdXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBVml6L01BSUFWaXouc2tlbGV0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAnLi4vU2tlbGV0b24vU2tlbGV0b24nXG5cbi8qKlxuICogUGxhY2Vob2xkZXIgbWllbnRyYXMgZWwgYmxvcXVlIGBgYG1haWEtdml6IHRvZGF2w61hIHNlIGVzdMOhIHRyYW5zbWl0aWVuZG9cbiAqIChKU09OIHBhcmNpYWwpLiBSZXBsaWNhIGVsIGxheW91dDogZmlsYSBkZSBLUElzICsgw6FyZWEgZGUgZ3LDoWZpY28uXG4gKi9cbmV4cG9ydCBjb25zdCBNQUlBVml6U2tlbGV0b24gPSAoKSA9PiAoXG4gIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxNiwgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICA8U2tlbGV0b24gdmFyaWFudD1cInRleHRcIiB3aWR0aD1cIjQwJVwiIGhlaWdodD17MTh9IC8+XG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZ3JpZCcsIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTUwcHgsIDFmcikpJywgZ2FwOiAxMiB9fT5cbiAgICAgIHtbJ2twaS1hJywgJ2twaS1iJywgJ2twaS1jJywgJ2twaS1kJ10ubWFwKGlkID0+IChcbiAgICAgICAgPFNrZWxldG9uIGtleT17aWR9IHZhcmlhbnQ9XCJyZWN0YW5ndWxhclwiIGhlaWdodD17OTJ9IGJvcmRlclJhZGl1cz17MTJ9IC8+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgICA8U2tlbGV0b24gdmFyaWFudD1cInJlY3Rhbmd1bGFyXCIgaGVpZ2h0PXsyMDB9IGJvcmRlclJhZGl1cz17MTJ9IC8+XG4gIDwvZGl2PlxuKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFRLFFBQVEsc0JBQXNCOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUhBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFJQSxPQUFPLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQTtFQUFBLG9CQUMxQkQsS0FBQTtJQUFLRSxLQUFLLEVBQUU7TUFBRUMsT0FBTyxFQUFFLE1BQU07TUFBRUMsYUFBYSxFQUFFLFFBQVE7TUFBRUMsR0FBRyxFQUFFLEVBQUU7TUFBRUMsS0FBSyxFQUFFO0lBQU8sQ0FBRTtJQUFBQyxRQUFBLGdCQUMvRVQsSUFBQSxDQUFDRixRQUFRO01BQUNZLE9BQU8sRUFBQyxNQUFNO01BQUNGLEtBQUssRUFBQyxLQUFLO01BQUNHLE1BQU0sRUFBRTtJQUFHLENBQUUsQ0FBQyxlQUNuRFgsSUFBQTtNQUFLSSxLQUFLLEVBQUU7UUFBRUMsT0FBTyxFQUFFLE1BQU07UUFBRU8sbUJBQW1CLEVBQUUsdUNBQXVDO1FBQUVMLEdBQUcsRUFBRTtNQUFHLENBQUU7TUFBQUUsUUFBQSxFQUNwRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDSSxHQUFHLENBQUMsVUFBQUMsRUFBRTtRQUFBLG9CQUMxQ2QsSUFBQSxDQUFDRixRQUFRO1VBQVVZLE9BQU8sRUFBQyxhQUFhO1VBQUNDLE1BQU0sRUFBRSxFQUFHO1VBQUNJLFlBQVksRUFBRTtRQUFHLEdBQXZERCxFQUF5RCxDQUFDO01BQUEsQ0FDMUU7SUFBQyxDQUNDLENBQUMsZUFDTmQsSUFBQSxDQUFDRixRQUFRO01BQUNZLE9BQU8sRUFBQyxhQUFhO01BQUNDLE1BQU0sRUFBRSxHQUFJO01BQUNJLFlBQVksRUFBRTtJQUFHLENBQUUsQ0FBQztFQUFBLENBQzlELENBQUM7QUFBQSxDQUNQIiwiaWdub3JlTGlzdCI6W119
@@ -1,8 +0,0 @@
1
- import styled, { keyframes } from 'styled-components';
2
- import { COR_COLORS } from './MAIAViz.types';
3
- var blockIn = keyframes(["from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}"]);
4
- export var StyledMAIAViz = styled.div.withConfig({
5
- displayName: "MAIAVizstyles__StyledMAIAViz",
6
- componentId: "sc-7b9qoj-0"
7
- })(["display:flex;flex-direction:column;gap:20px;width:100%;font-family:'Work Sans',sans-serif;color:", ";.MAIAViz-block{animation:", " 0.35s ease-out both;}@media (prefers-reduced-motion:reduce){.MAIAViz-block{animation:none;}}.MAIAViz-header{display:flex;flex-direction:column;gap:2px;}.MAIAViz-title{&&{font-size:18px;font-weight:600;line-height:1.2;color:", ";}}.MAIAViz-subtitle{&&{display:block;font-size:13px;color:", ";}}.MAIAViz-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}.MAIAViz-kpi-card{display:flex;flex-direction:column;gap:6px;padding:16px;background:", ";border:1px solid ", ";border-radius:12px;}.MAIAViz-kpi-label{font-size:13px;color:", ";}.MAIAViz-kpi-value{font-size:26px;font-weight:600;line-height:1.1;color:", ";}.MAIAViz-kpi-delta{font-size:12px;font-weight:500;}.MAIAViz-figure{&&{display:flex;flex-direction:column;gap:10px;margin:0;}}.MAIAViz-caption{font-size:14px;font-weight:500;color:", ";}.MAIAViz-donut{display:flex;flex-wrap:wrap;align-items:center;gap:24px;}.MAIAViz-legend{&&{display:flex;flex-direction:column;gap:8px;padding:0;margin:0;list-style:none;}li{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;}}.MAIAViz-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;}.MAIAViz-legend-label{color:", ";}.MAIAViz-legend-value{font-weight:600;color:", ";}.MAIAViz-error{&&{font-size:13px;color:", ";font-style:italic;}}"], COR_COLORS.text, blockIn, COR_COLORS.navy, COR_COLORS.textMuted, COR_COLORS.surfaceMuted, COR_COLORS.border, COR_COLORS.textMuted, COR_COLORS.navy, COR_COLORS.navy, COR_COLORS.text, COR_COLORS.navy, COR_COLORS.textMuted);
8
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJrZXlmcmFtZXMiLCJDT1JfQ09MT1JTIiwiYmxvY2tJbiIsIlN0eWxlZE1BSUFWaXoiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsInRleHQiLCJuYXZ5IiwidGV4dE11dGVkIiwic3VyZmFjZU11dGVkIiwiYm9yZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQVZpei9NQUlBVml6LnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5pbXBvcnQgeyBDT1JfQ09MT1JTIH0gZnJvbSAnLi9NQUlBVml6LnR5cGVzJ1xuXG5jb25zdCBibG9ja0luID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVZpeiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICR7Q09SX0NPTE9SUy50ZXh0fTtcblxuICAvKiBDYWRhIHdpZGdldCBhcGFyZWNlIGNvbiB1biBmYWRlIGFsIGNlcnJhciBzdSB74oCmfSBtaWVudHJhcyBzdHJlbWVhLiAqL1xuICAuTUFJQVZpei1ibG9jayB7XG4gICAgYW5pbWF0aW9uOiAke2Jsb2NrSW59IDAuMzVzIGVhc2Utb3V0IGJvdGg7XG4gIH1cblxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5NQUlBVml6LWJsb2NrIHtcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuTUFJQVZpei1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgfVxuXG4gIC5NQUlBVml6LXRpdGxlIHtcbiAgICAmJiB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIGNvbG9yOiAke0NPUl9DT0xPUlMubmF2eX07XG4gICAgfVxuICB9XG5cbiAgLk1BSUFWaXotc3VidGl0bGUge1xuICAgICYmIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICR7Q09SX0NPTE9SUy50ZXh0TXV0ZWR9O1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tLSBLUEkgY2FyZHMgLS0tICovXG4gIC5NQUlBVml6LWtwaXMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTUwcHgsIDFmcikpO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gIC5NQUlBVml6LWtwaS1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAke0NPUl9DT0xPUlMuc3VyZmFjZU11dGVkfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke0NPUl9DT0xPUlMuYm9yZGVyfTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB9XG5cbiAgLk1BSUFWaXota3BpLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICR7Q09SX0NPTE9SUy50ZXh0TXV0ZWR9O1xuICB9XG5cbiAgLk1BSUFWaXota3BpLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAke0NPUl9DT0xPUlMubmF2eX07XG4gIH1cblxuICAuTUFJQVZpei1rcGktZGVsdGEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgLyogLS0tIEZpZ3VyZXMgKGNoYXJ0cykgLS0tICovXG4gIC5NQUlBVml6LWZpZ3VyZSB7XG4gICAgJiYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLk1BSUFWaXotY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICR7Q09SX0NPTE9SUy5uYXZ5fTtcbiAgfVxuXG4gIC8qIC0tLSBEb251dCAtLS0gKi9cbiAgLk1BSUFWaXotZG9udXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyNHB4O1xuICB9XG5cbiAgLk1BSUFWaXotbGVnZW5kIHtcbiAgICAmJiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG4gIH1cblxuICAuTUFJQVZpei1sZWdlbmQtZG90IHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5cbiAgLk1BSUFWaXotbGVnZW5kLWxhYmVsIHtcbiAgICBjb2xvcjogJHtDT1JfQ09MT1JTLnRleHR9O1xuICB9XG5cbiAgLk1BSUFWaXotbGVnZW5kLXZhbHVlIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAke0NPUl9DT0xPUlMubmF2eX07XG4gIH1cblxuICAuTUFJQVZpei1lcnJvciB7XG4gICAgJiYge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICR7Q09SX0NPTE9SUy50ZXh0TXV0ZWR9O1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLFNBQVMsUUFBUSxtQkFBbUI7QUFFckQsU0FBU0MsVUFBVSxRQUFRLGlCQUFpQjtBQUU1QyxJQUFNQyxPQUFPLEdBQUdGLFNBQVMsNkVBU3hCO0FBRUQsT0FBTyxJQUFNRyxhQUFhLEdBQUdKLE1BQU0sQ0FBQ0ssR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHc1Q0FNNUJOLFVBQVUsQ0FBQ08sSUFBSSxFQUlUTixPQUFPLEVBb0JURCxVQUFVLENBQUNRLElBQUksRUFRZlIsVUFBVSxDQUFDUyxTQUFTLEVBZ0JqQlQsVUFBVSxDQUFDVSxZQUFZLEVBQ2pCVixVQUFVLENBQUNXLE1BQU0sRUFNNUJYLFVBQVUsQ0FBQ1MsU0FBUyxFQU9wQlQsVUFBVSxDQUFDUSxJQUFJLEVBcUJmUixVQUFVLENBQUNRLElBQUksRUFzQ2ZSLFVBQVUsQ0FBQ08sSUFBSSxFQUtmUCxVQUFVLENBQUNRLElBQUksRUFNYlIsVUFBVSxDQUFDUyxTQUFTLENBSWxDIiwiaWdub3JlTGlzdCI6W119
@@ -1,49 +0,0 @@
1
- /**
2
- * Contrato de datos que el modelo emite dentro de un bloque ```maia-viz.
3
- * El modelo NO genera HTML ni SVG: solo describe los datos. El render lo hace
4
- * el cliente con estos tipos, por eso es seguro (no pasa por la sanitización
5
- * de HTML de Streamdown).
6
- */
7
-
8
- /** Una tarjeta de KPI (los recuadros grandes con número + variación). */
9
-
10
- /** Un punto de una serie (barra, donut, etc.). */
11
-
12
- /** Bloques que pueden ir dentro de un reporte compuesto. */
13
-
14
- /** Cualquier spec válido dentro de un bloque ```maia-viz. */
15
-
16
- /**
17
- * Orden de colores de serie según el design system de COR.
18
- * Paleta de estados de tareas de COR — los gráficos viz SOLO pueden usar estos colores.
19
- */
20
- export var COR_CHART_COLORS = ['#0094CA',
21
- // azul (Nueva)
22
- '#FFAC2C',
23
- // naranja (En proceso)
24
- '#9B68BB',
25
- // morado (En revisión)
26
- '#ED2C50',
27
- // rojo (Ajustes)
28
- '#00C972',
29
- // verde (Finalizada)
30
- '#5A5A5A' // gris (neutral)
31
- ];
32
- export var COR_COLORS = {
33
- blue: '#0094CA',
34
- orange: '#FFAC2C',
35
- purple: '#9B68BB',
36
- red: '#ED2C50',
37
- green: '#00C972',
38
- gray: '#5A5A5A',
39
- positive: '#00C972',
40
- negative: '#ED2C50',
41
- neutral: '#5A5A5A',
42
- surface: '#FFFFFF',
43
- surfaceMuted: '#F7F8FA',
44
- border: 'rgba(0, 0, 0, 0.08)',
45
- text: '#5A5A5A',
46
- textMuted: 'rgba(90, 90, 90, 0.6)',
47
- navy: '#5A5A5A'
48
- };
49
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfQ0hBUlRfQ09MT1JTIiwiQ09SX0NPTE9SUyIsImJsdWUiLCJvcmFuZ2UiLCJwdXJwbGUiLCJyZWQiLCJncmVlbiIsImdyYXkiLCJwb3NpdGl2ZSIsIm5lZ2F0aXZlIiwibmV1dHJhbCIsInN1cmZhY2UiLCJzdXJmYWNlTXV0ZWQiLCJib3JkZXIiLCJ0ZXh0IiwidGV4dE11dGVkIiwibmF2eSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFWaXovTUFJQVZpei50eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRyYXRvIGRlIGRhdG9zIHF1ZSBlbCBtb2RlbG8gZW1pdGUgZGVudHJvIGRlIHVuIGJsb3F1ZSBgYGBtYWlhLXZpei5cbiAqIEVsIG1vZGVsbyBOTyBnZW5lcmEgSFRNTCBuaSBTVkc6IHNvbG8gZGVzY3JpYmUgbG9zIGRhdG9zLiBFbCByZW5kZXIgbG8gaGFjZVxuICogZWwgY2xpZW50ZSBjb24gZXN0b3MgdGlwb3MsIHBvciBlc28gZXMgc2VndXJvIChubyBwYXNhIHBvciBsYSBzYW5pdGl6YWNpw7NuXG4gKiBkZSBIVE1MIGRlIFN0cmVhbWRvd24pLlxuICovXG5cbmV4cG9ydCB0eXBlIFRyZW5kID0gJ3VwJyB8ICdkb3duJyB8ICdmbGF0J1xuXG4vKiogVW5hIHRhcmpldGEgZGUgS1BJIChsb3MgcmVjdWFkcm9zIGdyYW5kZXMgY29uIG7Dum1lcm8gKyB2YXJpYWNpw7NuKS4gKi9cbmV4cG9ydCB0eXBlIEtwaUl0ZW0gPSB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFsdWU6IHN0cmluZ1xuICAvKiogVGV4dG8gZGUgdmFyaWFjacOzbiwgcC4gZWouIFwiKzE4LjMlIHZzIDIwMjRcIi4gT3BjaW9uYWwuICovXG4gIGRlbHRhPzogc3RyaW5nXG4gIC8qKiBEaXJlY2Npw7NuIGRlIGxhIHZhcmlhY2nDs246IHBpbnRhIGVsIGRlbHRhIGVuIHZlcmRlL3Jvam8vZ3Jpcy4gKi9cbiAgdHJlbmQ/OiBUcmVuZFxufVxuXG4vKiogVW4gcHVudG8gZGUgdW5hIHNlcmllIChiYXJyYSwgZG9udXQsIGV0Yy4pLiAqL1xuZXhwb3J0IHR5cGUgU2VyaWVzUG9pbnQgPSB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFsdWU6IG51bWJlclxuICAvKiogQ29sb3Igb3ZlcnJpZGUgZW4gSEVYLiBTaSBubyBzZSBwYXNhLCBzZSB1c2EgbGEgcGFsZXRhIENPUiBwb3Igw61uZGljZS4gKi9cbiAgY29sb3I/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgS3Bpc1NwZWMgPSB7XG4gIHR5cGU6ICdrcGlzJ1xuICB0aXRsZT86IHN0cmluZ1xuICBzdWJ0aXRsZT86IHN0cmluZ1xuICBpdGVtczogS3BpSXRlbVtdXG59XG5cbmV4cG9ydCB0eXBlIEJhclNwZWMgPSB7XG4gIHR5cGU6ICdiYXInXG4gIHRpdGxlPzogc3RyaW5nXG4gIC8qKiBTdWZpam8gZGUgdW5pZGFkIHBhcmEgZWwgZWplL3Rvb2x0aXAsIHAuIGVqLiBcIk0gVVNEXCIuICovXG4gIHVuaXQ/OiBzdHJpbmdcbiAgZGF0YTogU2VyaWVzUG9pbnRbXVxufVxuXG5leHBvcnQgdHlwZSBEb251dFNwZWMgPSB7XG4gIHR5cGU6ICdkb251dCdcbiAgdGl0bGU/OiBzdHJpbmdcbiAgZGF0YTogU2VyaWVzUG9pbnRbXVxufVxuXG4vKiogQmxvcXVlcyBxdWUgcHVlZGVuIGlyIGRlbnRybyBkZSB1biByZXBvcnRlIGNvbXB1ZXN0by4gKi9cbmV4cG9ydCB0eXBlIFJlcG9ydEJsb2NrID0gS3Bpc1NwZWMgfCBCYXJTcGVjIHwgRG9udXRTcGVjXG5cbmV4cG9ydCB0eXBlIFJlcG9ydFNwZWMgPSB7XG4gIHR5cGU6ICdyZXBvcnQnXG4gIHRpdGxlPzogc3RyaW5nXG4gIHN1YnRpdGxlPzogc3RyaW5nXG4gIGJsb2NrczogUmVwb3J0QmxvY2tbXVxufVxuXG4vKiogQ3VhbHF1aWVyIHNwZWMgdsOhbGlkbyBkZW50cm8gZGUgdW4gYmxvcXVlIGBgYG1haWEtdml6LiAqL1xuZXhwb3J0IHR5cGUgTWFpYVZpelNwZWMgPSBLcGlzU3BlYyB8IEJhclNwZWMgfCBEb251dFNwZWMgfCBSZXBvcnRTcGVjXG5cbi8qKlxuICogT3JkZW4gZGUgY29sb3JlcyBkZSBzZXJpZSBzZWfDum4gZWwgZGVzaWduIHN5c3RlbSBkZSBDT1IuXG4gKiBQYWxldGEgZGUgZXN0YWRvcyBkZSB0YXJlYXMgZGUgQ09SIOKAlCBsb3MgZ3LDoWZpY29zIHZpeiBTT0xPIHB1ZWRlbiB1c2FyIGVzdG9zIGNvbG9yZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBDT1JfQ0hBUlRfQ09MT1JTID0gW1xuICAnIzAwOTRDQScsIC8vIGF6dWwgKE51ZXZhKVxuICAnI0ZGQUMyQycsIC8vIG5hcmFuamEgKEVuIHByb2Nlc28pXG4gICcjOUI2OEJCJywgLy8gbW9yYWRvIChFbiByZXZpc2nDs24pXG4gICcjRUQyQzUwJywgLy8gcm9qbyAoQWp1c3RlcylcbiAgJyMwMEM5NzInLCAvLyB2ZXJkZSAoRmluYWxpemFkYSlcbiAgJyM1QTVBNUEnLCAvLyBncmlzIChuZXV0cmFsKVxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgQ09SX0NPTE9SUyA9IHtcbiAgYmx1ZTogJyMwMDk0Q0EnLFxuICBvcmFuZ2U6ICcjRkZBQzJDJyxcbiAgcHVycGxlOiAnIzlCNjhCQicsXG4gIHJlZDogJyNFRDJDNTAnLFxuICBncmVlbjogJyMwMEM5NzInLFxuICBncmF5OiAnIzVBNUE1QScsXG4gIHBvc2l0aXZlOiAnIzAwQzk3MicsXG4gIG5lZ2F0aXZlOiAnI0VEMkM1MCcsXG4gIG5ldXRyYWw6ICcjNUE1QTVBJyxcbiAgc3VyZmFjZTogJyNGRkZGRkYnLFxuICBzdXJmYWNlTXV0ZWQ6ICcjRjdGOEZBJyxcbiAgYm9yZGVyOiAncmdiYSgwLCAwLCAwLCAwLjA4KScsXG4gIHRleHQ6ICcjNUE1QTVBJyxcbiAgdGV4dE11dGVkOiAncmdiYSg5MCwgOTAsIDkwLCAwLjYpJyxcbiAgbmF2eTogJyM1QTVBNUEnLFxufSBhcyBjb25zdFxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUE7O0FBVUE7O0FBNkJBOztBQVVBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQSxnQkFBZ0IsR0FBRyxDQUM5QixTQUFTO0FBQUU7QUFDWCxTQUFTO0FBQUU7QUFDWCxTQUFTO0FBQUU7QUFDWCxTQUFTO0FBQUU7QUFDWCxTQUFTO0FBQUU7QUFDWCxTQUFTLENBQUU7QUFBQSxDQUNIO0FBRVYsT0FBTyxJQUFNQyxVQUFVLEdBQUc7RUFDeEJDLElBQUksRUFBRSxTQUFTO0VBQ2ZDLE1BQU0sRUFBRSxTQUFTO0VBQ2pCQyxNQUFNLEVBQUUsU0FBUztFQUNqQkMsR0FBRyxFQUFFLFNBQVM7RUFDZEMsS0FBSyxFQUFFLFNBQVM7RUFDaEJDLElBQUksRUFBRSxTQUFTO0VBQ2ZDLFFBQVEsRUFBRSxTQUFTO0VBQ25CQyxRQUFRLEVBQUUsU0FBUztFQUNuQkMsT0FBTyxFQUFFLFNBQVM7RUFDbEJDLE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxZQUFZLEVBQUUsU0FBUztFQUN2QkMsTUFBTSxFQUFFLHFCQUFxQjtFQUM3QkMsSUFBSSxFQUFFLFNBQVM7RUFDZkMsU0FBUyxFQUFFLHVCQUF1QjtFQUNsQ0MsSUFBSSxFQUFFO0FBQ1IsQ0FBVSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,123 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import { COR_COLORS, COR_CHART_COLORS } from './MAIAViz.types';
3
- import { normalizeSeries } from './MAIAViz.parse';
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- var WIDTH = 640;
6
- var PAD_LEFT = 48;
7
- var PAD_RIGHT = 16;
8
- var PAD_TOP = 16;
9
- var PLOT_H = 210;
10
- var TICKS = 4;
11
- var NICE_STEPS = [1, 1.5, 2, 2.5, 3, 4, 5, 6, 8, 10];
12
- var niceCeil = function niceCeil(value) {
13
- var _NICE_STEPS$find;
14
- if (value <= 0) return 1;
15
- var pow = Math.pow(10, Math.floor(Math.log10(value)));
16
- var norm = value / pow;
17
- var step = (_NICE_STEPS$find = NICE_STEPS.find(function (s) {
18
- return s >= norm;
19
- })) !== null && _NICE_STEPS$find !== void 0 ? _NICE_STEPS$find : 10;
20
- return step * pow;
21
- };
22
- var truncate = function truncate(label, maxChars) {
23
- return label.length > maxChars ? "".concat(label.slice(0, maxChars - 1), "\u2026") : label;
24
- };
25
- export var MAIAVizBar = function MAIAVizBar(_ref) {
26
- var _spec$title;
27
- var spec = _ref.spec;
28
- var data = normalizeSeries(spec.data);
29
- if (!data.length) return null;
30
- var max = niceCeil(Math.max.apply(Math, _toConsumableArray(data.map(function (d) {
31
- return d.value;
32
- }))));
33
- var plotW = WIDTH - PAD_LEFT - PAD_RIGHT;
34
- var slot = plotW / data.length;
35
- var barW = Math.min(slot * 0.55, 64);
36
- var unit = spec.unit ? " ".concat(spec.unit) : '';
37
-
38
- // Con nombres largos o muchas barras, las etiquetas horizontales se pisan:
39
- // las rotamos y reservamos más alto abajo. Con pocas y cortas (Q1, Q2…) no.
40
- var maxLabelLen = Math.max.apply(Math, _toConsumableArray(data.map(function (d) {
41
- return d.label.length;
42
- })));
43
- var rotate = data.length > 4 || maxLabelLen > 9;
44
- var labelCap = rotate ? 20 : Math.max(5, Math.floor(slot / 7));
45
- var padBottom = rotate ? 92 : 40;
46
- var height = PAD_TOP + PLOT_H + padBottom;
47
- var yFor = function yFor(value) {
48
- return PAD_TOP + PLOT_H - value / max * PLOT_H;
49
- };
50
- var baseline = PAD_TOP + PLOT_H;
51
- return /*#__PURE__*/_jsxs("figure", {
52
- className: "MAIAViz-figure",
53
- children: [spec.title && /*#__PURE__*/_jsx("figcaption", {
54
- className: "MAIAViz-caption",
55
- children: spec.title
56
- }), /*#__PURE__*/_jsxs("svg", {
57
- viewBox: "0 0 ".concat(WIDTH, " ").concat(height),
58
- role: "img",
59
- "aria-label": (_spec$title = spec.title) !== null && _spec$title !== void 0 ? _spec$title : 'Gráfico de barras',
60
- preserveAspectRatio: "xMidYMid meet",
61
- style: {
62
- width: '100%',
63
- height: 'auto',
64
- display: 'block'
65
- },
66
- children: [Array.from({
67
- length: TICKS + 1
68
- }, function (_, i) {
69
- var value = max / TICKS * i;
70
- var y = yFor(value);
71
- return /*#__PURE__*/_jsxs("g", {
72
- children: [/*#__PURE__*/_jsx("line", {
73
- x1: PAD_LEFT,
74
- y1: y,
75
- x2: WIDTH - PAD_RIGHT,
76
- y2: y,
77
- stroke: COR_COLORS.border,
78
- strokeWidth: 1
79
- }), /*#__PURE__*/_jsx("text", {
80
- x: PAD_LEFT - 8,
81
- y: y + 4,
82
- textAnchor: "end",
83
- fontSize: 11,
84
- fill: COR_COLORS.textMuted,
85
- children: Math.round(value)
86
- })]
87
- }, "tick-".concat(value));
88
- }), data.map(function (d, i) {
89
- var _d$color;
90
- var x = PAD_LEFT + slot * i + (slot - barW) / 2;
91
- var y = yFor(d.value);
92
- var h = baseline - y;
93
- var fill = (_d$color = d.color) !== null && _d$color !== void 0 ? _d$color : COR_CHART_COLORS[i % COR_CHART_COLORS.length];
94
- var cx = x + barW / 2;
95
- var ly = baseline + (rotate ? 14 : 18);
96
- return /*#__PURE__*/_jsxs("g", {
97
- children: [/*#__PURE__*/_jsx("rect", {
98
- x: x,
99
- y: y,
100
- width: barW,
101
- height: Math.max(h, 0),
102
- rx: 4,
103
- fill: fill,
104
- children: /*#__PURE__*/_jsx("title", {
105
- children: "".concat(d.label, ": ").concat(d.value).concat(unit)
106
- })
107
- }), /*#__PURE__*/_jsxs("text", {
108
- x: cx,
109
- y: ly,
110
- textAnchor: rotate ? 'end' : 'middle',
111
- transform: rotate ? "rotate(-32 ".concat(cx, " ").concat(ly, ")") : undefined,
112
- fontSize: 11,
113
- fill: COR_COLORS.text,
114
- children: [truncate(d.label, labelCap), /*#__PURE__*/_jsx("title", {
115
- children: d.label
116
- })]
117
- })]
118
- }, d.label);
119
- })]
120
- })]
121
- });
122
- };
123
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfQ09MT1JTIiwiQ09SX0NIQVJUX0NPTE9SUyIsIm5vcm1hbGl6ZVNlcmllcyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJXSURUSCIsIlBBRF9MRUZUIiwiUEFEX1JJR0hUIiwiUEFEX1RPUCIsIlBMT1RfSCIsIlRJQ0tTIiwiTklDRV9TVEVQUyIsIm5pY2VDZWlsIiwidmFsdWUiLCJfTklDRV9TVEVQUyRmaW5kIiwicG93IiwiTWF0aCIsImZsb29yIiwibG9nMTAiLCJub3JtIiwic3RlcCIsImZpbmQiLCJzIiwidHJ1bmNhdGUiLCJsYWJlbCIsIm1heENoYXJzIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJNQUlBVml6QmFyIiwiX3JlZiIsIl9zcGVjJHRpdGxlIiwic3BlYyIsImRhdGEiLCJtYXgiLCJhcHBseSIsIl90b0NvbnN1bWFibGVBcnJheSIsIm1hcCIsImQiLCJwbG90VyIsInNsb3QiLCJiYXJXIiwibWluIiwidW5pdCIsIm1heExhYmVsTGVuIiwicm90YXRlIiwibGFiZWxDYXAiLCJwYWRCb3R0b20iLCJoZWlnaHQiLCJ5Rm9yIiwiYmFzZWxpbmUiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsInRpdGxlIiwidmlld0JveCIsInJvbGUiLCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwic3R5bGUiLCJ3aWR0aCIsImRpc3BsYXkiLCJBcnJheSIsImZyb20iLCJfIiwiaSIsInkiLCJ4MSIsInkxIiwieDIiLCJ5MiIsInN0cm9rZSIsImJvcmRlciIsInN0cm9rZVdpZHRoIiwieCIsInRleHRBbmNob3IiLCJmb250U2l6ZSIsImZpbGwiLCJ0ZXh0TXV0ZWQiLCJyb3VuZCIsIl9kJGNvbG9yIiwiaCIsImNvbG9yIiwiY3giLCJseSIsInJ4IiwidHJhbnNmb3JtIiwidW5kZWZpbmVkIiwidGV4dCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFWaXovTUFJQVZpekJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFyU3BlYywgQ09SX0NPTE9SUywgQ09SX0NIQVJUX0NPTE9SUyB9IGZyb20gJy4vTUFJQVZpei50eXBlcydcbmltcG9ydCB7IG5vcm1hbGl6ZVNlcmllcyB9IGZyb20gJy4vTUFJQVZpei5wYXJzZSdcblxudHlwZSBNQUlBVml6QmFyUHJvcHMgPSB7XG4gIHNwZWM6IEJhclNwZWNcbn1cblxuY29uc3QgV0lEVEggPSA2NDBcbmNvbnN0IFBBRF9MRUZUID0gNDhcbmNvbnN0IFBBRF9SSUdIVCA9IDE2XG5jb25zdCBQQURfVE9QID0gMTZcbmNvbnN0IFBMT1RfSCA9IDIxMFxuY29uc3QgVElDS1MgPSA0XG5cbmNvbnN0IE5JQ0VfU1RFUFMgPSBbMSwgMS41LCAyLCAyLjUsIDMsIDQsIDUsIDYsIDgsIDEwXVxuXG5jb25zdCBuaWNlQ2VpbCA9ICh2YWx1ZTogbnVtYmVyKTogbnVtYmVyID0+IHtcbiAgaWYgKHZhbHVlIDw9IDApIHJldHVybiAxXG4gIGNvbnN0IHBvdyA9IDEwICoqIE1hdGguZmxvb3IoTWF0aC5sb2cxMCh2YWx1ZSkpXG4gIGNvbnN0IG5vcm0gPSB2YWx1ZSAvIHBvd1xuICBjb25zdCBzdGVwID0gTklDRV9TVEVQUy5maW5kKHMgPT4gcyA+PSBub3JtKSA/PyAxMFxuICByZXR1cm4gc3RlcCAqIHBvd1xufVxuXG5jb25zdCB0cnVuY2F0ZSA9IChsYWJlbDogc3RyaW5nLCBtYXhDaGFyczogbnVtYmVyKTogc3RyaW5nID0+XG4gIGxhYmVsLmxlbmd0aCA+IG1heENoYXJzID8gYCR7bGFiZWwuc2xpY2UoMCwgbWF4Q2hhcnMgLSAxKX3igKZgIDogbGFiZWxcblxuZXhwb3J0IGNvbnN0IE1BSUFWaXpCYXIgPSAoeyBzcGVjIH06IE1BSUFWaXpCYXJQcm9wcykgPT4ge1xuICBjb25zdCBkYXRhID0gbm9ybWFsaXplU2VyaWVzKHNwZWMuZGF0YSlcbiAgaWYgKCFkYXRhLmxlbmd0aCkgcmV0dXJuIG51bGxcblxuICBjb25zdCBtYXggPSBuaWNlQ2VpbChNYXRoLm1heCguLi5kYXRhLm1hcChkID0+IGQudmFsdWUpKSlcbiAgY29uc3QgcGxvdFcgPSBXSURUSCAtIFBBRF9MRUZUIC0gUEFEX1JJR0hUXG4gIGNvbnN0IHNsb3QgPSBwbG90VyAvIGRhdGEubGVuZ3RoXG4gIGNvbnN0IGJhclcgPSBNYXRoLm1pbihzbG90ICogMC41NSwgNjQpXG4gIGNvbnN0IHVuaXQgPSBzcGVjLnVuaXQgPyBgICR7c3BlYy51bml0fWAgOiAnJ1xuXG4gIC8vIENvbiBub21icmVzIGxhcmdvcyBvIG11Y2hhcyBiYXJyYXMsIGxhcyBldGlxdWV0YXMgaG9yaXpvbnRhbGVzIHNlIHBpc2FuOlxuICAvLyBsYXMgcm90YW1vcyB5IHJlc2VydmFtb3MgbcOhcyBhbHRvIGFiYWpvLiBDb24gcG9jYXMgeSBjb3J0YXMgKFExLCBRMuKApikgbm8uXG4gIGNvbnN0IG1heExhYmVsTGVuID0gTWF0aC5tYXgoLi4uZGF0YS5tYXAoZCA9PiBkLmxhYmVsLmxlbmd0aCkpXG4gIGNvbnN0IHJvdGF0ZSA9IGRhdGEubGVuZ3RoID4gNCB8fCBtYXhMYWJlbExlbiA+IDlcbiAgY29uc3QgbGFiZWxDYXAgPSByb3RhdGUgPyAyMCA6IE1hdGgubWF4KDUsIE1hdGguZmxvb3Ioc2xvdCAvIDcpKVxuICBjb25zdCBwYWRCb3R0b20gPSByb3RhdGUgPyA5MiA6IDQwXG4gIGNvbnN0IGhlaWdodCA9IFBBRF9UT1AgKyBQTE9UX0ggKyBwYWRCb3R0b21cblxuICBjb25zdCB5Rm9yID0gKHZhbHVlOiBudW1iZXIpID0+IFBBRF9UT1AgKyBQTE9UX0ggLSAodmFsdWUgLyBtYXgpICogUExPVF9IXG4gIGNvbnN0IGJhc2VsaW5lID0gUEFEX1RPUCArIFBMT1RfSFxuXG4gIHJldHVybiAoXG4gICAgPGZpZ3VyZSBjbGFzc05hbWU9XCJNQUlBVml6LWZpZ3VyZVwiPlxuICAgICAge3NwZWMudGl0bGUgJiYgPGZpZ2NhcHRpb24gY2xhc3NOYW1lPVwiTUFJQVZpei1jYXB0aW9uXCI+e3NwZWMudGl0bGV9PC9maWdjYXB0aW9uPn1cbiAgICAgIDxzdmdcbiAgICAgICAgdmlld0JveD17YDAgMCAke1dJRFRIfSAke2hlaWdodH1gfVxuICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgYXJpYS1sYWJlbD17c3BlYy50aXRsZSA/PyAnR3LDoWZpY28gZGUgYmFycmFzJ31cbiAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIlxuICAgICAgICBzdHlsZT17eyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJywgZGlzcGxheTogJ2Jsb2NrJyB9fVxuICAgICAgPlxuICAgICAgICB7QXJyYXkuZnJvbSh7IGxlbmd0aDogVElDS1MgKyAxIH0sIChfLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSAobWF4IC8gVElDS1MpICogaVxuICAgICAgICAgIGNvbnN0IHkgPSB5Rm9yKHZhbHVlKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZyBrZXk9e2B0aWNrLSR7dmFsdWV9YH0+XG4gICAgICAgICAgICAgIDxsaW5lIHgxPXtQQURfTEVGVH0geTE9e3l9IHgyPXtXSURUSCAtIFBBRF9SSUdIVH0geTI9e3l9IHN0cm9rZT17Q09SX0NPTE9SUy5ib3JkZXJ9IHN0cm9rZVdpZHRoPXsxfSAvPlxuICAgICAgICAgICAgICA8dGV4dCB4PXtQQURfTEVGVCAtIDh9IHk9e3kgKyA0fSB0ZXh0QW5jaG9yPVwiZW5kXCIgZm9udFNpemU9ezExfSBmaWxsPXtDT1JfQ09MT1JTLnRleHRNdXRlZH0+XG4gICAgICAgICAgICAgICAge01hdGgucm91bmQodmFsdWUpfVxuICAgICAgICAgICAgICA8L3RleHQ+XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cblxuICAgICAgICB7ZGF0YS5tYXAoKGQsIGkpID0+IHtcbiAgICAgICAgICBjb25zdCB4ID0gUEFEX0xFRlQgKyBzbG90ICogaSArIChzbG90IC0gYmFyVykgLyAyXG4gICAgICAgICAgY29uc3QgeSA9IHlGb3IoZC52YWx1ZSlcbiAgICAgICAgICBjb25zdCBoID0gYmFzZWxpbmUgLSB5XG4gICAgICAgICAgY29uc3QgZmlsbCA9IGQuY29sb3IgPz8gQ09SX0NIQVJUX0NPTE9SU1tpICUgQ09SX0NIQVJUX0NPTE9SUy5sZW5ndGhdXG4gICAgICAgICAgY29uc3QgY3ggPSB4ICsgYmFyVyAvIDJcbiAgICAgICAgICBjb25zdCBseSA9IGJhc2VsaW5lICsgKHJvdGF0ZSA/IDE0IDogMTgpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxnIGtleT17ZC5sYWJlbH0+XG4gICAgICAgICAgICAgIDxyZWN0IHg9e3h9IHk9e3l9IHdpZHRoPXtiYXJXfSBoZWlnaHQ9e01hdGgubWF4KGgsIDApfSByeD17NH0gZmlsbD17ZmlsbH0+XG4gICAgICAgICAgICAgICAgPHRpdGxlPntgJHtkLmxhYmVsfTogJHtkLnZhbHVlfSR7dW5pdH1gfTwvdGl0bGU+XG4gICAgICAgICAgICAgIDwvcmVjdD5cbiAgICAgICAgICAgICAgPHRleHRcbiAgICAgICAgICAgICAgICB4PXtjeH1cbiAgICAgICAgICAgICAgICB5PXtseX1cbiAgICAgICAgICAgICAgICB0ZXh0QW5jaG9yPXtyb3RhdGUgPyAnZW5kJyA6ICdtaWRkbGUnfVxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybT17cm90YXRlID8gYHJvdGF0ZSgtMzIgJHtjeH0gJHtseX0pYCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICBmb250U2l6ZT17MTF9XG4gICAgICAgICAgICAgICAgZmlsbD17Q09SX0NPTE9SUy50ZXh0fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RydW5jYXRlKGQubGFiZWwsIGxhYmVsQ2FwKX1cbiAgICAgICAgICAgICAgICA8dGl0bGU+e2QubGFiZWx9PC90aXRsZT5cbiAgICAgICAgICAgICAgPC90ZXh0PlxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgIClcbiAgICAgICAgfSl9XG4gICAg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