@snksergio/design-system 0.39.0 → 0.40.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 (75) hide show
  1. package/dist-lib/chunks/app-shell-mocks-kWIVSzLs.mjs.map +1 -1
  2. package/dist-lib/chunks/app-shell-mocks-oO_IV3Gw.cjs.map +1 -1
  3. package/dist-lib/chunks/{avatar-DSmxOg-W.cjs → avatar-BiaG9OJS.cjs} +6 -1
  4. package/dist-lib/chunks/avatar-BiaG9OJS.cjs.map +1 -0
  5. package/dist-lib/chunks/{avatar-c1_uhYC5.mjs → avatar-DQYiVRlE.mjs} +6 -1
  6. package/dist-lib/chunks/avatar-DQYiVRlE.mjs.map +1 -0
  7. package/dist-lib/chunks/chat-v2-mocks-BV9Wha_Z.cjs.map +1 -1
  8. package/dist-lib/chunks/chat-v2-mocks-DvZRkhmz.mjs.map +1 -1
  9. package/dist-lib/chunks/{input-SiP1JWBU.mjs → input-CaC0B-_v.mjs} +2 -2
  10. package/dist-lib/chunks/{input-SiP1JWBU.mjs.map → input-CaC0B-_v.mjs.map} +1 -1
  11. package/dist-lib/chunks/{input-6P31vUfa.cjs → input-DMH5rSP1.cjs} +2 -2
  12. package/dist-lib/chunks/{input-6P31vUfa.cjs.map → input-DMH5rSP1.cjs.map} +1 -1
  13. package/dist-lib/chunks/{kpi-delta-BQ6waavJ.mjs → kpi-delta-CjR0OsdC.mjs} +3 -3
  14. package/dist-lib/chunks/{kpi-delta-BQ6waavJ.mjs.map → kpi-delta-CjR0OsdC.mjs.map} +1 -1
  15. package/dist-lib/chunks/{kpi-delta-NM4hUgz4.cjs → kpi-delta-NnEu4oIs.cjs} +3 -3
  16. package/dist-lib/chunks/{kpi-delta-NM4hUgz4.cjs.map → kpi-delta-NnEu4oIs.cjs.map} +1 -1
  17. package/dist-lib/chunks/{page-header-DEa2Lrl1.cjs → page-header-Cp_9Wog4.cjs} +2 -2
  18. package/dist-lib/chunks/page-header-Cp_9Wog4.cjs.map +1 -0
  19. package/dist-lib/chunks/{page-header-D3hIqlo2.mjs → page-header-DEGbgT4w.mjs} +2 -2
  20. package/dist-lib/chunks/page-header-DEGbgT4w.mjs.map +1 -0
  21. package/dist-lib/chunks/{panel-CsvrFQem.mjs → panel-B1xKDbjB.mjs} +5 -5
  22. package/dist-lib/chunks/panel-B1xKDbjB.mjs.map +1 -0
  23. package/dist-lib/chunks/{panel-CUXtnRRW.cjs → panel-ma7e3s4C.cjs} +5 -5
  24. package/dist-lib/chunks/panel-ma7e3s4C.cjs.map +1 -0
  25. package/dist-lib/chunks/{textarea-C1QmGVPr.mjs → textarea-DivoQmJw.mjs} +2 -2
  26. package/dist-lib/chunks/textarea-DivoQmJw.mjs.map +1 -0
  27. package/dist-lib/chunks/{textarea-BOEpteRb.cjs → textarea-c80RFmMP.cjs} +2 -2
  28. package/dist-lib/chunks/textarea-c80RFmMP.cjs.map +1 -0
  29. package/dist-lib/chunks/{tooltip-CO5noC2-.mjs → tooltip-mMF4YHZg.mjs} +146 -35
  30. package/dist-lib/chunks/tooltip-mMF4YHZg.mjs.map +1 -0
  31. package/dist-lib/chunks/{tooltip-CAZAtBhO.cjs → tooltip-pvZ_X-Ub.cjs} +145 -34
  32. package/dist-lib/chunks/tooltip-pvZ_X-Ub.cjs.map +1 -0
  33. package/dist-lib/chunks/{useTheme-C8eZFGSb.cjs → useTheme-BD0nloAv.cjs} +2 -2
  34. package/dist-lib/chunks/useTheme-BD0nloAv.cjs.map +1 -0
  35. package/dist-lib/chunks/{useTheme-Chash1gR.mjs → useTheme-D1QVzZDW.mjs} +2 -2
  36. package/dist-lib/chunks/useTheme-D1QVzZDW.mjs.map +1 -0
  37. package/dist-lib/index.cjs +71 -32
  38. package/dist-lib/index.cjs.map +1 -1
  39. package/dist-lib/index.mjs +77 -38
  40. package/dist-lib/index.mjs.map +1 -1
  41. package/dist-lib/preview/chat.cjs +3 -3
  42. package/dist-lib/preview/chat.cjs.map +1 -1
  43. package/dist-lib/preview/chat.mjs +3 -3
  44. package/dist-lib/preview/chat.mjs.map +1 -1
  45. package/dist-lib/preview/clientes.cjs +6 -6
  46. package/dist-lib/preview/clientes.mjs +6 -6
  47. package/dist-lib/preview/dashboard.cjs +4 -4
  48. package/dist-lib/preview/dashboard.mjs +4 -4
  49. package/dist-lib/shadcn.cjs +5 -4
  50. package/dist-lib/shadcn.cjs.map +1 -1
  51. package/dist-lib/shadcn.mjs +7 -6
  52. package/dist-lib/src/components/shadcn/input-otp.d.ts +83 -33
  53. package/dist-lib/src/components/shadcn/input-otp.d.ts.map +1 -1
  54. package/dist-lib/src/components/ui/Chart/chart.d.ts.map +1 -1
  55. package/dist-lib/src/components/ui/MarkdownText/markdown-text.d.ts.map +1 -1
  56. package/dist-lib/src/lib/utils.d.ts.map +1 -1
  57. package/dist-lib/theme/brand-blue.css +110 -110
  58. package/dist-lib/theme/brand-green.css +110 -110
  59. package/dist-lib/theme/brand-pay.css +189 -189
  60. package/dist-lib/theme/brand-vibrant.css +148 -148
  61. package/dist-lib/tokens.cjs.map +1 -1
  62. package/dist-lib/tokens.mjs.map +1 -1
  63. package/package.json +6 -3
  64. package/dist-lib/chunks/avatar-DSmxOg-W.cjs.map +0 -1
  65. package/dist-lib/chunks/avatar-c1_uhYC5.mjs.map +0 -1
  66. package/dist-lib/chunks/page-header-D3hIqlo2.mjs.map +0 -1
  67. package/dist-lib/chunks/page-header-DEa2Lrl1.cjs.map +0 -1
  68. package/dist-lib/chunks/panel-CUXtnRRW.cjs.map +0 -1
  69. package/dist-lib/chunks/panel-CsvrFQem.mjs.map +0 -1
  70. package/dist-lib/chunks/textarea-BOEpteRb.cjs.map +0 -1
  71. package/dist-lib/chunks/textarea-C1QmGVPr.mjs.map +0 -1
  72. package/dist-lib/chunks/tooltip-CAZAtBhO.cjs.map +0 -1
  73. package/dist-lib/chunks/tooltip-CO5noC2-.mjs.map +0 -1
  74. package/dist-lib/chunks/useTheme-C8eZFGSb.cjs.map +0 -1
  75. package/dist-lib/chunks/useTheme-Chash1gR.mjs.map +0 -1
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const panel = require("./chunks/panel-CUXtnRRW.cjs");
4
- const useTheme = require("./chunks/useTheme-C8eZFGSb.cjs");
5
- const avatar = require("./chunks/avatar-DSmxOg-W.cjs");
3
+ const panel = require("./chunks/panel-ma7e3s4C.cjs");
4
+ const useTheme = require("./chunks/useTheme-BD0nloAv.cjs");
5
+ const avatar = require("./chunks/avatar-BiaG9OJS.cjs");
6
6
  const jsxRuntime = require("react/jsx-runtime");
