@snksergio/design-system 0.46.0 → 0.48.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 (67) hide show
  1. package/dist-lib/chunks/{avatar-eM5txRFZ.cjs → avatar-DAmZ7fBZ.cjs} +2 -2
  2. package/dist-lib/chunks/{avatar-DFWEwBKu.mjs.map → avatar-DAmZ7fBZ.cjs.map} +1 -1
  3. package/dist-lib/chunks/{avatar-DFWEwBKu.mjs → avatar-FPbG1TRy.mjs} +43 -43
  4. package/dist-lib/chunks/{avatar-eM5txRFZ.cjs.map → avatar-FPbG1TRy.mjs.map} +1 -1
  5. package/dist-lib/chunks/{input-az2SuVXQ.cjs → input-Ci_2-5Te.cjs} +2 -2
  6. package/dist-lib/chunks/{input-az2SuVXQ.cjs.map → input-Ci_2-5Te.cjs.map} +1 -1
  7. package/dist-lib/chunks/{input-CfmzMYtd.mjs → input-tjIT8HNE.mjs} +2 -2
  8. package/dist-lib/chunks/{input-CfmzMYtd.mjs.map → input-tjIT8HNE.mjs.map} +1 -1
  9. package/dist-lib/chunks/{kpi-delta-DwQWNM-F.cjs → kpi-delta-1-gsPFvU.cjs} +3 -3
  10. package/dist-lib/chunks/{kpi-delta-DwQWNM-F.cjs.map → kpi-delta-1-gsPFvU.cjs.map} +1 -1
  11. package/dist-lib/chunks/{kpi-delta-DuxCD93G.mjs → kpi-delta-BRTgTaO1.mjs} +3 -3
  12. package/dist-lib/chunks/{kpi-delta-DuxCD93G.mjs.map → kpi-delta-BRTgTaO1.mjs.map} +1 -1
  13. package/dist-lib/chunks/{page-header--cPS_Z-a.mjs → page-header-DdWp9c-r.mjs} +2 -2
  14. package/dist-lib/chunks/{page-header--cPS_Z-a.mjs.map → page-header-DdWp9c-r.mjs.map} +1 -1
  15. package/dist-lib/chunks/{page-header-DvAJoEfb.cjs → page-header-DrKDiVFN.cjs} +2 -2
  16. package/dist-lib/chunks/{page-header-DvAJoEfb.cjs.map → page-header-DrKDiVFN.cjs.map} +1 -1
  17. package/dist-lib/chunks/{panel-DTVjD2gJ.cjs → panel-57Pt_bL9.cjs} +5 -5
  18. package/dist-lib/chunks/{panel-DTVjD2gJ.cjs.map → panel-57Pt_bL9.cjs.map} +1 -1
  19. package/dist-lib/chunks/{panel-BxYvTvlN.mjs → panel-DlZeQw7G.mjs} +5 -5
  20. package/dist-lib/chunks/{panel-BxYvTvlN.mjs.map → panel-DlZeQw7G.mjs.map} +1 -1
  21. package/dist-lib/chunks/{sheet-D1vQth7X.mjs → sheet-7v5vamnP.mjs} +2 -2
  22. package/dist-lib/chunks/{sheet-D1vQth7X.mjs.map → sheet-7v5vamnP.mjs.map} +1 -1
  23. package/dist-lib/chunks/{sheet-j-d_UX7R.cjs → sheet-BZlQ0gKA.cjs} +2 -2
  24. package/dist-lib/chunks/{sheet-j-d_UX7R.cjs.map → sheet-BZlQ0gKA.cjs.map} +1 -1
  25. package/dist-lib/chunks/{toggle-group-DPzjrk6O.mjs → toggle-group-CnAN6ZnT.mjs} +43 -15
  26. package/dist-lib/chunks/toggle-group-CnAN6ZnT.mjs.map +1 -0
  27. package/dist-lib/chunks/{toggle-group-FJHFIlJP.cjs → toggle-group-DYGba7RP.cjs} +31 -3
  28. package/dist-lib/chunks/toggle-group-DYGba7RP.cjs.map +1 -0
  29. package/dist-lib/chunks/{useTheme-CS_no6zP.mjs → useTheme-Bk8AYqLr.mjs} +2 -2
  30. package/dist-lib/chunks/{useTheme-CS_no6zP.mjs.map → useTheme-Bk8AYqLr.mjs.map} +1 -1
  31. package/dist-lib/chunks/{useTheme-BB3QhUpu.cjs → useTheme-Dh3POjCr.cjs} +2 -2
  32. package/dist-lib/chunks/{useTheme-BB3QhUpu.cjs.map → useTheme-Dh3POjCr.cjs.map} +1 -1
  33. package/dist-lib/index.cjs +114 -12
  34. package/dist-lib/index.cjs.map +1 -1
  35. package/dist-lib/index.mjs +252 -150
  36. package/dist-lib/index.mjs.map +1 -1
  37. package/dist-lib/preview/chat.cjs +3 -3
  38. package/dist-lib/preview/chat.mjs +3 -3
  39. package/dist-lib/preview/clientes.cjs +6 -6
  40. package/dist-lib/preview/clientes.mjs +6 -6
  41. package/dist-lib/preview/dashboard.cjs +4 -4
  42. package/dist-lib/preview/dashboard.mjs +4 -4
  43. package/dist-lib/shadcn.cjs +5 -17
  44. package/dist-lib/shadcn.cjs.map +1 -1
  45. package/dist-lib/shadcn.mjs +56 -69
  46. package/dist-lib/shadcn.mjs.map +1 -1
  47. package/dist-lib/src/components/index.d.ts +1 -0
  48. package/dist-lib/src/components/index.d.ts.map +1 -1
  49. package/dist-lib/src/components/shadcn/slider.d.ts.map +1 -1
  50. package/dist-lib/src/components/shadcn/tooltip.d.ts +20 -1
  51. package/dist-lib/src/components/shadcn/tooltip.d.ts.map +1 -1
  52. package/dist-lib/src/components/ui/FileUploadField/file-upload-field.d.ts.map +1 -1
  53. package/dist-lib/src/components/ui/FileUploadField/file-upload-field.styles.d.ts +27 -0
  54. package/dist-lib/src/components/ui/FileUploadField/file-upload-field.styles.d.ts.map +1 -1
  55. package/dist-lib/src/components/ui/ScreenLoader/index.d.ts +3 -0
  56. package/dist-lib/src/components/ui/ScreenLoader/index.d.ts.map +1 -0
  57. package/dist-lib/src/components/ui/ScreenLoader/screen-loader.d.ts +21 -0
  58. package/dist-lib/src/components/ui/ScreenLoader/screen-loader.d.ts.map +1 -0
  59. package/dist-lib/src/components/ui/ScreenLoader/screen-loader.styles.d.ts +111 -0
  60. package/dist-lib/src/components/ui/ScreenLoader/screen-loader.styles.d.ts.map +1 -0
  61. package/dist-lib/src/components/ui/ScreenLoader/screen-loader.types.d.ts +26 -0
  62. package/dist-lib/src/components/ui/ScreenLoader/screen-loader.types.d.ts.map +1 -0
  63. package/dist-lib/src/components/ui/Spinner/spinner.styles.d.ts +9 -0
  64. package/dist-lib/src/components/ui/Spinner/spinner.styles.d.ts.map +1 -1
  65. package/package.json +1 -1
  66. package/dist-lib/chunks/toggle-group-DPzjrk6O.mjs.map +0 -1
  67. package/dist-lib/chunks/toggle-group-FJHFIlJP.cjs.map +0 -1
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const panel = require("./chunks/panel-DTVjD2gJ.cjs");
4
- const useTheme = require("./chunks/useTheme-BB3QhUpu.cjs");
5
- const avatar = require("./chunks/avatar-eM5txRFZ.cjs");
3
+ const panel = require("./chunks/panel-57Pt_bL9.cjs");
4
+ const useTheme = require("./chunks/useTheme-Dh3POjCr.cjs");
5
+ const avatar = require("./chunks/avatar-DAmZ7fBZ.cjs");
6
6
  const jsxRuntime = require("react/jsx-runtime");
