@snksergio/design-system 0.52.0 → 0.54.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.
- package/dist-lib/chunks/{panel-Bly-rNP9.cjs → panel-CTbiCa0_.cjs} +105 -3
- package/dist-lib/chunks/panel-CTbiCa0_.cjs.map +1 -0
- package/dist-lib/chunks/{panel-DA6K3a3n.mjs → panel-DsOKm4Im.mjs} +155 -53
- package/dist-lib/chunks/panel-DsOKm4Im.mjs.map +1 -0
- package/dist-lib/chunks/{toggle-group-C9rrkkmh.cjs → toggle-group-BTnqY_nt.cjs} +23 -23
- package/dist-lib/chunks/toggle-group-BTnqY_nt.cjs.map +1 -0
- package/dist-lib/chunks/{toggle-group-mXbG8_Jm.mjs → toggle-group-BYmj8142.mjs} +22 -22
- package/dist-lib/chunks/toggle-group-BYmj8142.mjs.map +1 -0
- package/dist-lib/index.cjs +634 -2
- package/dist-lib/index.cjs.map +1 -1
- package/dist-lib/index.mjs +692 -60
- package/dist-lib/index.mjs.map +1 -1
- package/dist-lib/preview/clientes.cjs +1 -1
- package/dist-lib/preview/clientes.mjs +1 -1
- package/dist-lib/shadcn.cjs +1 -1
- package/dist-lib/shadcn.mjs +1 -1
- package/dist-lib/src/components/index.d.ts +1 -0
- package/dist-lib/src/components/index.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TabsNavigation/index.d.ts +5 -0
- package/dist-lib/src/components/ui/TabsNavigation/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation-context.d.ts +19 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation-context.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.d.ts +84 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.styles.d.ts +393 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.types.d.ts +99 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/use-arrastar-para-rolar.d.ts +26 -0
- package/dist-lib/src/components/ui/TabsNavigation/use-arrastar-para-rolar.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar-group-context.d.ts +24 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar-group-context.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar-group.d.ts +52 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar-group.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.d.ts +9 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.d.ts.map +1 -1
- package/dist-lib/src/components/ui/avatar-ig/avatar.styles.d.ts +93 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/avatar-ig/avatar.types.d.ts +37 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/avatar-ig/index.d.ts +3 -2
- package/dist-lib/src/components/ui/avatar-ig/index.d.ts.map +1 -1
- package/dist-lib/theme.css +15 -0
- package/package.json +1 -1
- package/dist-lib/chunks/panel-Bly-rNP9.cjs.map +0 -1
- package/dist-lib/chunks/panel-DA6K3a3n.mjs.map +0 -1
- package/dist-lib/chunks/toggle-group-C9rrkkmh.cjs.map +0 -1
- package/dist-lib/chunks/toggle-group-mXbG8_Jm.mjs.map +0 -1
|
@@ -176,6 +176,7 @@ function getContrastTextColor(bgColor) {
|
|
|
176
176
|
const blackContrast = contrastRatio(0, bgLum);
|
|
177
177
|
return whiteContrast >= blackContrast ? "white" : "black";
|
|
178
178
|
}
|
|
179
|
+
const AvatarGroupContext = React.createContext(void 0);
|
|
179
180
|
const avatarVariants = avatar.tv({
|
|
180
181
|
base: [
|
|
181
182
|
"inline-flex items-center justify-center",
|
|
@@ -215,21 +216,59 @@ const avatarVariants = avatar.tv({
|
|
|
215
216
|
color: "muted"
|
|
216
217
|
}
|
|
217
218
|
});
|
|
219
|
+
const avatarGroupRoot = avatar.tv({ base: "flex items-center" });
|
|
220
|
+
const avatarGroupItem = avatar.tv({
|
|
221
|
+
base: ["relative inline-flex rounded-radius-full ring-2"],
|
|
222
|
+
variants: {
|
|
223
|
+
/** Deslocamento negativo ≈ 25% do diâmetro, em token. Ver o bloco acima. */
|
|
224
|
+
size: {
|
|
225
|
+
xs: "-ml-sp-xs",
|
|
226
|
+
// 20px → 4
|
|
227
|
+
sm: "-ml-sp-sm",
|
|
228
|
+
// 24px → 6
|
|
229
|
+
md: "-ml-sp-sm",
|
|
230
|
+
// 28px → 6
|
|
231
|
+
lg: "-ml-sp-md",
|
|
232
|
+
// 32px → 8
|
|
233
|
+
xl: "-ml-sp-lg"
|
|
234
|
+
// 40px → 10
|
|
235
|
+
},
|
|
236
|
+
/** Cor do anel = superfície de trás. */
|
|
237
|
+
surface: {
|
|
238
|
+
surface: "ring-bg-surface",
|
|
239
|
+
canvas: "ring-bg-canvas",
|
|
240
|
+
subtle: "ring-bg-subtle",
|
|
241
|
+
muted: "ring-bg-muted",
|
|
242
|
+
table: "ring-bg-table"
|
|
243
|
+
},
|
|
244
|
+
/** O primeiro não desloca — senão a pilha inteira sai da margem esquerda. */
|
|
245
|
+
primeiro: { true: "ml-0" }
|
|
246
|
+
},
|
|
247
|
+
defaultVariants: {
|
|
248
|
+
size: "md",
|
|
249
|
+
surface: "surface"
|
|
250
|
+
}
|
|
251
|
+
});
|
|
218
252
|
const Avatar = React.forwardRef(
|
|
219
253
|
function Avatar2({
|
|
220
254
|
size,
|
|
221
255
|
color,
|
|
222
256
|
colorHex,
|
|
257
|
+
src,
|
|
223
258
|
children,
|
|
224
259
|
className,
|
|
225
260
|
style,
|
|
226
261
|
"aria-label": ariaLabel,
|
|
227
262
|
...rest
|
|
228
263
|
}, ref) {
|
|
264
|
+
const grupo = React.useContext(AvatarGroupContext);
|
|
265
|
+
const sizeEfetivo = size ?? grupo?.size;
|
|
266
|
+
const [urlQueFalhou, setUrlQueFalhou] = React.useState(null);
|
|
267
|
+
const mostraFoto = typeof src === "string" && src !== "" && urlQueFalhou !== src;
|
|
229
268
|
const isHex = typeof colorHex === "string" && colorHex.startsWith("#");
|
|
230
269
|
const autoTextClass = isHex ? getContrastTextColor(colorHex) === "black" ? "text-black" : "text-white" : null;
|
|
231
270
|
const computedClassName = avatarVariants({
|
|
232
|
-
size,
|
|
271
|
+
size: sizeEfetivo,
|
|
233
272
|
color: isHex ? "_custom" : color,
|
|
234
273
|
className: isHex ? [autoTextClass, className].filter(Boolean).join(" ") : className
|
|
235
274
|
});
|
|
@@ -242,12 +281,72 @@ const Avatar = React.forwardRef(
|
|
|
242
281
|
style: computedStyle,
|
|
243
282
|
...ariaLabel ? { role: "img", "aria-label": ariaLabel } : { "aria-hidden": true },
|
|
244
283
|
...rest,
|
|
245
|
-
children
|
|
284
|
+
children: mostraFoto ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
285
|
+
"img",
|
|
286
|
+
{
|
|
287
|
+
src,
|
|
288
|
+
alt: "",
|
|
289
|
+
className: "size-full object-cover",
|
|
290
|
+
draggable: false,
|
|
291
|
+
onError: () => setUrlQueFalhou(src ?? null)
|
|
292
|
+
}
|
|
293
|
+
) : children
|
|
246
294
|
}
|
|
247
295
|
);
|
|
248
296
|
}
|
|
249
297
|
);
|
|
250
298
|
Avatar.displayName = "Avatar";
|
|
299
|
+
const AvatarGroup = React.forwardRef(
|
|
300
|
+
function AvatarGroup2({
|
|
301
|
+
size = "md",
|
|
302
|
+
max,
|
|
303
|
+
total,
|
|
304
|
+
surface = "surface",
|
|
305
|
+
children,
|
|
306
|
+
className,
|
|
307
|
+
"aria-label": ariaLabel,
|
|
308
|
+
...rest
|
|
309
|
+
}, ref) {
|
|
310
|
+
const itens = React.Children.toArray(children).filter(React.isValidElement);
|
|
311
|
+
const visiveis = typeof max === "number" ? itens.slice(0, max) : itens;
|
|
312
|
+
const escondidos = (total ?? itens.length) - visiveis.length;
|
|
313
|
+
return /* @__PURE__ */ jsxRuntime.jsx(AvatarGroupContext.Provider, { value: { size, surface }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
314
|
+
"div",
|
|
315
|
+
{
|
|
316
|
+
ref,
|
|
317
|
+
className: avatarGroupRoot({ className }),
|
|
318
|
+
role: "group",
|
|
319
|
+
"aria-label": ariaLabel,
|
|
320
|
+
...rest,
|
|
321
|
+
children: [
|
|
322
|
+
visiveis.map((filho, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
323
|
+
"span",
|
|
324
|
+
{
|
|
325
|
+
className: avatarGroupItem({ size, surface, primeiro: i === 0 }),
|
|
326
|
+
style: { zIndex: visiveis.length - i },
|
|
327
|
+
children: filho
|
|
328
|
+
},
|
|
329
|
+
i
|
|
330
|
+
)),
|
|
331
|
+
escondidos > 0 && /* O `+N` é `aria-hidden`: a contagem real já está no `aria-label` do grupo, e
|
|
332
|
+
anunciar "mais 9" solto não diz de quê. */
|
|
333
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
334
|
+
"span",
|
|
335
|
+
{
|
|
336
|
+
className: avatarGroupItem({ size, surface, primeiro: false }),
|
|
337
|
+
style: { zIndex: 0 },
|
|
338
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { size, color: "muted", "aria-hidden": true, children: [
|
|
339
|
+
"+",
|
|
340
|
+
escondidos
|
|
341
|
+
] })
|
|
342
|
+
}
|
|
343
|
+
)
|
|
344
|
+
]
|
|
345
|
+
}
|
|
346
|
+
) });
|
|
347
|
+
}
|
|
348
|
+
);
|
|
349
|
+
AvatarGroup.displayName = "AvatarGroup";
|
|
251
350
|
const buttonGroupVariants = avatar.tv({
|
|
252
351
|
base: [
|
|
253
352
|
"inline-flex items-stretch",
|
|
@@ -13007,6 +13106,7 @@ function Panel({
|
|
|
13007
13106
|
exports.AddViewModal = AddViewModal;
|
|
13008
13107
|
exports.AlertModal = AlertModal;
|
|
13009
13108
|
exports.Avatar = Avatar;
|
|
13109
|
+
exports.AvatarGroup = AvatarGroup;
|
|
13010
13110
|
exports.BulkActionButton = BulkActionButton;
|
|
13011
13111
|
exports.BulkActionsBar = BulkActionsBar;
|
|
13012
13112
|
exports.ButtonGroup = ButtonGroup;
|
|
@@ -13069,6 +13169,8 @@ exports.ToolbarSimpleFilterDrawer = ToolbarSimpleFilterDrawer;
|
|
|
13069
13169
|
exports.ToolbarTabs = ToolbarTabs;
|
|
13070
13170
|
exports.ToolbarToolButton = ToolbarToolButton;
|
|
13071
13171
|
exports.ViewsPopover = ViewsPopover;
|
|
13172
|
+
exports.avatarGroupItem = avatarGroupItem;
|
|
13173
|
+
exports.avatarGroupRoot = avatarGroupRoot;
|
|
13072
13174
|
exports.avatarVariants = avatarVariants;
|
|
13073
13175
|
exports.columnTypeRegistry = columnTypeRegistry;
|
|
13074
13176
|
exports.floatingPanelStyles = floatingPanelStyles;
|
|
@@ -13081,4 +13183,4 @@ exports.useColumnResize = useColumnResize;
|
|
|
13081
13183
|
exports.useColumnWidths = useColumnWidths;
|
|
13082
13184
|
exports.useDataTableContext = useDataTableContext;
|
|
13083
13185
|
exports.useFloatingPanelResize = useFloatingPanelResize;
|
|
13084
|
-
//# sourceMappingURL=panel-
|
|
13186
|
+
//# sourceMappingURL=panel-CTbiCa0_.cjs.map
|