7
7
  const React = require("react");
8
- const textarea = require("./chunks/textarea-BOEpteRb.cjs");
8
+ const textarea = require("./chunks/textarea-c80RFmMP.cjs");
9
9
  const lucideReact = require("lucide-react");
10
- const tooltip = require("./chunks/tooltip-CAZAtBhO.cjs");
10
+ const tooltip = require("./chunks/tooltip-pvZ_X-Ub.cjs");
11
11
  require("@radix-ui/react-aspect-ratio");
12
12
  require("react-day-picker");
13
13
  require("@radix-ui/react-collapsible");
14
- const input = require("./chunks/input-6P31vUfa.cjs");
14
+ const input = require("./chunks/input-DMH5rSP1.cjs");
15
15
  const sonner = require("sonner");
16
- const kpiDelta = require("./chunks/kpi-delta-NM4hUgz4.cjs");
17
- const pageHeader = require("./chunks/page-header-DEa2Lrl1.cjs");
16
+ const kpiDelta = require("./chunks/kpi-delta-NnEu4oIs.cjs");
17
+ const pageHeader = require("./chunks/page-header-Cp_9Wog4.cjs");
18
18
  const RechartsPrimitive = require("recharts");
19
19
  const reactVirtual = require("@tanstack/react-virtual");