7
7
  const React = require("react");
8
- const sheet = require("./chunks/sheet-j-d_UX7R.cjs");
8
+ const sheet = require("./chunks/sheet-BZlQ0gKA.cjs");
9
9
  const lucideReact = require("lucide-react");
10
- const toggleGroup = require("./chunks/toggle-group-FJHFIlJP.cjs");
11
- const input = require("./chunks/input-az2SuVXQ.cjs");
12
- const kpiDelta = require("./chunks/kpi-delta-DwQWNM-F.cjs");
13
- const pageHeader = require("./chunks/page-header-DvAJoEfb.cjs");
10
+ const toggleGroup = require("./chunks/toggle-group-DYGba7RP.cjs");
11
+ const input = require("./chunks/input-Ci_2-5Te.cjs");
12
+ const kpiDelta = require("./chunks/kpi-delta-1-gsPFvU.cjs");
13
+ const pageHeader = require("./chunks/page-header-DrKDiVFN.cjs");
14
14
  const RechartsPrimitive = require("recharts");
15
15
  const reactVirtual = require("@tanstack/react-virtual");
16
16
  require("@hello-pangea/dnd");
@@ -3742,7 +3742,10 @@ const fileUploadFieldStyles = avatar.tv({
3742
3742
  slots: {
3743
3743
  dropzone: [
3744
3744
  "flex w-full flex-col items-center justify-center text-center",
3745
- "min-h-form-xl gap-gp-xs px-pad-2xl py-pad-lg",
3745
+ // Vertical MAIOR que o horizontal de propósito: é uma área de soltar, não uma linha de
3746
+ // form. Estava `py-pad-lg` (10px) contra `px-pad-2xl` (16px) — apertado justamente no
3747
+ // eixo que dá a leitura de "zona", e o conteúdo ficava colado na borda tracejada.
3748
+ "min-h-form-xl gap-gp-xs px-pad-2xl py-pad-4xl",
3746
3749
  "rounded-radius-xl bg-bg-muted",
3747
3750
  "border border-dashed border-border-default",
3748
3751
  "transition-[color,box-shadow,background-color,border-color] duration-200 ease-out",
@@ -3751,6 +3754,15 @@ const fileUploadFieldStyles = avatar.tv({
3751
3754
  "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-brand"
3752
3755
  ],
3753
3756
  dropIcon: "text-fg-subtle",
3757
+ /**
3758
+ * Título e hint num bloco próprio, com gap de 2px.
3759
+ *
3760
+ * Antes os três (ícone, título, hint) eram irmãos sob o `gap-gp-xs` (4px) do dropzone —
3761
+ * um gap só governando duas relações diferentes. Título↔hint são a MESMA informação em
3762
+ * dois níveis e querem ficar juntos; o ícone é outro elemento e quer respiro. Agrupar é o
3763
+ * que permite os dois valores.
3764
+ */
3765
+ dropTexts: "flex flex-col items-center gap-gp-2xs",
3754
3766
  dropText: "text-body-sm text-fg-muted",
3755
3767
  dropHint: "text-caption-md text-fg-subtle",
3756
3768
  fileRow: [
@@ -3891,8 +3903,10 @@ function FileUploadField({
3891
3903
  className: styles2.dropzone(),
3892
3904
  children: [
3893
3905
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "line-cloud-upload", size: "lg", className: styles2.dropIcon() }),
3894
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.dropText(), children: "Clique para anexar" }),
3895
- hint && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.dropHint(), children: hint })
3906
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles2.dropTexts(), children: [
3907
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.dropText(), children: "Clique para anexar" }),
3908
+ hint && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.dropHint(), children: hint })
3909
+ ] })
3896
3910
  ]