20
20
  require("@hello-pangea/dnd");
@@ -402,27 +402,63 @@ const markdownTextStyles = avatar.tv({
402
402
  });
403
403
  const CODE_RE = /```([\s\S]+?)```|`([^`]+?)`/g;
404
404
  const URL_RE = /((?:https?:\/\/|www\.)[^\s<>()]+[^\s<>().,!?;:'"])/g;
405
+ function pushAll(dst, src) {
406
+ for (const node of src) dst.push(node);
407
+ }
408
+ const MARKERS = [
409
+ { re: /\*([^*\n]+?)\*/, slot: "strong", el: "strong" },
410
+ { re: /_([^_\n]+?)_/, slot: "em", el: "em" },
411
+ { re: /~([^~\n]+?)~/, slot: "strike", el: "span" }
412
+ ];
405
413
  function parseInline(text, s, prefix) {
406
- const markers = [
407
- { re: /\*([^*\n]+?)\*/, slot: "strong", el: "strong" },
408
- { re: /_([^_\n]+?)_/, slot: "em", el: "em" },
409
- { re: /~([^~\n]+?)~/, slot: "strike", el: "span" }
410
- ];
411
- for (const { re, slot, el } of markers) {
412
- const m = re.exec(text);
413
- if (!m || m.index === void 0) continue;
414
- const before = text.slice(0, m.index);
414
+ const root = [];
415
+ const frames = [root];
416
+ const work = [{ kind: "text", text, prefix }];
417
+ while (work.length) {
418
+ const task = work.pop();
419
+ if (task.kind === "open") {
420
+ frames.push([]);
421
+ continue;
422
+ }
423
+ if (task.kind === "close") {
424
+ const children = frames.pop();
425
+ const Tag = task.el;
426
+ frames[frames.length - 1].push(
427
+ /* @__PURE__ */ jsxRuntime.jsx(Tag, { className: task.className, children }, task.key)
428
+ );
429
+ continue;
430
+ }
431
+ const current = frames[frames.length - 1];
432
+ let mk = null;
433
+ let m = null;
434
+ for (const candidate of MARKERS) {
435
+ const found = candidate.re.exec(task.text);
436
+ if (found && found.index !== void 0) {
437
+ mk = candidate;
438
+ m = found;
439
+ break;
440
+ }
441
+ }
442
+ if (!mk || !m) {
443
+ if (task.text) current.push(task.text);
444
+ continue;
445
+ }
446
+ const before = task.text.slice(0, m.index);
415
447
  const inner = m[1];
416
- const after = text.slice(m.index + m[0].length);
417
- const Tag = el;
418
- const className = slot === "strong" ? s.strong() : slot === "em" ? s.em() : s.strike();
419
- return [
420
- ...parseInline(before, s, `${prefix}-b`),
421
- /* @__PURE__ */ jsxRuntime.jsx(Tag, { className, children: parseInline(inner, s, `${prefix}-i`) }, `${prefix}-${slot}`),
422
- ...parseInline(after, s, `${prefix}-a`)
423
- ];
448
+ const after = task.text.slice(m.index + m[0].length);
449
+ const className = mk.slot === "strong" ? s.strong() : mk.slot === "em" ? s.em() : s.strike();
450
+ work.push({ kind: "text", text: after, prefix: `${task.prefix}-a` });
451
+ work.push({
452
+ kind: "close",
453
+ el: mk.el,
454
+ className,
455
+ key: `${task.prefix}-${mk.slot}`
456
+ });
457
+ work.push({ kind: "text", text: inner, prefix: `${task.prefix}-i` });
458
+ work.push({ kind: "open" });
459
+ work.push({ kind: "text", text: before, prefix: `${task.prefix}-b` });
424
460
  }
425
- return text ? [text] : [];
461
+ return root;
426
462
  }
427
463
  function parseLinksAndInline(text, s, prefix) {
428
464
  const out = [];
@@ -432,7 +468,7 @@ function parseLinksAndInline(text, s, prefix) {
432
468
  let m;
433
469
  while ((m = URL_RE.exec(text)) !== null) {
434
470
  if (m.index > last) {
435
- out.push(...parseInline(text.slice(last, m.index), s, `${prefix}-${i}t`));
471
+ pushAll(out, parseInline(text.slice(last, m.index), s, `${prefix}-${i}t`));
436
472
  }
437
473
  const raw = m[0];
438
474
  const href = raw.startsWith("www.") ? `https://${raw}` : raw;