3897
3911
  }
3898
3912
  ) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles2.fileRow(), children: [
@@ -5004,7 +5018,9 @@ const spinnerStyles = avatar.tv({
5004
5018
  size: {
5005
5019
  sm: "size-icon-sm",
5006
5020
  md: "size-icon-md",
5007
- lg: "size-icon-lg"
5021
+ lg: "size-icon-lg",
5022
+ xl: "size-icon-xl",
5023
+ "2xl": "size-icon-2xl"
5008
5024
  },
5009
5025
  color: {
5010
5026
  current: "text-current",
@@ -5057,6 +5073,91 @@ const Spinner = React.forwardRef(function Spinner2({ size, color, label = "Carre
5057
5073
  );
5058
5074
  });
5059
5075
  Spinner.displayName = "Spinner";
5076
+ const screenLoaderStyles = avatar.tv({
5077
+ slots: {
5078
+ root: "flex h-full min-h-0 w-full flex-1 flex-col",
5079
+ // título + descrição colados (gp-2xs = 2px); o respiro maior (gp-md do
5080
+ // root) fica entre o Spinner e o bloco de texto
5081
+ text: "flex flex-col items-center gap-gp-2xs",
5082
+ title: "text-fg-strong",
5083
+ description: "text-body-sm text-fg-muted max-w-[360px]",
5084
+ skeletonHeader: "flex w-full items-start justify-between gap-gp-2xl",
5085
+ skeletonHeaderText: "flex w-full flex-col gap-gp-md",
5086
+ skeletonKpis: "grid w-full grid-cols-2 gap-gp-xl lg:grid-cols-4",
5087
+ skeletonKpiCard: "min-h-[96px] w-full",
5088
+ // basis-[240px] + grow/shrink em vez de min-h: em pai SEM altura o bloco
5089
+ // vale 240px (fallback); em pai COM altura ele cresce/encolhe pra caber —
5090
+ // min-h fixo estourava o container quando header + KPIs + bloco > pai
5091
+ skeletonBody: "w-full grow shrink basis-[240px]"
5092
+ },
5093
+ variants: {
5094
+ variant: {
5095
+ spinner: {
5096
+ root: "items-center justify-center gap-gp-md text-center"
5097
+ },
5098
+ skeleton: {
5099
+ root: "gap-gp-2xl"
5100
+ }
5101
+ },
5102
+ size: {
5103
+ sm: { title: "text-title-sm" },
5104
+ md: { title: "text-title-sm" },
5105
+ lg: { title: "text-title-md" }
5106
+ }
5107
+ },
5108
+ defaultVariants: {
5109
+ variant: "spinner",
5110
+ size: "md"
5111
+ }
5112
+ });
5113
+ const SPINNER_SIZE = {
5114
+ sm: "lg",
5115
+ md: "xl",
5116
+ lg: "2xl"
5117
+ };
5118
+ const ScreenLoader = React.forwardRef(
5119
+ function ScreenLoader2({
5120
+ variant = "spinner",
5121
+ size = "md",
5122
+ color = "brand",
5123
+ title: title2 = "Carregando…",
5124
+ description: description2,
5125
+ skeletonLayout = "page",
5126
+ className,
5127
+ ...rest
5128
+ }, ref) {
5129
+ const styles2 = screenLoaderStyles({ variant, size });
5130
+ return /* @__PURE__ */ jsxRuntime.jsx(
5131
+ "div",
5132
+ {
5133
+ ref,
5134
+ role: "status",
5135
+ "aria-live": "polite",
5136
+ className: styles2.root({ className }),
5137
+ ...rest,
5138
+ children: variant === "spinner" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5139
+ /* @__PURE__ */ jsxRuntime.jsx(Spinner, { size: SPINNER_SIZE[size], color, "aria-hidden": true }),
5140
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles2.text(), children: [
5141
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: styles2.title(), children: title2 }),
5142
+ description2 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles2.description(), children: description2 })
5143
+ ] })
5144
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5145
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: title2 }),
5146
+ skeletonLayout !== "kpis" && /* @__PURE__ */ jsxRuntime.jsxs("div", { "aria-hidden": "true", className: styles2.skeletonHeader(), children: [
5147
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles2.skeletonHeaderText(), children: [
5148
+ /* @__PURE__ */ jsxRuntime.jsx(toggleGroup.Skeleton, { className: "h-[20px] w-1/3 max-w-[240px]" }),
5149
+ /* @__PURE__ */ jsxRuntime.jsx(toggleGroup.Skeleton, { className: "h-[12px] w-1/2 max-w-[360px]" })
5150
+ ] }),
5151
+ /* @__PURE__ */ jsxRuntime.jsx(toggleGroup.Skeleton, { className: "min-h-form-md w-[120px] shrink-0" })
5152
+ ] }),
5153
+ skeletonLayout !== "page" && /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: styles2.skeletonKpis(), children: Array.from({ length: 4 }, (_, i) => /* @__PURE__ */ jsxRuntime.jsx(toggleGroup.Skeleton, { className: styles2.skeletonKpiCard() }, i)) }),
5154
+ /* @__PURE__ */ jsxRuntime.jsx(toggleGroup.Skeleton, { "aria-hidden": "true", className: styles2.skeletonBody() })
5155
+ ] })
5156
+ }
5157
+ );
5158
+ }
5159
+ );
5160
+ ScreenLoader.displayName = "ScreenLoader";
5060
5161
  class Adder {
5061
5162
  constructor() {
5062
5163
  this._partials = new Float64Array(32);
@@ -8108,6 +8209,7 @@ exports.MessageComposer = MessageComposer;
8108
8209
  exports.MessageVariablesPicker = MessageVariablesPicker;
8109
8210
  exports.Modal = Modal;
8110
8211
  exports.MonthYearPicker = MonthYearPicker;
8212
+ exports.ScreenLoader = ScreenLoader;
8111
8213
  exports.Spinner = Spinner;
8112
8214
  exports.ToastCard = ToastCard;
8113
8215
  exports.ToolbarFilterControl = ToolbarFilterControl;