@@ -453,7 +489,7 @@ function parseLinksAndInline(text, s, prefix) {
453
489
  i += 1;
454
490
  }
455
491
  if (last < text.length) {
456
- out.push(...parseInline(text.slice(last), s, `${prefix}-${i}t`));
492
+ pushAll(out, parseInline(text.slice(last), s, `${prefix}-${i}t`));
457
493
  }
458
494
  return out;
459
495
  }
@@ -465,7 +501,7 @@ function parseMarkdown(source, s) {
465
501
  let m;
466
502
  while ((m = CODE_RE.exec(source)) !== null) {
467
503
  if (m.index > last) {
468
- out.push(...parseLinksAndInline(source.slice(last, m.index), s, `${i}t`));
504
+ pushAll(out, parseLinksAndInline(source.slice(last, m.index), s, `${i}t`));
469
505
  }
470
506
  const codeContent = m[1] ?? m[2] ?? "";
471
507
  out.push(
@@ -475,7 +511,7 @@ function parseMarkdown(source, s) {
475
511
  i += 1;
476
512
  }
477
513
  if (last < source.length) {
478
- out.push(...parseLinksAndInline(source.slice(last), s, `${i}t`));
514
+ pushAll(out, parseLinksAndInline(source.slice(last), s, `${i}t`));
479
515
  }
480
516
  return out;
481
517
  }
@@ -7433,9 +7469,12 @@ const ChartContainer = React__namespace.forwardRef(({ id, className, children, c
7433
7469
  ) });
7434
7470
  });
7435
7471
  ChartContainer.displayName = "ChartContainer";
7472
+ const SAFE_CSS_IDENT = /^[A-Za-z0-9_-]+$/;
7473
+ const SAFE_CSS_VALUE = /^[A-Za-z0-9\s#(),.%/_-]+$/;
7436
7474
  const ChartStyle = ({ id, config }) => {
7475
+ if (!SAFE_CSS_IDENT.test(id)) return null;
7437
7476
  const colorConfig = Object.entries(config).filter(
7438
- ([, c]) => c.theme || c.color
7477
+ ([key, c]) => (c.theme || c.color) && SAFE_CSS_IDENT.test(key)
7439
7478
  );
7440
7479
  if (!colorConfig.length) return null;
7441
7480
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -7447,7 +7486,7 @@ const ChartStyle = ({ id, config }) => {
7447
7486
  ${prefix} [data-chart=${id}] {
7448
7487
  ${colorConfig.map(([key, itemConfig]) => {
7449
7488
  const color = itemConfig.theme?.[theme] || itemConfig.color;
7450
- return color ? ` --color-${key}: ${color};` : null;
7489
+ return color && SAFE_CSS_VALUE.test(color) ? ` --color-${key}: ${color};` : null;
7451
7490
  }).filter(Boolean).join("\n")}
7452
7491
  }
7453
7492
  `