@lindle/linoardo 1.0.45 → 1.0.47
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/{ExpansionPanelItem-DYcbxZnv.d.ts → ExpansionPanelItem-By0ziOVw.d.cts} +2 -1
- package/dist/{ExpansionPanelItem-B9srsYMI.d.cts → ExpansionPanelItem-CFfWX7ia.d.ts} +2 -1
- package/dist/badge.d.cts +1 -1
- package/dist/badge.d.ts +1 -1
- package/dist/block.cjs +0 -1
- package/dist/block.cjs.map +1 -1
- package/dist/block.d.cts +1 -1
- package/dist/block.d.ts +1 -1
- package/dist/block.js +1 -1
- package/dist/button.cjs +73 -17
- package/dist/button.cjs.map +1 -1
- package/dist/button.d.cts +16 -5
- package/dist/button.d.ts +16 -5
- package/dist/button.js +1 -1
- package/dist/card.cjs +0 -1
- package/dist/card.cjs.map +1 -1
- package/dist/card.d.cts +1 -1
- package/dist/card.d.ts +1 -1
- package/dist/card.js +1 -1
- package/dist/chip.cjs +7 -15
- package/dist/chip.cjs.map +1 -1
- package/dist/chip.d.cts +1 -1
- package/dist/chip.d.ts +1 -1
- package/dist/chip.js +2 -2
- package/dist/{chunk-PSMGRUU5.js → chunk-4CYM2UM3.js} +9 -17
- package/dist/chunk-4CYM2UM3.js.map +1 -0
- package/dist/{chunk-5GT6L4BE.js → chunk-4NKKWBMP.js} +2 -3
- package/dist/chunk-4NKKWBMP.js.map +1 -0
- package/dist/{chunk-ZTP2JSQ6.js → chunk-4VHGXXZE.js} +52 -26
- package/dist/chunk-4VHGXXZE.js.map +1 -0
- package/dist/{chunk-HT5XBHWN.js → chunk-57CCAWFX.js} +3 -3
- package/dist/{chunk-HT5XBHWN.js.map → chunk-57CCAWFX.js.map} +1 -1
- package/dist/{chunk-5MVIF5GP.js → chunk-7HOQSHPQ.js} +4 -7
- package/dist/chunk-7HOQSHPQ.js.map +1 -0
- package/dist/{chunk-U4P2VJCV.js → chunk-7YZBEH2K.js} +2 -3
- package/dist/chunk-7YZBEH2K.js.map +1 -0
- package/dist/{chunk-RG5FCFLX.js → chunk-AUVYU7M5.js} +4 -3
- package/dist/chunk-AUVYU7M5.js.map +1 -0
- package/dist/{chunk-NADLY6LM.js → chunk-DUEQOGNR.js} +3 -4
- package/dist/chunk-DUEQOGNR.js.map +1 -0
- package/dist/{chunk-FEGFA3FN.js → chunk-JFIFVLWE.js} +3 -3
- package/dist/{chunk-FEGFA3FN.js.map → chunk-JFIFVLWE.js.map} +1 -1
- package/dist/{chunk-DIWGVTWO.js → chunk-RUOU46YI.js} +75 -19
- package/dist/chunk-RUOU46YI.js.map +1 -0
- package/dist/{chunk-F3PI7A6V.js → chunk-TRR7TDVA.js} +3 -4
- package/dist/chunk-TRR7TDVA.js.map +1 -0
- package/dist/chunk-UGG35FPX.js +141 -0
- package/dist/chunk-UGG35FPX.js.map +1 -0
- package/dist/{chunk-VPF7M2PB.js → chunk-UWNDN4XL.js} +2 -5
- package/dist/chunk-UWNDN4XL.js.map +1 -0
- package/dist/{chunk-FJNKMRYQ.js → chunk-XA74HBMH.js} +6 -4
- package/dist/chunk-XA74HBMH.js.map +1 -0
- package/dist/expansion-panel/item.cjs +2 -1
- package/dist/expansion-panel/item.cjs.map +1 -1
- package/dist/expansion-panel/item.d.cts +2 -2
- package/dist/expansion-panel/item.d.ts +2 -2
- package/dist/expansion-panel/item.js +1 -1
- package/dist/expansion-panel.cjs +5 -2
- package/dist/expansion-panel.cjs.map +1 -1
- package/dist/expansion-panel.d.cts +3 -3
- package/dist/expansion-panel.d.ts +3 -3
- package/dist/expansion-panel.js +2 -2
- package/dist/{global.types-gx9A7mUe.d.cts → global.types-CjO3VRWu.d.cts} +1 -1
- package/dist/{global.types-gx9A7mUe.d.ts → global.types-CjO3VRWu.d.ts} +1 -1
- package/dist/hero.cjs +0 -3
- package/dist/hero.cjs.map +1 -1
- package/dist/hero.d.cts +1 -1
- package/dist/hero.d.ts +1 -1
- package/dist/hero.js +1 -1
- package/dist/icon.d.cts +1 -1
- package/dist/icon.d.ts +1 -1
- package/dist/{index-CNwl6vmH.d.ts → index-BgLrabTA.d.ts} +1 -1
- package/dist/{index-BDrBOeFI.d.cts → index-C19gZTrO.d.cts} +1 -1
- package/dist/index.cjs +321 -278
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +20 -5
- package/dist/index.d.ts +20 -5
- package/dist/index.js +77 -24
- package/dist/index.js.map +1 -1
- package/dist/input.cjs +62 -145
- package/dist/input.cjs.map +1 -1
- package/dist/input.d.cts +6 -6
- package/dist/input.d.ts +6 -6
- package/dist/input.js +1 -2
- package/dist/list/item.d.cts +2 -2
- package/dist/list/item.d.ts +2 -2
- package/dist/list.cjs +1 -2
- package/dist/list.cjs.map +1 -1
- package/dist/list.d.cts +3 -3
- package/dist/list.d.ts +3 -3
- package/dist/list.js +1 -1
- package/dist/menu.cjs +50 -24
- package/dist/menu.cjs.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/notification.d.cts +1 -1
- package/dist/notification.d.ts +1 -1
- package/dist/profileCard.cjs +74 -21
- package/dist/profileCard.cjs.map +1 -1
- package/dist/profileCard.d.cts +1 -1
- package/dist/profileCard.d.ts +1 -1
- package/dist/profileCard.js +2 -2
- package/dist/select.cjs +1 -2
- package/dist/select.cjs.map +1 -1
- package/dist/select.d.cts +2 -2
- package/dist/select.d.ts +2 -2
- package/dist/select.js +1 -1
- package/dist/slider.d.cts +1 -1
- package/dist/slider.d.ts +1 -1
- package/dist/styles.css +254 -91
- package/dist/switch.d.cts +1 -1
- package/dist/switch.d.ts +1 -1
- package/dist/timeline.cjs.map +1 -1
- package/dist/timeline.d.cts +2 -2
- package/dist/timeline.d.ts +2 -2
- package/dist/timeline.js +2 -2
- package/dist/{types-DaTHYIPO.d.ts → types-B4puM-zr.d.cts} +3 -4
- package/dist/{types-CJ0zqPXF.d.cts → types-BDisBwnf.d.ts} +3 -4
- package/package.json +1 -1
- package/dist/chunk-5GT6L4BE.js.map +0 -1
- package/dist/chunk-5MVIF5GP.js.map +0 -1
- package/dist/chunk-DIWGVTWO.js.map +0 -1
- package/dist/chunk-F3PI7A6V.js.map +0 -1
- package/dist/chunk-FJNKMRYQ.js.map +0 -1
- package/dist/chunk-NADLY6LM.js.map +0 -1
- package/dist/chunk-OBGYXMZ3.js +0 -218
- package/dist/chunk-OBGYXMZ3.js.map +0 -1
- package/dist/chunk-PSMGRUU5.js.map +0 -1
- package/dist/chunk-RG5FCFLX.js.map +0 -1
- package/dist/chunk-U4P2VJCV.js.map +0 -1
- package/dist/chunk-VPF7M2PB.js.map +0 -1
- package/dist/chunk-ZTP2JSQ6.js.map +0 -1
package/dist/menu.cjs
CHANGED
|
@@ -26,18 +26,27 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
26
26
|
|
|
27
27
|
// src/Containment/Menu/index.tsx
|
|
28
28
|
var placementClasses = {
|
|
29
|
-
"bottom-start": "left-0 top-full
|
|
30
|
-
bottom: "left-1/2 top-full -translate-x-1/2
|
|
31
|
-
"bottom-end": "right-0 top-full
|
|
32
|
-
"top-start": "left-0 bottom-full
|
|
33
|
-
top: "left-1/2 bottom-full -translate-x-1/2
|
|
34
|
-
"top-end": "right-0 bottom-full
|
|
29
|
+
"bottom-start": "left-0 top-full",
|
|
30
|
+
bottom: "left-1/2 top-full -translate-x-1/2",
|
|
31
|
+
"bottom-end": "right-0 top-full",
|
|
32
|
+
"top-start": "left-0 bottom-full",
|
|
33
|
+
top: "left-1/2 bottom-full -translate-x-1/2",
|
|
34
|
+
"top-end": "right-0 bottom-full"
|
|
35
|
+
};
|
|
36
|
+
var originClasses = {
|
|
37
|
+
"bottom-start": "origin-top-left",
|
|
38
|
+
bottom: "origin-top",
|
|
39
|
+
"bottom-end": "origin-top-right",
|
|
40
|
+
"top-start": "origin-bottom-left",
|
|
41
|
+
top: "origin-bottom",
|
|
42
|
+
"top-end": "origin-bottom-right"
|
|
35
43
|
};
|
|
36
44
|
var offsetClasses = {
|
|
37
|
-
top: "
|
|
38
|
-
bottom: "
|
|
45
|
+
top: "pb-2",
|
|
46
|
+
bottom: "pt-2"
|
|
39
47
|
};
|
|
40
|
-
var
|
|
48
|
+
var menuWrapperBaseClasses = "absolute z-50";
|
|
49
|
+
var menuBaseClasses = "min-w-[10rem] rounded-xl border border-gray-200/80 bg-white/95 p-2 text-sm text-gray-700 shadow-lg shadow-gray-900/10 ring-1 ring-black/5 backdrop-blur-md transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2";
|
|
41
50
|
var overlayBaseClasses = "fixed inset-0 z-40 bg-gray-900/30 backdrop-blur-[1px]";
|
|
42
51
|
var Menu = React__namespace.forwardRef((props, ref) => {
|
|
43
52
|
const {
|
|
@@ -64,11 +73,17 @@ var Menu = React__namespace.forwardRef((props, ref) => {
|
|
|
64
73
|
const shouldRenderContent = hasContent && (keepMounted || isOpen || allowHoverTrigger || allowFocusTrigger);
|
|
65
74
|
const shouldRenderOverlay = scrim && hasContent && (isOpen || allowHoverTrigger || allowFocusTrigger);
|
|
66
75
|
const verticalPlacement = placement.startsWith("top") ? "top" : "bottom";
|
|
67
|
-
const
|
|
68
|
-
"pointer-events-none
|
|
69
|
-
isOpen ? "pointer-events-auto
|
|
70
|
-
allowHoverTrigger ? "group-hover/menu:pointer-events-auto
|
|
71
|
-
allowFocusTrigger ? "group-focus-within/menu:pointer-events-auto
|
|
76
|
+
const interactiveVisibilityClasses = tailwindMerge.twMerge(
|
|
77
|
+
"pointer-events-none",
|
|
78
|
+
isOpen ? "pointer-events-auto" : void 0,
|
|
79
|
+
allowHoverTrigger ? "group-hover/menu:pointer-events-auto" : void 0,
|
|
80
|
+
allowFocusTrigger ? "group-focus-within/menu:pointer-events-auto" : void 0
|
|
81
|
+
);
|
|
82
|
+
const visualVisibilityClasses = tailwindMerge.twMerge(
|
|
83
|
+
"opacity-0 scale-95",
|
|
84
|
+
isOpen ? "opacity-100 scale-100" : void 0,
|
|
85
|
+
allowHoverTrigger ? "group-hover/menu:opacity-100 group-hover/menu:scale-100" : void 0,
|
|
86
|
+
allowFocusTrigger ? "group-focus-within/menu:opacity-100 group-focus-within/menu:scale-100" : void 0
|
|
72
87
|
);
|
|
73
88
|
const overlayVisibilityClasses = tailwindMerge.twMerge(
|
|
74
89
|
"pointer-events-none opacity-0 transition-opacity duration-150",
|
|
@@ -103,21 +118,32 @@ var Menu = React__namespace.forwardRef((props, ref) => {
|
|
|
103
118
|
shouldRenderContent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
104
119
|
"div",
|
|
105
120
|
{
|
|
106
|
-
...restContentProps,
|
|
107
121
|
className: tailwindMerge.twMerge(
|
|
108
|
-
|
|
122
|
+
menuWrapperBaseClasses,
|
|
109
123
|
placementClasses[placement],
|
|
110
124
|
offsetClasses[verticalPlacement],
|
|
111
125
|
matchActivatorWidth ? "min-w-full" : void 0,
|
|
112
|
-
|
|
113
|
-
contentClassName,
|
|
114
|
-
contentExtraClassName
|
|
126
|
+
interactiveVisibilityClasses
|
|
115
127
|
),
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
128
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
129
|
+
"div",
|
|
130
|
+
{
|
|
131
|
+
...restContentProps,
|
|
132
|
+
className: tailwindMerge.twMerge(
|
|
133
|
+
menuBaseClasses,
|
|
134
|
+
originClasses[placement],
|
|
135
|
+
visualVisibilityClasses,
|
|
136
|
+
matchActivatorWidth ? "min-w-full" : void 0,
|
|
137
|
+
contentClassName,
|
|
138
|
+
contentExtraClassName
|
|
139
|
+
),
|
|
140
|
+
"data-state": isOpen ? "open" : "closed",
|
|
141
|
+
role: contentRole ?? "menu",
|
|
142
|
+
tabIndex: contentTabIndex ?? -1,
|
|
143
|
+
style: contentStyle,
|
|
144
|
+
children
|
|
145
|
+
}
|
|
146
|
+
)
|
|
121
147
|
}
|
|
122
148
|
) : null
|
|
123
149
|
]
|
package/dist/menu.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Containment/Menu/index.tsx"],"names":["React","twMerge","jsx","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAM,gBAAA,GAAkD;AAAA,EACtD,cAAA,EAAgB,
|
|
1
|
+
{"version":3,"sources":["../src/Containment/Menu/index.tsx"],"names":["React","twMerge","jsx","jsxs"],"mappings":"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","file":"menu.cjs","sourcesContent":["import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type MenuPlacement =\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'top-start'\n | 'top'\n | 'top-end';\n\nexport interface MenuProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n activator: React.ReactNode;\n children: React.ReactNode;\n placement?: MenuPlacement;\n open?: boolean;\n openOnHover?: boolean;\n openOnFocus?: boolean;\n matchActivatorWidth?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n contentClassName?: string;\n contentProps?: React.HTMLAttributes<HTMLDivElement>;\n overlayClassName?: string;\n}\n\nconst placementClasses: Record<MenuPlacement, string> = {\n 'bottom-start': 'left-0 top-full',\n bottom: 'left-1/2 top-full -translate-x-1/2',\n 'bottom-end': 'right-0 top-full',\n 'top-start': 'left-0 bottom-full',\n top: 'left-1/2 bottom-full -translate-x-1/2',\n 'top-end': 'right-0 bottom-full'\n};\n\nconst originClasses: Record<MenuPlacement, string> = {\n 'bottom-start': 'origin-top-left',\n bottom: 'origin-top',\n 'bottom-end': 'origin-top-right',\n 'top-start': 'origin-bottom-left',\n top: 'origin-bottom',\n 'top-end': 'origin-bottom-right'\n};\n\nconst offsetClasses: Record<'top' | 'bottom', string> = {\n top: 'pb-2',\n bottom: 'pt-2'\n};\n\nconst menuWrapperBaseClasses = 'absolute z-50';\n\nconst menuBaseClasses =\n 'min-w-[10rem] rounded-xl border border-gray-200/80 bg-white/95 p-2 text-sm text-gray-700 shadow-lg shadow-gray-900/10 ring-1 ring-black/5 backdrop-blur-md transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2';\n\nconst overlayBaseClasses = 'fixed inset-0 z-40 bg-gray-900/30 backdrop-blur-[1px]';\n\n/**\n * Contextual menu that opens relative to an activator with optional hover/focus behavior and scrim.\n */\nconst Menu = React.forwardRef<HTMLDivElement, MenuProps>((props, ref) => {\n const {\n activator,\n children,\n placement = 'bottom-start',\n open,\n openOnHover = true,\n openOnFocus = true,\n matchActivatorWidth = false,\n keepMounted = false,\n scrim = false,\n contentClassName,\n contentProps,\n overlayClassName,\n className,\n ...rest\n } = props;\n\n const hasContent = children !== undefined && children !== null;\n const isControlled = open !== undefined;\n const isOpen = open === true;\n const allowHoverTrigger = openOnHover && !isControlled;\n const allowFocusTrigger = openOnFocus && !isControlled;\n const shouldRenderContent =\n hasContent && (keepMounted || isOpen || allowHoverTrigger || allowFocusTrigger);\n const shouldRenderOverlay =\n scrim && hasContent && (isOpen || allowHoverTrigger || allowFocusTrigger);\n const verticalPlacement = placement.startsWith('top') ? 'top' : 'bottom';\n\n const interactiveVisibilityClasses = twMerge(\n 'pointer-events-none',\n isOpen ? 'pointer-events-auto' : undefined,\n allowHoverTrigger ? 'group-hover/menu:pointer-events-auto' : undefined,\n allowFocusTrigger ? 'group-focus-within/menu:pointer-events-auto' : undefined\n );\n\n const visualVisibilityClasses = twMerge(\n 'opacity-0 scale-95',\n isOpen ? 'opacity-100 scale-100' : undefined,\n allowHoverTrigger\n ? 'group-hover/menu:opacity-100 group-hover/menu:scale-100'\n : undefined,\n allowFocusTrigger\n ? 'group-focus-within/menu:opacity-100 group-focus-within/menu:scale-100'\n : undefined\n );\n\n const overlayVisibilityClasses = twMerge(\n 'pointer-events-none opacity-0 transition-opacity duration-150',\n allowHoverTrigger ? 'group-hover/menu:opacity-100' : undefined,\n allowFocusTrigger ? 'group-focus-within/menu:opacity-100' : undefined,\n isOpen ? 'pointer-events-auto opacity-100' : undefined\n );\n\n const {\n className: contentExtraClassName,\n style: contentStyle,\n role: contentRole,\n tabIndex: contentTabIndex,\n ...restContentProps\n } = contentProps ?? {};\n\n const overlayNode = shouldRenderOverlay ? (\n <div\n className={twMerge(overlayBaseClasses, overlayVisibilityClasses, overlayClassName)}\n aria-hidden\n />\n ) : null;\n\n return (\n <div\n {...rest}\n ref={ref}\n className={twMerge('relative inline-flex min-w-0 group/menu', className)}\n data-open={isOpen || undefined}\n >\n {overlayNode}\n <div className='inline-flex w-full min-w-0'>{activator}</div>\n {shouldRenderContent ? (\n <div\n className={twMerge(\n menuWrapperBaseClasses,\n placementClasses[placement],\n offsetClasses[verticalPlacement],\n matchActivatorWidth ? 'min-w-full' : undefined,\n interactiveVisibilityClasses\n )}\n >\n <div\n {...restContentProps}\n className={twMerge(\n menuBaseClasses,\n originClasses[placement],\n visualVisibilityClasses,\n matchActivatorWidth ? 'min-w-full' : undefined,\n contentClassName,\n contentExtraClassName\n )}\n data-state={isOpen ? 'open' : 'closed'}\n role={contentRole ?? 'menu'}\n tabIndex={contentTabIndex ?? -1}\n style={contentStyle}\n >\n {children}\n </div>\n </div>\n ) : null}\n </div>\n );\n});\n\nMenu.displayName = 'Menu';\n\nexport default Menu;\n"]}
|
package/dist/menu.js
CHANGED
package/dist/notification.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { P as PropIcon, b as GlobalVariant } from './global.types-
|
|
2
|
+
import { P as PropIcon, b as GlobalVariant } from './global.types-CjO3VRWu.cjs';
|
|
3
3
|
|
|
4
4
|
type NotificationPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';
|
|
5
5
|
type NotificationType = 'info' | 'success' | 'warning' | 'error';
|
package/dist/notification.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { P as PropIcon, b as GlobalVariant } from './global.types-
|
|
2
|
+
import { P as PropIcon, b as GlobalVariant } from './global.types-CjO3VRWu.js';
|
|
3
3
|
|
|
4
4
|
type NotificationPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';
|
|
5
5
|
type NotificationType = 'info' | 'success' | 'warning' | 'error';
|
package/dist/profileCard.cjs
CHANGED
|
@@ -40,7 +40,6 @@ var blackAndWhitePaletteClasses = {
|
|
|
40
40
|
text: "bg-transparent text-black hover:bg-neutral-200 focus-visible:ring-black/20 underline-offset-2 border border-transparent",
|
|
41
41
|
filled: "bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20",
|
|
42
42
|
underlined: "bg-transparent text-black border border-transparent underline decoration-2 underline-offset-4 hover:bg-neutral-200 focus-visible:ring-black/20",
|
|
43
|
-
rounded: "rounded-full border-2 border-black bg-white text-black hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white",
|
|
44
43
|
sharp: "bg-black text-white rounded-none hover:bg-black/90 focus-visible:ring-black/40"
|
|
45
44
|
};
|
|
46
45
|
var paletteVariantClasses = {
|
|
@@ -51,8 +50,7 @@ var paletteVariantClasses = {
|
|
|
51
50
|
ghost: "text-primary bg-primary/10 hover:bg-primary/20 focus-visible:ring-primary/40 border border-transparent",
|
|
52
51
|
text: "bg-transparent text-primary hover:bg-primary/10 focus-visible:ring-primary/30 underline-offset-2 border border-transparent",
|
|
53
52
|
filled: "bg-primary/15 text-primary border border-primary/30 hover:bg-primary/25 focus-visible:ring-primary/25",
|
|
54
|
-
underlined: "bg-transparent text-primary border border-transparent underline decoration-2 underline-offset-4 hover:bg-primary/5 focus-visible:ring-primary/25"
|
|
55
|
-
rounded: "rounded-full border border-primary/60 bg-primary/10 text-primary hover:bg-primary/20 focus-visible:ring-primary/25"
|
|
53
|
+
underlined: "bg-transparent text-primary border border-transparent underline decoration-2 underline-offset-4 hover:bg-primary/5 focus-visible:ring-primary/25"
|
|
56
54
|
},
|
|
57
55
|
neutral: {
|
|
58
56
|
solid: "bg-gray-600 text-white hover:bg-gray-700 focus-visible:ring-gray-500",
|
|
@@ -61,8 +59,7 @@ var paletteVariantClasses = {
|
|
|
61
59
|
ghost: "text-gray-700 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-300 border border-transparent",
|
|
62
60
|
text: "bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent",
|
|
63
61
|
filled: "bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300 focus-visible:ring-gray-300",
|
|
64
|
-
underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-300"
|
|
65
|
-
rounded: "rounded-full border border-gray-400 bg-white text-gray-800 hover:bg-gray-100 focus-visible:ring-gray-300"
|
|
62
|
+
underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-300"
|
|
66
63
|
},
|
|
67
64
|
info: {
|
|
68
65
|
solid: "bg-sky-500 text-white hover:bg-sky-600 focus-visible:ring-sky-400",
|
|
@@ -71,8 +68,7 @@ var paletteVariantClasses = {
|
|
|
71
68
|
ghost: "text-sky-600 bg-sky-100 hover:bg-sky-200 focus-visible:ring-sky-300 border border-transparent",
|
|
72
69
|
text: "bg-transparent text-sky-600 hover:bg-sky-100 focus-visible:ring-sky-200 underline-offset-2 border border-transparent",
|
|
73
70
|
filled: "bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200 focus-visible:ring-sky-200",
|
|
74
|
-
underlined: "bg-transparent text-sky-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-sky-50 focus-visible:ring-sky-200"
|
|
75
|
-
rounded: "rounded-full border border-sky-500/70 bg-sky-50 text-sky-700 hover:bg-sky-100 focus-visible:ring-sky-200"
|
|
71
|
+
underlined: "bg-transparent text-sky-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-sky-50 focus-visible:ring-sky-200"
|
|
76
72
|
},
|
|
77
73
|
success: {
|
|
78
74
|
solid: "bg-emerald-500 text-white hover:bg-emerald-600 focus-visible:ring-emerald-400",
|
|
@@ -81,8 +77,7 @@ var paletteVariantClasses = {
|
|
|
81
77
|
ghost: "text-emerald-600 bg-emerald-100 hover:bg-emerald-200 focus-visible:ring-emerald-300 border border-transparent",
|
|
82
78
|
text: "bg-transparent text-emerald-600 hover:bg-emerald-100 focus-visible:ring-emerald-200 underline-offset-2 border border-transparent",
|
|
83
79
|
filled: "bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200 focus-visible:ring-emerald-200",
|
|
84
|
-
underlined: "bg-transparent text-emerald-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-emerald-50 focus-visible:ring-emerald-200"
|
|
85
|
-
rounded: "rounded-full border border-emerald-500/70 bg-emerald-50 text-emerald-700 hover:bg-emerald-100 focus-visible:ring-emerald-200"
|
|
80
|
+
underlined: "bg-transparent text-emerald-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-emerald-50 focus-visible:ring-emerald-200"
|
|
86
81
|
},
|
|
87
82
|
warning: {
|
|
88
83
|
solid: "bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-400",
|
|
@@ -91,8 +86,7 @@ var paletteVariantClasses = {
|
|
|
91
86
|
ghost: "text-amber-600 bg-amber-100 hover:bg-amber-200 focus-visible:ring-amber-300 border border-transparent",
|
|
92
87
|
text: "bg-transparent text-amber-600 hover:bg-amber-100 focus-visible:ring-amber-200 underline-offset-2 border border-transparent",
|
|
93
88
|
filled: "bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200 focus-visible:ring-amber-200",
|
|
94
|
-
underlined: "bg-transparent text-amber-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-amber-50 focus-visible:ring-amber-200"
|
|
95
|
-
rounded: "rounded-full border border-amber-500/70 bg-amber-50 text-amber-700 hover:bg-amber-100 focus-visible:ring-amber-200"
|
|
89
|
+
underlined: "bg-transparent text-amber-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-amber-50 focus-visible:ring-amber-200"
|
|
96
90
|
},
|
|
97
91
|
danger: {
|
|
98
92
|
solid: "bg-red-500 text-white hover:bg-red-600 focus-visible:ring-red-400",
|
|
@@ -101,8 +95,7 @@ var paletteVariantClasses = {
|
|
|
101
95
|
ghost: "text-red-600 bg-red-100 hover:bg-red-200 focus-visible:ring-red-300 border border-transparent",
|
|
102
96
|
text: "bg-transparent text-red-600 hover:bg-red-100 focus-visible:ring-red-200 underline-offset-2 border border-transparent",
|
|
103
97
|
filled: "bg-red-100 text-red-700 border border-red-200 hover:bg-red-200 focus-visible:ring-red-200",
|
|
104
|
-
underlined: "bg-transparent text-red-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-red-50 focus-visible:ring-red-200"
|
|
105
|
-
rounded: "rounded-full border border-red-500/70 bg-red-50 text-red-700 hover:bg-red-100 focus-visible:ring-red-200"
|
|
98
|
+
underlined: "bg-transparent text-red-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-red-50 focus-visible:ring-red-200"
|
|
106
99
|
},
|
|
107
100
|
surface: {
|
|
108
101
|
solid: "bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200",
|
|
@@ -111,8 +104,7 @@ var paletteVariantClasses = {
|
|
|
111
104
|
ghost: "text-gray-900 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-200 border border-transparent",
|
|
112
105
|
text: "bg-transparent text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent",
|
|
113
106
|
filled: "bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white focus-visible:ring-gray-200",
|
|
114
|
-
underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-200"
|
|
115
|
-
rounded: "rounded-full border border-gray-300 bg-white text-gray-900 hover:bg-gray-50 focus-visible:ring-gray-200"
|
|
107
|
+
underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-200"
|
|
116
108
|
},
|
|
117
109
|
bw: blackAndWhitePaletteClasses
|
|
118
110
|
};
|
|
@@ -168,7 +160,7 @@ var iconOnlyIconSizeClasses = {
|
|
|
168
160
|
large: "text-xl",
|
|
169
161
|
"x-large": "text-2xl"
|
|
170
162
|
};
|
|
171
|
-
var
|
|
163
|
+
var ButtonBase = React__namespace.forwardRef(
|
|
172
164
|
({
|
|
173
165
|
variant = "solid",
|
|
174
166
|
color = "primary",
|
|
@@ -223,7 +215,71 @@ var Button = React__namespace.forwardRef(
|
|
|
223
215
|
);
|
|
224
216
|
}
|
|
225
217
|
);
|
|
226
|
-
|
|
218
|
+
ButtonBase.displayName = "Button";
|
|
219
|
+
var isButtonElement = (element) => {
|
|
220
|
+
if (!React__namespace.isValidElement(element)) {
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
const elementType = element.type;
|
|
224
|
+
return element.type === ButtonBase || elementType.displayName === ButtonBase.displayName;
|
|
225
|
+
};
|
|
226
|
+
var ButtonGroup = React__namespace.forwardRef((props, ref) => {
|
|
227
|
+
const {
|
|
228
|
+
variant,
|
|
229
|
+
color,
|
|
230
|
+
size,
|
|
231
|
+
block = false,
|
|
232
|
+
disabled = false,
|
|
233
|
+
loading = false,
|
|
234
|
+
iconOnly,
|
|
235
|
+
vertical = false,
|
|
236
|
+
attached = true,
|
|
237
|
+
className,
|
|
238
|
+
role,
|
|
239
|
+
children,
|
|
240
|
+
...rest
|
|
241
|
+
} = props;
|
|
242
|
+
const groupBase = vertical ? "inline-flex w-fit flex-col" : "inline-flex w-fit items-stretch";
|
|
243
|
+
const blockClass = block ? "w-full [&>*]:flex-1" : void 0;
|
|
244
|
+
const attachedClass = attached ? vertical ? "[&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none" : "[&>*:not(:first-child)]:-ml-px [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:rounded-r-none" : void 0;
|
|
245
|
+
const enhanceChild = (child) => {
|
|
246
|
+
if (!React__namespace.isValidElement(child)) {
|
|
247
|
+
return child;
|
|
248
|
+
}
|
|
249
|
+
if (isButtonElement(child)) {
|
|
250
|
+
return React__namespace.cloneElement(child, {
|
|
251
|
+
variant: child.props.variant ?? variant,
|
|
252
|
+
color: child.props.color ?? color,
|
|
253
|
+
size: child.props.size ?? size,
|
|
254
|
+
block: child.props.block ?? block,
|
|
255
|
+
disabled: child.props.disabled ?? disabled,
|
|
256
|
+
loading: child.props.loading ?? loading,
|
|
257
|
+
iconOnly: child.props.iconOnly ?? iconOnly
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
if (child.props && typeof child.props === "object" && "children" in child.props) {
|
|
261
|
+
const nestedChildren = React__namespace.Children.map(child.props.children, enhanceChild);
|
|
262
|
+
if (nestedChildren !== child.props.children) {
|
|
263
|
+
return React__namespace.cloneElement(child, void 0, nestedChildren);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return child;
|
|
267
|
+
};
|
|
268
|
+
const resolvedChildren = React__namespace.Children.map(children, enhanceChild);
|
|
269
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
270
|
+
"div",
|
|
271
|
+
{
|
|
272
|
+
...rest,
|
|
273
|
+
ref,
|
|
274
|
+
role: role ?? "group",
|
|
275
|
+
className: tailwindMerge.twMerge(groupBase, blockClass, attachedClass, className),
|
|
276
|
+
children: resolvedChildren
|
|
277
|
+
}
|
|
278
|
+
);
|
|
279
|
+
});
|
|
280
|
+
ButtonGroup.displayName = "Button.Group";
|
|
281
|
+
var Button = ButtonBase;
|
|
282
|
+
Button.Group = ButtonGroup;
|
|
227
283
|
var Button_default = Button;
|
|
228
284
|
var variantMap = {
|
|
229
285
|
solid: "bg-white text-gray-900 border border-gray-200",
|
|
@@ -232,7 +288,6 @@ var variantMap = {
|
|
|
232
288
|
ghost: "bg-slate-50 text-gray-900 border border-slate-100",
|
|
233
289
|
filled: "bg-slate-900 text-white",
|
|
234
290
|
underlined: "bg-white text-gray-900 border-b-4 border-primary/70",
|
|
235
|
-
rounded: "bg-white text-gray-900 border border-gray-200 rounded-3xl",
|
|
236
291
|
sharp: "bg-white text-gray-900 border border-gray-200 rounded-none"
|
|
237
292
|
};
|
|
238
293
|
var elevationClasses = {
|
|
@@ -251,7 +306,6 @@ var cardRadiusMap = {
|
|
|
251
306
|
ghost: "rounded-2xl",
|
|
252
307
|
filled: "rounded-3xl",
|
|
253
308
|
underlined: "rounded-t-2xl",
|
|
254
|
-
rounded: "rounded-3xl",
|
|
255
309
|
sharp: "rounded-none"
|
|
256
310
|
};
|
|
257
311
|
var avatarRadiusMap = {
|
|
@@ -261,7 +315,6 @@ var avatarRadiusMap = {
|
|
|
261
315
|
ghost: "rounded-2xl",
|
|
262
316
|
filled: "rounded-3xl",
|
|
263
317
|
underlined: "rounded-2xl",
|
|
264
|
-
rounded: "rounded-3xl",
|
|
265
318
|
sharp: "rounded-none"
|
|
266
319
|
};
|
|
267
320
|
var isDarkVariant = (variant) => variant === "filled";
|
|
@@ -270,7 +323,7 @@ var SocialIcons = ({ socials, dark }) => {
|
|
|
270
323
|
if (Array.isArray(socials) && socials.length === 0) return null;
|
|
271
324
|
const isSocialLinkArray = Array.isArray(socials) && socials.length > 0 && "href" in socials[0];
|
|
272
325
|
if (isSocialLinkArray) {
|
|
273
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: socials.map((link) => /* @__PURE__ */ jsxRuntime.jsx(Button_default, { iconOnly: true, icon: link.icon, variant: "
|
|
326
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: socials.map((link) => /* @__PURE__ */ jsxRuntime.jsx(Button_default, { iconOnly: true, icon: link.icon, variant: "outline", size: "x-small", ...{ href: link.href, as: "a" } }, link.href)) });
|
|
274
327
|
}
|
|
275
328
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: socials });
|
|
276
329
|
};
|
package/dist/profileCard.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/globals.ts","../src/Containment/Button/states.button.ts","../src/Containment/Button/index.tsx","../src/Blocks/ProfileCard/index.tsx"],"names":["normalized","React","twMerge","jsxs","jsx","Fragment"],"mappings":"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","file":"profileCard.cjs","sourcesContent":["export const iconBaseClasses = {\n mdi: ['mdi']\n} as const;\n","import { iconBaseClasses } from '@lindle/linoardo/globals';\nimport type { GlobalSize, Palette } from '@lindle/linoardo/global.types';\nimport type { ButtonProps, ButtonVariant } from './types.button';\n\nexport const base =\n 'btn-base focus-visible:outline-none focus-visible:ring-2 rounded-lg transition-colors duration-200 font-medium disabled:opacity-50 disabled:cursor-not-allowed';\n\nconst blackAndWhitePaletteClasses = {\n solid: 'bg-black text-white hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white',\n outline:\n 'border-2 border-black text-black bg-white hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white',\n ghost:\n 'text-black bg-neutral-200 hover:bg-neutral-300 focus-visible:ring-black/20 border border-transparent',\n text:\n 'bg-transparent text-black hover:bg-neutral-200 focus-visible:ring-black/20 underline-offset-2 border border-transparent',\n filled:\n 'bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20',\n underlined:\n 'bg-transparent text-black border border-transparent underline decoration-2 underline-offset-4 hover:bg-neutral-200 focus-visible:ring-black/20',\n rounded:\n 'rounded-full border-2 border-black bg-white text-black hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white',\n sharp: 'bg-black text-white rounded-none hover:bg-black/90 focus-visible:ring-black/40'\n} satisfies Record<ButtonVariant, string>;\n\nconst paletteVariantClasses: Record<Palette, Record<ButtonVariant, string>> = {\n primary: {\n solid: 'bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary',\n sharp: 'rounded-none bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary',\n outline:\n 'border border-primary text-primary bg-white hover:bg-primary hover:text-white focus-visible:ring-primary',\n ghost:\n 'text-primary bg-primary/10 hover:bg-primary/20 focus-visible:ring-primary/40 border border-transparent',\n text: 'bg-transparent text-primary hover:bg-primary/10 focus-visible:ring-primary/30 underline-offset-2 border border-transparent',\n filled:\n 'bg-primary/15 text-primary border border-primary/30 hover:bg-primary/25 focus-visible:ring-primary/25',\n underlined:\n 'bg-transparent text-primary border border-transparent underline decoration-2 underline-offset-4 hover:bg-primary/5 focus-visible:ring-primary/25',\n rounded:\n 'rounded-full border border-primary/60 bg-primary/10 text-primary hover:bg-primary/20 focus-visible:ring-primary/25'\n },\n neutral: {\n solid: 'bg-gray-600 text-white hover:bg-gray-700 focus-visible:ring-gray-500',\n sharp: 'rounded-none bg-gray-600 text-white hover:bg-gray-700 focus-visible:ring-gray-500',\n outline:\n 'border border-gray-400 text-gray-700 bg-white hover:bg-gray-700 hover:text-white focus-visible:ring-gray-400',\n ghost:\n 'text-gray-700 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-300 border border-transparent',\n text: 'bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300 focus-visible:ring-gray-300',\n underlined:\n 'bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-300',\n rounded:\n 'rounded-full border border-gray-400 bg-white text-gray-800 hover:bg-gray-100 focus-visible:ring-gray-300'\n },\n info: {\n solid: 'bg-sky-500 text-white hover:bg-sky-600 focus-visible:ring-sky-400',\n sharp: 'rounded-none bg-sky-500 text-white hover:bg-sky-600 focus-visible:ring-sky-400',\n outline:\n 'border border-sky-500 text-sky-600 bg-white hover:bg-sky-500 hover:text-white focus-visible:ring-sky-400',\n ghost:\n 'text-sky-600 bg-sky-100 hover:bg-sky-200 focus-visible:ring-sky-300 border border-transparent',\n text: 'bg-transparent text-sky-600 hover:bg-sky-100 focus-visible:ring-sky-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200 focus-visible:ring-sky-200',\n underlined:\n 'bg-transparent text-sky-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-sky-50 focus-visible:ring-sky-200',\n rounded:\n 'rounded-full border border-sky-500/70 bg-sky-50 text-sky-700 hover:bg-sky-100 focus-visible:ring-sky-200'\n },\n success: {\n solid: 'bg-emerald-500 text-white hover:bg-emerald-600 focus-visible:ring-emerald-400',\n sharp:\n 'rounded-none bg-emerald-500 text-white hover:bg-emerald-600 focus-visible:ring-emerald-400',\n outline:\n 'border border-emerald-500 text-emerald-600 bg-white hover:bg-emerald-500 hover:text-white focus-visible:ring-emerald-400',\n ghost:\n 'text-emerald-600 bg-emerald-100 hover:bg-emerald-200 focus-visible:ring-emerald-300 border border-transparent',\n text: 'bg-transparent text-emerald-600 hover:bg-emerald-100 focus-visible:ring-emerald-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200 focus-visible:ring-emerald-200',\n underlined:\n 'bg-transparent text-emerald-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-emerald-50 focus-visible:ring-emerald-200',\n rounded:\n 'rounded-full border border-emerald-500/70 bg-emerald-50 text-emerald-700 hover:bg-emerald-100 focus-visible:ring-emerald-200'\n },\n warning: {\n solid: 'bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-400',\n sharp: 'rounded-none bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-400',\n outline:\n 'border border-amber-500 text-amber-600 bg-white hover:bg-amber-500 hover:text-white focus-visible:ring-amber-400',\n ghost:\n 'text-amber-600 bg-amber-100 hover:bg-amber-200 focus-visible:ring-amber-300 border border-transparent',\n text: 'bg-transparent text-amber-600 hover:bg-amber-100 focus-visible:ring-amber-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200 focus-visible:ring-amber-200',\n underlined:\n 'bg-transparent text-amber-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-amber-50 focus-visible:ring-amber-200',\n rounded:\n 'rounded-full border border-amber-500/70 bg-amber-50 text-amber-700 hover:bg-amber-100 focus-visible:ring-amber-200'\n },\n danger: {\n solid: 'bg-red-500 text-white hover:bg-red-600 focus-visible:ring-red-400',\n sharp: 'rounded-none bg-red-500 text-white hover:bg-red-600 focus-visible:ring-red-400',\n outline:\n 'border border-red-500 text-red-600 bg-white hover:bg-red-500 hover:text-white focus-visible:ring-red-400',\n ghost:\n 'text-red-600 bg-red-100 hover:bg-red-200 focus-visible:ring-red-300 border border-transparent',\n text: 'bg-transparent text-red-600 hover:bg-red-100 focus-visible:ring-red-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-red-100 text-red-700 border border-red-200 hover:bg-red-200 focus-visible:ring-red-200',\n underlined:\n 'bg-transparent text-red-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-red-50 focus-visible:ring-red-200',\n rounded:\n 'rounded-full border border-red-500/70 bg-red-50 text-red-700 hover:bg-red-100 focus-visible:ring-red-200'\n },\n surface: {\n solid:\n 'bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200',\n sharp:\n 'rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200',\n outline:\n 'border border-gray-300 text-gray-900 bg-white hover:bg-gray-100 focus-visible:ring-gray-200',\n ghost:\n 'text-gray-900 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-200 border border-transparent',\n text: 'bg-transparent text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white focus-visible:ring-gray-200',\n underlined:\n 'bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-200',\n rounded:\n 'rounded-full border border-gray-300 bg-white text-gray-900 hover:bg-gray-50 focus-visible:ring-gray-200'\n },\n bw: blackAndWhitePaletteClasses\n};\n\nexport const resolveVariantClass = (variant: ButtonVariant, palette: Palette) => {\n const paletteVariants = paletteVariantClasses[palette] ?? paletteVariantClasses.primary;\n return paletteVariants[variant] ?? paletteVariants.solid;\n};\n\nexport const resolveIconClassName = (icon?: ButtonProps['icon']) => {\n if (!icon) {\n return undefined;\n }\n\n if (typeof icon === 'string') {\n const trimmed = icon.trim();\n if (!trimmed) {\n return undefined;\n }\n\n if (trimmed.includes(' ')) {\n return trimmed;\n }\n\n const normalized = trimmed.startsWith('mdi-') ? trimmed : `mdi-${trimmed}`;\n return ['mdi', normalized].join(' ');\n }\n\n const [library, providedName] = icon;\n const normalizedLibrary = library.trim();\n const baseClasses = iconBaseClasses[normalizedLibrary as keyof typeof iconBaseClasses] ?? [\n normalizedLibrary\n ];\n const iconName = providedName.trim();\n if (!iconName) {\n return baseClasses.join(' ');\n }\n\n const normalized = iconName.startsWith('mdi-') ? iconName : `mdi-${iconName}`;\n return Array.from(new Set([...baseClasses, normalized])).join(' ');\n};\n\nexport const sizeClasses = {\n 'x-small': 'px-2.5 py-1 text-xs',\n small: 'px-3 py-1.5 text-sm',\n medium: 'px-4 py-2 text-base',\n large: 'px-6 py-3 text-lg',\n 'x-large': 'px-7 py-3.5 text-xl'\n} satisfies Record<GlobalSize, string>;\n\nexport const iconOnlySizeClasses = {\n 'x-small': 'p-0 text-xs aspect-square',\n small: 'p-2.5 text-sm aspect-square',\n medium: 'p-3 text-base aspect-square',\n large: 'p-3.5 text-lg aspect-square',\n 'x-large': 'p-4 text-xl aspect-square'\n} satisfies Record<GlobalSize, string>;\n\nexport const iconOnlyIconSizeClasses = {\n 'x-small': 'text-sm',\n small: 'text-base',\n medium: 'text-lg',\n large: 'text-xl',\n 'x-large': 'text-2xl'\n} satisfies Record<GlobalSize, string>;\n","import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport { ButtonProps } from './types.button';\nimport { base, iconOnlyIconSizeClasses, iconOnlySizeClasses, resolveIconClassName, resolveVariantClass, sizeClasses } from './states.button';\n\ntype PolymorphicRef<T extends React.ElementType> = React.ComponentPropsWithRef<T>['ref'];\ntype ButtonComponent = {\n <T extends React.ElementType = 'button'>(props: ButtonProps<T> & { ref?: PolymorphicRef<T> }): React.ReactElement | null;\n displayName?: string;\n};\n\n/**\n * Containment button supporting variant, size, block layout and loading states.\n */\nconst Button = React.forwardRef(\n <T extends React.ElementType = 'button'>(\n {\n variant = 'solid',\n color = 'primary',\n size = 'medium',\n block = false,\n loading = false,\n loadingText,\n icon,\n iconOnly = false,\n className,\n children,\n disabled,\n onClick,\n type,\n as,\n ...rest\n }: ButtonProps<T>,\n ref: React.ForwardedRef<unknown>\n ) => {\n const Component = as ?? 'button';\n const variantClass = resolveVariantClass(variant, color);\n const sizeClass = iconOnly ? (iconOnlySizeClasses[size] ?? iconOnlySizeClasses.medium) : (sizeClasses[size] ?? sizeClasses.medium);\n const iconSizeClass = iconOnly ? (iconOnlyIconSizeClasses[size] ?? iconOnlyIconSizeClasses.medium) : undefined;\n const blockClass = block ? 'w-full' : null;\n const isNativeButton = Component === 'button';\n const isDisabled = disabled || loading;\n const cursor = (onClick || type === 'submit') && !isDisabled ? 'cursor-pointer' : 'cursor-default';\n const resolvedIconClass = resolveIconClassName(icon);\n const shouldRenderIcon = Boolean(resolvedIconClass && !loading);\n const isLoadingTextProvided = loadingText !== undefined && loadingText !== null;\n const content = iconOnly ? null : loading && isLoadingTextProvided ? loadingText : children;\n const hasDecorators = (loading || shouldRenderIcon) && Boolean(content);\n const gapClass = hasDecorators ? 'gap-2' : undefined;\n const loadingIconClass = loading ? twMerge('mdi mdi-loading mdi-spin', 'leading-none', iconSizeClass) : undefined;\n const iconClassName = shouldRenderIcon ? twMerge('leading-none', iconSizeClass, resolvedIconClass) : undefined;\n\n return (\n <Component\n {...rest}\n type={type}\n ref={ref as PolymorphicRef<T>}\n onClick={onClick}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-disabled={!isNativeButton ? isDisabled : undefined}\n className={twMerge(base, cursor, variantClass, sizeClass, blockClass, gapClass, className)}\n data-loading={loading || undefined}\n aria-busy={loading || undefined}\n >\n {loading && <i className={loadingIconClass} aria-hidden />}\n {iconClassName && <i className={iconClassName} aria-hidden />}\n {content}\n </Component>\n );\n }\n) as ButtonComponent;\n\nButton.displayName = 'Button';\n\nexport default Button;\n","import Button from '@lindle/linoardo/Containment/Button';\nimport type { GlobalElevation, GlobalVariant } from '@lindle/linoardo/global.types';\nimport * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type SocialLink = {\n icon: string;\n href: string;\n label?: string;\n};\n\nexport type Badge = {\n label: string;\n};\n\nexport type Avatar = {\n src: string;\n alt?: string;\n};\n\nexport type ProfileCardLayout = 'classic' | 'split' | 'spotlight';\n\nexport type ProfileCardProps = React.HTMLAttributes<HTMLElement> & {\n name: string;\n role?: string;\n description?: React.ReactNode;\n avatar: Avatar;\n socials?: SocialLink[] | React.ReactNode;\n badges?: Badge[];\n layout?: ProfileCardLayout;\n variant?: GlobalVariant;\n elevation?: GlobalElevation;\n interactive?: boolean;\n};\n\nconst variantMap: Record<GlobalVariant, string> = {\n solid: 'bg-white text-gray-900 border border-gray-200',\n outline: 'bg-white text-gray-900 border border-gray-300',\n text: 'bg-transparent text-gray-900',\n ghost: 'bg-slate-50 text-gray-900 border border-slate-100',\n filled: 'bg-slate-900 text-white',\n underlined: 'bg-white text-gray-900 border-b-4 border-primary/70',\n rounded: 'bg-white text-gray-900 border border-gray-200 rounded-3xl',\n sharp: 'bg-white text-gray-900 border border-gray-200 rounded-none'\n};\n\nconst elevationClasses: Record<GlobalElevation, string> = {\n 0: 'shadow-none',\n 1: 'shadow-sm',\n 2: 'shadow',\n 3: 'shadow-md',\n 4: 'shadow-lg',\n 5: 'shadow-xl',\n 6: 'shadow-2xl'\n};\n\nconst cardRadiusMap: Record<GlobalVariant, string> = {\n solid: 'rounded-2xl',\n outline: 'rounded-2xl',\n text: 'rounded-2xl',\n ghost: 'rounded-2xl',\n filled: 'rounded-3xl',\n underlined: 'rounded-t-2xl',\n rounded: 'rounded-3xl',\n sharp: 'rounded-none'\n};\n\nconst avatarRadiusMap: Record<GlobalVariant, string> = {\n solid: 'rounded-2xl',\n outline: 'rounded-2xl',\n text: 'rounded-2xl',\n ghost: 'rounded-2xl',\n filled: 'rounded-3xl',\n underlined: 'rounded-2xl',\n rounded: 'rounded-3xl',\n sharp: 'rounded-none'\n};\n\nconst isDarkVariant = (variant: GlobalVariant) => variant === 'filled';\n\nconst SocialIcons: React.FC<{ socials?: SocialLink[] | React.ReactNode; dark?: boolean }> = ({ socials, dark }) => {\n if (!socials) return null;\n if (Array.isArray(socials) && socials.length === 0) return null;\n\n const isSocialLinkArray = Array.isArray(socials) && socials.length > 0 && 'href' in (socials[0] as any);\n\n if (isSocialLinkArray) {\n return (\n <div className='flex flex-wrap gap-2'>\n {(socials as SocialLink[]).map(link => (\n <Button key={link.href} iconOnly icon={link.icon} variant='rounded' size='x-small' {...({ href: link.href, as: 'a' } as any)} />\n ))}\n </div>\n );\n }\n\n return <div className='flex flex-wrap gap-2'>{socials as React.ReactNode}</div>;\n};\n\nconst Badges: React.FC<{ badges?: Badge[]; dark?: boolean }> = ({ badges = [], dark }) => {\n if (badges.length === 0) return null;\n\n const badgeBase = twMerge(\n 'inline-flex items-center rounded-full px-3 py-1 mb-2 text-xs font-semibold',\n dark ? 'bg-white/10 text-white border border-white/20' : 'bg-primary/10 text-primary border border-primary/15'\n );\n\n return (\n <div className='flex flex-wrap gap-2'>\n {badges.map(badge => (\n <span key={badge.label} className={badgeBase}>\n {badge.label}\n </span>\n ))}\n </div>\n );\n};\n\nconst AvatarFrame: React.FC<{\n avatar: Avatar;\n size?: 'md' | 'lg';\n ring?: boolean;\n radius: string;\n}> = ({ avatar, size = 'md', ring, radius }) => {\n const dimension = size === 'lg' ? 'h-28 w-28' : 'h-20 w-20';\n const ringClass = ring ? 'ring-4 ring-white/80 ring-offset-4 ring-offset-transparent' : '';\n return (\n <div className={twMerge('overflow-hidden bg-linear-to-br from-primary/10 to-primary/30', radius, dimension, ringClass)}>\n <img src={avatar.src} alt={avatar.alt ?? ''} className={twMerge('h-full w-full object-cover', radius)} loading='lazy' />\n </div>\n );\n};\n\nconst ProfileCard: React.FC<ProfileCardProps> = ({\n name,\n role,\n description,\n avatar,\n socials,\n badges,\n layout = 'classic',\n variant = 'solid',\n elevation = 0,\n interactive = false,\n className,\n ...rest\n}) => {\n const baseVariant = variantMap[variant] ?? variantMap.solid;\n const cardRadius = cardRadiusMap[variant] ?? 'rounded-2xl';\n const avatarRadius = avatarRadiusMap[variant] ?? 'rounded-2xl';\n const dark = isDarkVariant(variant);\n const muted = dark ? 'text-white/70' : 'text-gray-600';\n const accent = dark ? 'text-white' : 'text-gray-900';\n const elevationClass = elevationClasses[elevation] ?? elevationClasses[0];\n const interactiveClass = interactive\n ? 'transition-all duration-200 hover:-translate-y-0.5 hover:shadow-xl hover:z-10 focus-within:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-slate-900'\n : undefined;\n const tabIndexValue = interactive && rest.tabIndex === undefined ? 0 : rest.tabIndex;\n\n const content = (\n <>\n <div className='space-y-2'>\n <div className='flex items-center gap-3'>\n <AvatarFrame avatar={avatar} radius={avatarRadius} />\n <div>\n <h3 className={twMerge('text-xl font-semibold', accent)}>{name}</h3>\n {role && <p className={twMerge('text-sm font-medium', muted)}>{role}</p>}\n </div>\n </div>\n {description && <p className={twMerge('text-sm leading-relaxed', muted)}>{description}</p>}\n <Badges badges={badges} dark={dark} />\n </div>\n <SocialIcons socials={socials} dark={dark} />\n </>\n );\n\n const spotlightContent = (\n <div className='relative overflow-hidden'>\n <div className='absolute inset-0 bg-linear-to-br from-primary/10 via-transparent to-primary/20 blur-3xl' />\n <div className='relative flex flex-col gap-6 md:flex-row md:items-center'>\n <AvatarFrame avatar={avatar} size='lg' ring radius={avatarRadius} />\n <div className='space-y-3'>\n <h3 className={twMerge('text-2xl font-semibold', accent)}>{name}</h3>\n {role && <p className={twMerge('text-sm font-medium uppercase tracking-wide', muted)}>{role}</p>}\n {description && <p className={twMerge('text-sm leading-relaxed', muted)}>{description}</p>}\n <Badges badges={badges} dark={dark} />\n <SocialIcons socials={socials} dark={dark} />\n </div>\n </div>\n </div>\n );\n\n const splitContent = (\n <div className='grid gap-6 md:grid-cols-[auto,1fr] md:items-center'>\n <AvatarFrame avatar={avatar} size='lg' ring radius={avatarRadius} />\n <div className='space-y-3'>\n <div>\n <h3 className={twMerge('text-2xl font-semibold', accent)}>{name}</h3>\n {role && <p className={twMerge('text-sm font-medium', muted)}>{role}</p>}\n </div>\n {description && <p className={twMerge('text-sm leading-relaxed', muted)}>{description}</p>}\n <Badges badges={badges} dark={dark} />\n <SocialIcons socials={socials} dark={dark} />\n </div>\n </div>\n );\n\n const layoutMap: Record<ProfileCardLayout, React.ReactNode> = {\n classic: content,\n split: splitContent,\n spotlight: spotlightContent\n };\n\n return (\n <article\n {...rest}\n tabIndex={tabIndexValue}\n className={twMerge(\n 'profile-card relative overflow-hidden p-6 transition-colors',\n baseVariant,\n cardRadius,\n elevationClass,\n interactiveClass,\n className\n )}\n >\n {layoutMap[layout] ?? layoutMap.classic}\n </article>\n );\n};\n\nProfileCard.displayName = 'ProfileCard';\n\nexport default ProfileCard;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/globals.ts","../src/Containment/Button/states.button.ts","../src/Containment/Button/index.tsx","../src/Blocks/ProfileCard/index.tsx"],"names":["normalized","React","twMerge","jsxs","jsx","Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAM,eAAA,GAAkB;AAAA,EAC7B,GAAA,EAAK,CAAC,KAAK;AACb,CAAA;;;ACEO,IAAM,IAAA,GACX,gKAAA;AAEF,IAAM,2BAAA,GAA8B;AAAA,EAClC,KAAA,EAAO,mGAAA;AAAA,EACP,OAAA,EACE,uIAAA;AAAA,EACF,KAAA,EACE,sGAAA;AAAA,EACF,IAAA,EACE,yHAAA;AAAA,EACF,MAAA,EACE,6FAAA;AAAA,EACF,UAAA,EACE,gJAAA;AAAA,EACF,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,qBAAA,GAAwE;AAAA,EAC5E,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,sEAAA;AAAA,IACP,KAAA,EAAO,mFAAA;AAAA,IACP,OAAA,EACE,0GAAA;AAAA,IACF,KAAA,EACE,wGAAA;AAAA,IACF,IAAA,EAAM,4HAAA;AAAA,IACN,MAAA,EACE,uGAAA;AAAA,IACF,UAAA,EACE;AAAA,GACJ;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,sEAAA;AAAA,IACP,KAAA,EAAO,mFAAA;AAAA,IACP,OAAA,EACE,8GAAA;AAAA,IACF,KAAA,EACE,mGAAA;AAAA,IACF,IAAA,EAAM,yHAAA;AAAA,IACN,MAAA,EACE,gGAAA;AAAA,IACF,UAAA,EACE;AAAA,GACJ;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,mEAAA;AAAA,IACP,KAAA,EAAO,gFAAA;AAAA,IACP,OAAA,EACE,0GAAA;AAAA,IACF,KAAA,EACE,+FAAA;AAAA,IACF,IAAA,EAAM,sHAAA;AAAA,IACN,MAAA,EACE,2FAAA;AAAA,IACF,UAAA,EACE;AAAA,GACJ;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,+EAAA;AAAA,IACP,KAAA,EACE,4FAAA;AAAA,IACF,OAAA,EACE,0HAAA;AAAA,IACF,KAAA,EACE,+GAAA;AAAA,IACF,IAAA,EAAM,kIAAA;AAAA,IACN,MAAA,EACE,+GAAA;AAAA,IACF,UAAA,EACE;AAAA,GACJ;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,yEAAA;AAAA,IACP,KAAA,EAAO,sFAAA;AAAA,IACP,OAAA,EACE,kHAAA;AAAA,IACF,KAAA,EACE,uGAAA;AAAA,IACF,IAAA,EAAM,4HAAA;AAAA,IACN,MAAA,EACE,qGAAA;AAAA,IACF,UAAA,EACE;AAAA,GACJ;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO,mEAAA;AAAA,IACP,KAAA,EAAO,gFAAA;AAAA,IACP,OAAA,EACE,0GAAA;AAAA,IACF,KAAA,EACE,+FAAA;AAAA,IACF,IAAA,EAAM,sHAAA;AAAA,IACN,MAAA,EACE,2FAAA;AAAA,IACF,UAAA,EACE;AAAA,GACJ;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EACE,4FAAA;AAAA,IACF,KAAA,EACE,yGAAA;AAAA,IACF,OAAA,EACE,6FAAA;AAAA,IACF,KAAA,EACE,mGAAA;AAAA,IACF,IAAA,EAAM,yHAAA;AAAA,IACN,MAAA,EACE,4FAAA;AAAA,IACF,UAAA,EACE;AAAA,GACJ;AAAA,EACA,EAAA,EAAI;AACN,CAAA;AAEO,IAAM,mBAAA,GAAsB,CAAC,OAAA,EAAwB,OAAA,KAAqB;AAC/E,EAAA,MAAM,eAAA,GAAkB,qBAAA,CAAsB,OAAO,CAAA,IAAK,qBAAA,CAAsB,OAAA;AAChF,EAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,IAAK,eAAA,CAAgB,KAAA;AACrD,CAAA;AAEO,IAAM,oBAAA,GAAuB,CAAC,IAAA,KAA+B;AAClE,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,MAAM,OAAA,GAAU,KAAK,IAAA,EAAK;AAC1B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AACzB,MAAA,OAAO,OAAA;AAAA,IACT;AAEA,IAAA,MAAMA,cAAa,OAAA,CAAQ,UAAA,CAAW,MAAM,CAAA,GAAI,OAAA,GAAU,OAAO,OAAO,CAAA,CAAA;AACxE,IAAA,OAAO,CAAC,KAAA,EAAOA,WAAU,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,EACrC;AAEA,EAAA,MAAM,CAAC,OAAA,EAAS,YAAY,CAAA,GAAI,IAAA;AAChC,EAAA,MAAM,iBAAA,GAAoB,QAAQ,IAAA,EAAK;AACvC,EAAA,MAAM,WAAA,GAAc,eAAA,CAAgB,iBAAiD,CAAA,IAAK;AAAA,IACxF;AAAA,GACF;AACA,EAAA,MAAM,QAAA,GAAW,aAAa,IAAA,EAAK;AACnC,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,WAAA,CAAY,KAAK,GAAG,CAAA;AAAA,EAC7B;AAEA,EAAA,MAAM,aAAa,QAAA,CAAS,UAAA,CAAW,MAAM,CAAA,GAAI,QAAA,GAAW,OAAO,QAAQ,CAAA,CAAA;AAC3E,EAAA,OAAO,KAAA,CAAM,IAAA,iBAAK,IAAI,GAAA,CAAI,CAAC,GAAG,WAAA,EAAa,UAAU,CAAC,CAAC,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACnE,CAAA;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,SAAA,EAAW,qBAAA;AAAA,EACX,KAAA,EAAO,qBAAA;AAAA,EACP,MAAA,EAAQ,qBAAA;AAAA,EACR,KAAA,EAAO,mBAAA;AAAA,EACP,SAAA,EAAW;AACb,CAAA;AAEO,IAAM,mBAAA,GAAsB;AAAA,EACjC,SAAA,EAAW,2BAAA;AAAA,EACX,KAAA,EAAO,6BAAA;AAAA,EACP,MAAA,EAAQ,6BAAA;AAAA,EACR,KAAA,EAAO,6BAAA;AAAA,EACP,SAAA,EAAW;AACb,CAAA;AAEO,IAAM,uBAAA,GAA0B;AAAA,EACrC,SAAA,EAAW,SAAA;AAAA,EACX,KAAA,EAAO,WAAA;AAAA,EACP,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,SAAA,EAAW;AACb,CAAA;ACnKA,IAAM,UAAA,GAAmBC,gBAAA,CAAA,UAAA;AAAA,EACvB,CACE;AAAA,IACE,OAAA,GAAU,OAAA;AAAA,IACV,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,QAAA;AAAA,IACP,KAAA,GAAQ,KAAA;AAAA,IACR,OAAA,GAAU,KAAA;AAAA,IACV,WAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,YAAY,EAAA,IAAM,QAAA;AACxB,IAAA,MAAM,YAAA,GAAe,mBAAA,CAAoB,OAAA,EAAS,KAAK,CAAA;AACvD,IAAA,MAAM,SAAA,GAAY,QAAA,GAAY,mBAAA,CAAoB,IAAI,CAAA,IAAK,oBAAoB,MAAA,GAAW,WAAA,CAAY,IAAI,CAAA,IAAK,WAAA,CAAY,MAAA;AAC3H,IAAA,MAAM,gBAAgB,QAAA,GAAY,uBAAA,CAAwB,IAAI,CAAA,IAAK,wBAAwB,MAAA,GAAU,MAAA;AACrG,IAAA,MAAM,UAAA,GAAa,QAAQ,QAAA,GAAW,IAAA;AACtC,IAAA,MAAM,iBAAiB,SAAA,KAAc,QAAA;AACrC,IAAA,MAAM,aAAa,QAAA,IAAY,OAAA;AAC/B,IAAA,MAAM,UAAU,OAAA,IAAW,IAAA,KAAS,QAAA,KAAa,CAAC,aAAa,gBAAA,GAAmB,gBAAA;AAClF,IAAA,MAAM,iBAAA,GAAoB,qBAAqB,IAAI,CAAA;AACnD,IAAA,MAAM,gBAAA,GAAmB,OAAA,CAAQ,iBAAA,IAAqB,CAAC,OAAO,CAAA;AAC9D,IAAA,MAAM,qBAAA,GAAwB,WAAA,KAAgB,MAAA,IAAa,WAAA,KAAgB,IAAA;AAC3E,IAAA,MAAM,OAAA,GAAU,QAAA,GAAW,IAAA,GAAO,OAAA,IAAW,wBAAwB,WAAA,GAAc,QAAA;AACnF,IAAA,MAAM,aAAA,GAAA,CAAiB,OAAA,IAAW,gBAAA,KAAqB,OAAA,CAAQ,OAAO,CAAA;AACtE,IAAA,MAAM,QAAA,GAAW,gBAAgB,OAAA,GAAU,MAAA;AAC3C,IAAA,MAAM,mBAAmB,OAAA,GAAUC,qBAAA,CAAQ,0BAAA,EAA4B,cAAA,EAAgB,aAAa,CAAA,GAAI,MAAA;AACxG,IAAA,MAAM,gBAAgB,gBAAA,GAAmBA,qBAAA,CAAQ,cAAA,EAAgB,aAAA,EAAe,iBAAiB,CAAA,GAAI,MAAA;AAErG,IAAA,uBACEC,eAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACE,GAAG,IAAA;AAAA,QACJ,IAAA;AAAA,QACA,GAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA,EAAU,iBAAiB,UAAA,GAAa,MAAA;AAAA,QACxC,eAAA,EAAe,CAAC,cAAA,GAAiB,UAAA,GAAa,MAAA;AAAA,QAC9C,SAAA,EAAWD,sBAAQ,IAAA,EAAM,MAAA,EAAQ,cAAc,SAAA,EAAW,UAAA,EAAY,UAAU,SAAS,CAAA;AAAA,QACzF,gBAAc,OAAA,IAAW,MAAA;AAAA,QACzB,aAAW,OAAA,IAAW,MAAA;AAAA,QAErB,QAAA,EAAA;AAAA,UAAA,OAAA,oBAAWE,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,gBAAA,EAAkB,eAAW,IAAA,EAAC,CAAA;AAAA,UACvD,iCAAiBA,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,aAAA,EAAe,eAAW,IAAA,EAAC,CAAA;AAAA,UAC1D;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,UAAA,CAAW,WAAA,GAAc,QAAA;AAEzB,IAAM,eAAA,GAAkB,CAAC,OAAA,KAAyE;AAChG,EAAA,IAAI,CAAOH,gBAAA,CAAA,cAAA,CAAe,OAAO,CAAA,EAAG;AAClC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,cAAc,OAAA,CAAQ,IAAA;AAC5B,EAAA,OAAO,OAAA,CAAQ,IAAA,KAAS,UAAA,IAAc,WAAA,CAAY,gBAAgB,UAAA,CAAW,WAAA;AAC/E,CAAA;AAEA,IAAM,WAAA,GAAoBA,gBAAA,CAAA,UAAA,CAA6C,CAAC,KAAA,EAAO,GAAA,KAAQ;AACrF,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA,GAAQ,KAAA;AAAA,IACR,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,IAAA;AAAA,IACX,SAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,SAAA,GAAY,WAAW,4BAAA,GAA+B,iCAAA;AAC5D,EAAA,MAAM,UAAA,GAAa,QAAQ,qBAAA,GAAwB,MAAA;AACnD,EAAA,MAAM,aAAA,GAAgB,QAAA,GAClB,QAAA,GACE,6GAAA,GACA,6GAAA,GACF,MAAA;AAEJ,EAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA4C;AAChE,IAAA,IAAI,CAAOA,gBAAA,CAAA,cAAA,CAAe,KAAK,CAAA,EAAG;AAChC,MAAA,OAAO,KAAA;AAAA,IACT;AAEA,IAAA,IAAI,eAAA,CAAgB,KAAK,CAAA,EAAG;AAC1B,MAAA,OAAaA,8BAAa,KAAA,EAAO;AAAA,QAC/B,OAAA,EAAS,KAAA,CAAM,KAAA,CAAM,OAAA,IAAW,OAAA;AAAA,QAChC,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,KAAA,IAAS,KAAA;AAAA,QAC5B,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,IAAA,IAAQ,IAAA;AAAA,QAC1B,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,KAAA,IAAS,KAAA;AAAA,QAC5B,QAAA,EAAU,KAAA,CAAM,KAAA,CAAM,QAAA,IAAY,QAAA;AAAA,QAClC,OAAA,EAAS,KAAA,CAAM,KAAA,CAAM,OAAA,IAAW,OAAA;AAAA,QAChC,QAAA,EAAU,KAAA,CAAM,KAAA,CAAM,QAAA,IAAY;AAAA,OACnC,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,OAAO,KAAA,CAAM,UAAU,QAAA,IAAY,UAAA,IAAc,MAAM,KAAA,EAAO;AAC/E,MAAA,MAAM,iBAAuBA,gBAAA,CAAA,QAAA,CAAS,GAAA,CAAI,KAAA,CAAM,KAAA,CAAM,UAA6B,YAAY,CAAA;AAC/F,MAAA,IAAI,cAAA,KAAmB,KAAA,CAAM,KAAA,CAAM,QAAA,EAAU;AAC3C,QAAA,OAAaA,gBAAA,CAAA,YAAA,CAAa,KAAA,EAAO,MAAA,EAAW,cAAc,CAAA;AAAA,MAC5D;AAAA,IACF;AAEA,IAAA,OAAO,KAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAyBA,gBAAA,CAAA,QAAA,CAAS,GAAA,CAAI,QAAA,EAAU,YAAY,CAAA;AAElE,EAAA,uBACEG,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MACA,MAAM,IAAA,IAAQ,OAAA;AAAA,MACd,SAAA,EAAWF,qBAAA,CAAQ,SAAA,EAAW,UAAA,EAAY,eAAe,SAAS,CAAA;AAAA,MAEjE,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAC,CAAA;AAED,WAAA,CAAY,WAAA,GAAc,cAAA;AAE1B,IAAM,MAAA,GAAS,UAAA;AACf,MAAA,CAAO,KAAA,GAAQ,WAAA;AAEf,IAAO,cAAA,GAAQ,MAAA;AC1Hf,IAAM,UAAA,GAA4C;AAAA,EAChD,KAAA,EAAO,+CAAA;AAAA,EACP,OAAA,EAAS,+CAAA;AAAA,EACT,IAAA,EAAM,8BAAA;AAAA,EACN,KAAA,EAAO,mDAAA;AAAA,EACP,MAAA,EAAQ,yBAAA;AAAA,EACR,UAAA,EAAY,qDAAA;AAAA,EACZ,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,gBAAA,GAAoD;AAAA,EACxD,CAAA,EAAG,aAAA;AAAA,EACH,CAAA,EAAG,WAAA;AAAA,EACH,CAAA,EAAG,QAAA;AAAA,EACH,CAAA,EAAG,WAAA;AAAA,EACH,CAAA,EAAG,WAAA;AAAA,EACH,CAAA,EAAG,WAAA;AAAA,EACH,CAAA,EAAG;AACL,CAAA;AAEA,IAAM,aAAA,GAA+C;AAAA,EACnD,KAAA,EAAO,aAAA;AAAA,EACP,OAAA,EAAS,aAAA;AAAA,EACT,IAAA,EAAM,aAAA;AAAA,EACN,KAAA,EAAO,aAAA;AAAA,EACP,MAAA,EAAQ,aAAA;AAAA,EACR,UAAA,EAAY,eAAA;AAAA,EACZ,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,eAAA,GAAiD;AAAA,EACrD,KAAA,EAAO,aAAA;AAAA,EACP,OAAA,EAAS,aAAA;AAAA,EACT,IAAA,EAAM,aAAA;AAAA,EACN,KAAA,EAAO,aAAA;AAAA,EACP,MAAA,EAAQ,aAAA;AAAA,EACR,UAAA,EAAY,aAAA;AAAA,EACZ,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,aAAA,GAAgB,CAAC,OAAA,KAA2B,OAAA,KAAY,QAAA;AAE9D,IAAM,WAAA,GAAsF,CAAC,EAAE,OAAA,EAAS,MAAK,KAAM;AACjH,EAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AACrB,EAAA,IAAI,MAAM,OAAA,CAAQ,OAAO,KAAK,OAAA,CAAQ,MAAA,KAAW,GAAG,OAAO,IAAA;AAE3D,EAAA,MAAM,iBAAA,GAAoB,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,IAAK,QAAQ,MAAA,GAAS,CAAA,IAAK,MAAA,IAAW,OAAA,CAAQ,CAAC,CAAA;AAE9F,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,uBACEE,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACX,QAAA,EAAA,OAAA,CAAyB,GAAA,CAAI,CAAA,IAAA,qBAC7BA,cAAAA,CAAC,cAAA,EAAA,EAAuB,QAAA,EAAQ,MAAC,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,SAAA,EAAW,GAAI,EAAE,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,EAAA,EAAI,GAAA,EAAI,EAAA,EAAtG,IAAA,CAAK,IAA4G,CAC/H,CAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBAAOA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAwB,QAAA,EAAA,OAAA,EAA2B,CAAA;AAC3E,CAAA;AAEA,IAAM,SAAyD,CAAC,EAAE,SAAS,EAAC,EAAG,MAAK,KAAM;AACxF,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAEhC,EAAA,MAAM,SAAA,GAAYF,qBAAAA;AAAA,IAChB,4EAAA;AAAA,IACA,OAAO,+CAAA,GAAkD;AAAA,GAC3D;AAEA,EAAA,uBACEE,cAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sBAAA,EACZ,QAAA,EAAA,MAAA,CAAO,IAAI,CAAA,KAAA,qBACVA,cAAAA,CAAC,MAAA,EAAA,EAAuB,WAAW,SAAA,EAChC,QAAA,EAAA,KAAA,CAAM,SADE,KAAA,CAAM,KAEjB,CACD,CAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAM,WAAA,GAKD,CAAC,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,IAAA,EAAM,QAAO,KAAM;AAC9C,EAAA,MAAM,SAAA,GAAY,IAAA,KAAS,IAAA,GAAO,WAAA,GAAc,WAAA;AAChD,EAAA,MAAM,SAAA,GAAY,OAAO,4DAAA,GAA+D,EAAA;AACxF,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWF,qBAAAA,CAAQ,+DAAA,EAAiE,MAAA,EAAQ,SAAA,EAAW,SAAS,CAAA,EACnH,QAAA,kBAAAE,cAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,MAAA,CAAO,GAAA,EAAK,GAAA,EAAK,MAAA,CAAO,GAAA,IAAO,EAAA,EAAI,SAAA,EAAWF,qBAAAA,CAAQ,4BAAA,EAA8B,MAAM,CAAA,EAAG,OAAA,EAAQ,MAAA,EAAO,CAAA,EACxH,CAAA;AAEJ,CAAA;AAEA,IAAM,cAA0C,CAAC;AAAA,EAC/C,IAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA,GAAS,SAAA;AAAA,EACT,OAAA,GAAU,OAAA;AAAA,EACV,SAAA,GAAY,CAAA;AAAA,EACZ,WAAA,GAAc,KAAA;AAAA,EACd,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,OAAO,CAAA,IAAK,UAAA,CAAW,KAAA;AACtD,EAAA,MAAM,UAAA,GAAa,aAAA,CAAc,OAAO,CAAA,IAAK,aAAA;AAC7C,EAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,OAAO,CAAA,IAAK,aAAA;AACjD,EAAA,MAAM,IAAA,GAAO,cAAc,OAAO,CAAA;AAClC,EAAA,MAAM,KAAA,GAAQ,OAAO,eAAA,GAAkB,eAAA;AACvC,EAAA,MAAM,MAAA,GAAS,OAAO,YAAA,GAAe,eAAA;AACrC,EAAA,MAAM,cAAA,GAAiB,gBAAA,CAAiB,SAAS,CAAA,IAAK,iBAAiB,CAAC,CAAA;AACxE,EAAA,MAAM,gBAAA,GAAmB,cACrB,oRAAA,GACA,MAAA;AACJ,EAAA,MAAM,gBAAgB,WAAA,IAAe,IAAA,CAAK,QAAA,KAAa,MAAA,GAAY,IAAI,IAAA,CAAK,QAAA;AAE5E,EAAA,MAAM,OAAA,mBACJC,eAAAA,CAAAE,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAF,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,WAAA,EAAA,EAAY,MAAA,EAAgB,MAAA,EAAQ,YAAA,EAAc,CAAA;AAAA,wBACnDD,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAC,eAAC,IAAA,EAAA,EAAG,SAAA,EAAWF,sBAAQ,uBAAA,EAAyB,MAAM,GAAI,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,UAC9D,IAAA,oBAAQE,cAAAA,CAAC,GAAA,EAAA,EAAE,WAAWF,qBAAAA,CAAQ,qBAAA,EAAuB,KAAK,CAAA,EAAI,QAAA,EAAA,IAAA,EAAK;AAAA,SAAA,EACtE;AAAA,OAAA,EACF,CAAA;AAAA,MACC,WAAA,oBAAeE,cAAAA,CAAC,GAAA,EAAA,EAAE,WAAWF,qBAAAA,CAAQ,yBAAA,EAA2B,KAAK,CAAA,EAAI,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,sBACtFE,cAAAA,CAAC,MAAA,EAAA,EAAO,MAAA,EAAgB,IAAA,EAAY;AAAA,KAAA,EACtC,CAAA;AAAA,oBACAA,cAAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAkB,IAAA,EAAY;AAAA,GAAA,EAC7C,CAAA;AAGF,EAAA,MAAM,gBAAA,mBACJD,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yFAAA,EAA0F,CAAA;AAAA,oBACzGD,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,eAAY,MAAA,EAAgB,IAAA,EAAK,MAAK,IAAA,EAAI,IAAA,EAAC,QAAQ,YAAA,EAAc,CAAA;AAAA,sBAClED,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,eAAC,IAAA,EAAA,EAAG,SAAA,EAAWF,sBAAQ,wBAAA,EAA0B,MAAM,GAAI,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,QAC/D,IAAA,oBAAQE,cAAAA,CAAC,GAAA,EAAA,EAAE,WAAWF,qBAAAA,CAAQ,6CAAA,EAA+C,KAAK,CAAA,EAAI,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,QAC3F,WAAA,oBAAeE,cAAAA,CAAC,GAAA,EAAA,EAAE,WAAWF,qBAAAA,CAAQ,yBAAA,EAA2B,KAAK,CAAA,EAAI,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,wBACtFE,cAAAA,CAAC,MAAA,EAAA,EAAO,MAAA,EAAgB,IAAA,EAAY,CAAA;AAAA,wBACpCA,cAAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAkB,IAAA,EAAY;AAAA,OAAA,EAC7C;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAGF,EAAA,MAAM,YAAA,mBACJD,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oDAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,eAAY,MAAA,EAAgB,IAAA,EAAK,MAAK,IAAA,EAAI,IAAA,EAAC,QAAQ,YAAA,EAAc,CAAA;AAAA,oBAClED,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAC,eAAC,IAAA,EAAA,EAAG,SAAA,EAAWF,sBAAQ,wBAAA,EAA0B,MAAM,GAAI,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,QAC/D,IAAA,oBAAQE,cAAAA,CAAC,GAAA,EAAA,EAAE,WAAWF,qBAAAA,CAAQ,qBAAA,EAAuB,KAAK,CAAA,EAAI,QAAA,EAAA,IAAA,EAAK;AAAA,OAAA,EACtE,CAAA;AAAA,MACC,WAAA,oBAAeE,cAAAA,CAAC,GAAA,EAAA,EAAE,WAAWF,qBAAAA,CAAQ,yBAAA,EAA2B,KAAK,CAAA,EAAI,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,sBACtFE,cAAAA,CAAC,MAAA,EAAA,EAAO,MAAA,EAAgB,IAAA,EAAY,CAAA;AAAA,sBACpCA,cAAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAkB,IAAA,EAAY;AAAA,KAAA,EAC7C;AAAA,GAAA,EACF,CAAA;AAGF,EAAA,MAAM,SAAA,GAAwD;AAAA,IAC5D,OAAA,EAAS,OAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAEA,EAAA,uBACEA,cAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,QAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAWF,qBAAAA;AAAA,QACT,6DAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA;AAAA,QACA,cAAA;AAAA,QACA,gBAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,SAAA,CAAU,MAAM,CAAA,IAAK,SAAA,CAAU;AAAA;AAAA,GAClC;AAEJ,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAO,mBAAA,GAAQ","file":"profileCard.cjs","sourcesContent":["export const iconBaseClasses = {\n mdi: ['mdi']\n} as const;\n","import { iconBaseClasses } from '@lindle/linoardo/globals';\nimport type { GlobalSize, Palette } from '@lindle/linoardo/global.types';\nimport type { ButtonProps, ButtonVariant } from './types.button';\n\nexport const base =\n 'btn-base focus-visible:outline-none focus-visible:ring-2 rounded-lg transition-colors duration-200 font-medium disabled:opacity-50 disabled:cursor-not-allowed';\n\nconst blackAndWhitePaletteClasses = {\n solid: 'bg-black text-white hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white',\n outline:\n 'border-2 border-black text-black bg-white hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white',\n ghost:\n 'text-black bg-neutral-200 hover:bg-neutral-300 focus-visible:ring-black/20 border border-transparent',\n text:\n 'bg-transparent text-black hover:bg-neutral-200 focus-visible:ring-black/20 underline-offset-2 border border-transparent',\n filled:\n 'bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20',\n underlined:\n 'bg-transparent text-black border border-transparent underline decoration-2 underline-offset-4 hover:bg-neutral-200 focus-visible:ring-black/20',\n sharp: 'bg-black text-white rounded-none hover:bg-black/90 focus-visible:ring-black/40'\n} satisfies Record<ButtonVariant, string>;\n\nconst paletteVariantClasses: Record<Palette, Record<ButtonVariant, string>> = {\n primary: {\n solid: 'bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary',\n sharp: 'rounded-none bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary',\n outline:\n 'border border-primary text-primary bg-white hover:bg-primary hover:text-white focus-visible:ring-primary',\n ghost:\n 'text-primary bg-primary/10 hover:bg-primary/20 focus-visible:ring-primary/40 border border-transparent',\n text: 'bg-transparent text-primary hover:bg-primary/10 focus-visible:ring-primary/30 underline-offset-2 border border-transparent',\n filled:\n 'bg-primary/15 text-primary border border-primary/30 hover:bg-primary/25 focus-visible:ring-primary/25',\n underlined:\n 'bg-transparent text-primary border border-transparent underline decoration-2 underline-offset-4 hover:bg-primary/5 focus-visible:ring-primary/25',\n },\n neutral: {\n solid: 'bg-gray-600 text-white hover:bg-gray-700 focus-visible:ring-gray-500',\n sharp: 'rounded-none bg-gray-600 text-white hover:bg-gray-700 focus-visible:ring-gray-500',\n outline:\n 'border border-gray-400 text-gray-700 bg-white hover:bg-gray-700 hover:text-white focus-visible:ring-gray-400',\n ghost:\n 'text-gray-700 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-300 border border-transparent',\n text: 'bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300 focus-visible:ring-gray-300',\n underlined:\n 'bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-300',\n },\n info: {\n solid: 'bg-sky-500 text-white hover:bg-sky-600 focus-visible:ring-sky-400',\n sharp: 'rounded-none bg-sky-500 text-white hover:bg-sky-600 focus-visible:ring-sky-400',\n outline:\n 'border border-sky-500 text-sky-600 bg-white hover:bg-sky-500 hover:text-white focus-visible:ring-sky-400',\n ghost:\n 'text-sky-600 bg-sky-100 hover:bg-sky-200 focus-visible:ring-sky-300 border border-transparent',\n text: 'bg-transparent text-sky-600 hover:bg-sky-100 focus-visible:ring-sky-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200 focus-visible:ring-sky-200',\n underlined:\n 'bg-transparent text-sky-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-sky-50 focus-visible:ring-sky-200',\n },\n success: {\n solid: 'bg-emerald-500 text-white hover:bg-emerald-600 focus-visible:ring-emerald-400',\n sharp:\n 'rounded-none bg-emerald-500 text-white hover:bg-emerald-600 focus-visible:ring-emerald-400',\n outline:\n 'border border-emerald-500 text-emerald-600 bg-white hover:bg-emerald-500 hover:text-white focus-visible:ring-emerald-400',\n ghost:\n 'text-emerald-600 bg-emerald-100 hover:bg-emerald-200 focus-visible:ring-emerald-300 border border-transparent',\n text: 'bg-transparent text-emerald-600 hover:bg-emerald-100 focus-visible:ring-emerald-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200 focus-visible:ring-emerald-200',\n underlined:\n 'bg-transparent text-emerald-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-emerald-50 focus-visible:ring-emerald-200',\n },\n warning: {\n solid: 'bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-400',\n sharp: 'rounded-none bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-400',\n outline:\n 'border border-amber-500 text-amber-600 bg-white hover:bg-amber-500 hover:text-white focus-visible:ring-amber-400',\n ghost:\n 'text-amber-600 bg-amber-100 hover:bg-amber-200 focus-visible:ring-amber-300 border border-transparent',\n text: 'bg-transparent text-amber-600 hover:bg-amber-100 focus-visible:ring-amber-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200 focus-visible:ring-amber-200',\n underlined:\n 'bg-transparent text-amber-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-amber-50 focus-visible:ring-amber-200',\n },\n danger: {\n solid: 'bg-red-500 text-white hover:bg-red-600 focus-visible:ring-red-400',\n sharp: 'rounded-none bg-red-500 text-white hover:bg-red-600 focus-visible:ring-red-400',\n outline:\n 'border border-red-500 text-red-600 bg-white hover:bg-red-500 hover:text-white focus-visible:ring-red-400',\n ghost:\n 'text-red-600 bg-red-100 hover:bg-red-200 focus-visible:ring-red-300 border border-transparent',\n text: 'bg-transparent text-red-600 hover:bg-red-100 focus-visible:ring-red-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-red-100 text-red-700 border border-red-200 hover:bg-red-200 focus-visible:ring-red-200',\n underlined:\n 'bg-transparent text-red-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-red-50 focus-visible:ring-red-200',\n },\n surface: {\n solid:\n 'bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200',\n sharp:\n 'rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200',\n outline:\n 'border border-gray-300 text-gray-900 bg-white hover:bg-gray-100 focus-visible:ring-gray-200',\n ghost:\n 'text-gray-900 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-200 border border-transparent',\n text: 'bg-transparent text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent',\n filled:\n 'bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white focus-visible:ring-gray-200',\n underlined:\n 'bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-200',\n },\n bw: blackAndWhitePaletteClasses\n};\n\nexport const resolveVariantClass = (variant: ButtonVariant, palette: Palette) => {\n const paletteVariants = paletteVariantClasses[palette] ?? paletteVariantClasses.primary;\n return paletteVariants[variant] ?? paletteVariants.solid;\n};\n\nexport const resolveIconClassName = (icon?: ButtonProps['icon']) => {\n if (!icon) {\n return undefined;\n }\n\n if (typeof icon === 'string') {\n const trimmed = icon.trim();\n if (!trimmed) {\n return undefined;\n }\n\n if (trimmed.includes(' ')) {\n return trimmed;\n }\n\n const normalized = trimmed.startsWith('mdi-') ? trimmed : `mdi-${trimmed}`;\n return ['mdi', normalized].join(' ');\n }\n\n const [library, providedName] = icon;\n const normalizedLibrary = library.trim();\n const baseClasses = iconBaseClasses[normalizedLibrary as keyof typeof iconBaseClasses] ?? [\n normalizedLibrary\n ];\n const iconName = providedName.trim();\n if (!iconName) {\n return baseClasses.join(' ');\n }\n\n const normalized = iconName.startsWith('mdi-') ? iconName : `mdi-${iconName}`;\n return Array.from(new Set([...baseClasses, normalized])).join(' ');\n};\n\nexport const sizeClasses = {\n 'x-small': 'px-2.5 py-1 text-xs',\n small: 'px-3 py-1.5 text-sm',\n medium: 'px-4 py-2 text-base',\n large: 'px-6 py-3 text-lg',\n 'x-large': 'px-7 py-3.5 text-xl'\n} satisfies Record<GlobalSize, string>;\n\nexport const iconOnlySizeClasses = {\n 'x-small': 'p-0 text-xs aspect-square',\n small: 'p-2.5 text-sm aspect-square',\n medium: 'p-3 text-base aspect-square',\n large: 'p-3.5 text-lg aspect-square',\n 'x-large': 'p-4 text-xl aspect-square'\n} satisfies Record<GlobalSize, string>;\n\nexport const iconOnlyIconSizeClasses = {\n 'x-small': 'text-sm',\n small: 'text-base',\n medium: 'text-lg',\n large: 'text-xl',\n 'x-large': 'text-2xl'\n} satisfies Record<GlobalSize, string>;\n","import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport { ButtonGroupProps, ButtonProps } from './types.button';\nimport { base, iconOnlyIconSizeClasses, iconOnlySizeClasses, resolveIconClassName, resolveVariantClass, sizeClasses } from './states.button';\n\ntype PolymorphicRef<T extends React.ElementType> = React.ComponentPropsWithRef<T>['ref'];\ntype ButtonBaseComponent = {\n <T extends React.ElementType = 'button'>(props: ButtonProps<T> & { ref?: PolymorphicRef<T> }): React.ReactElement | null;\n displayName?: string;\n};\ntype ButtonComponent = ButtonBaseComponent & {\n Group: React.ForwardRefExoticComponent<ButtonGroupProps & React.RefAttributes<HTMLDivElement>>;\n};\n\n/**\n * Containment button supporting variant, size, block layout and loading states.\n */\nconst ButtonBase = React.forwardRef(\n <T extends React.ElementType = 'button'>(\n {\n variant = 'solid',\n color = 'primary',\n size = 'medium',\n block = false,\n loading = false,\n loadingText,\n icon,\n iconOnly = false,\n className,\n children,\n disabled,\n onClick,\n type,\n as,\n ...rest\n }: ButtonProps<T>,\n ref: React.ForwardedRef<unknown>\n ) => {\n const Component = as ?? 'button';\n const variantClass = resolveVariantClass(variant, color);\n const sizeClass = iconOnly ? (iconOnlySizeClasses[size] ?? iconOnlySizeClasses.medium) : (sizeClasses[size] ?? sizeClasses.medium);\n const iconSizeClass = iconOnly ? (iconOnlyIconSizeClasses[size] ?? iconOnlyIconSizeClasses.medium) : undefined;\n const blockClass = block ? 'w-full' : null;\n const isNativeButton = Component === 'button';\n const isDisabled = disabled || loading;\n const cursor = (onClick || type === 'submit') && !isDisabled ? 'cursor-pointer' : 'cursor-default';\n const resolvedIconClass = resolveIconClassName(icon);\n const shouldRenderIcon = Boolean(resolvedIconClass && !loading);\n const isLoadingTextProvided = loadingText !== undefined && loadingText !== null;\n const content = iconOnly ? null : loading && isLoadingTextProvided ? loadingText : children;\n const hasDecorators = (loading || shouldRenderIcon) && Boolean(content);\n const gapClass = hasDecorators ? 'gap-2' : undefined;\n const loadingIconClass = loading ? twMerge('mdi mdi-loading mdi-spin', 'leading-none', iconSizeClass) : undefined;\n const iconClassName = shouldRenderIcon ? twMerge('leading-none', iconSizeClass, resolvedIconClass) : undefined;\n\n return (\n <Component\n {...rest}\n type={type}\n ref={ref as PolymorphicRef<T>}\n onClick={onClick}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-disabled={!isNativeButton ? isDisabled : undefined}\n className={twMerge(base, cursor, variantClass, sizeClass, blockClass, gapClass, className)}\n data-loading={loading || undefined}\n aria-busy={loading || undefined}\n >\n {loading && <i className={loadingIconClass} aria-hidden />}\n {iconClassName && <i className={iconClassName} aria-hidden />}\n {content}\n </Component>\n );\n }\n) as ButtonBaseComponent;\n\nButtonBase.displayName = 'Button';\n\nconst isButtonElement = (element: React.ReactNode): element is React.ReactElement<ButtonProps> => {\n if (!React.isValidElement(element)) {\n return false;\n }\n\n const elementType = element.type as { displayName?: string };\n return element.type === ButtonBase || elementType.displayName === ButtonBase.displayName;\n};\n\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>((props, ref) => {\n const {\n variant,\n color,\n size,\n block = false,\n disabled = false,\n loading = false,\n iconOnly,\n vertical = false,\n attached = true,\n className,\n role,\n children,\n ...rest\n } = props;\n\n const groupBase = vertical ? 'inline-flex w-fit flex-col' : 'inline-flex w-fit items-stretch';\n const blockClass = block ? 'w-full [&>*]:flex-1' : undefined;\n const attachedClass = attached\n ? vertical\n ? '[&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none'\n : '[&>*:not(:first-child)]:-ml-px [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:rounded-r-none'\n : undefined;\n\n const enhanceChild = (child: React.ReactNode): React.ReactNode => {\n if (!React.isValidElement(child)) {\n return child;\n }\n\n if (isButtonElement(child)) {\n return React.cloneElement(child, {\n variant: child.props.variant ?? variant,\n color: child.props.color ?? color,\n size: child.props.size ?? size,\n block: child.props.block ?? block,\n disabled: child.props.disabled ?? disabled,\n loading: child.props.loading ?? loading,\n iconOnly: child.props.iconOnly ?? iconOnly\n });\n }\n\n if (child.props && typeof child.props === 'object' && 'children' in child.props) {\n const nestedChildren = React.Children.map(child.props.children as React.ReactNode, enhanceChild);\n if (nestedChildren !== child.props.children) {\n return React.cloneElement(child, undefined, nestedChildren);\n }\n }\n\n return child;\n };\n\n const resolvedChildren = React.Children.map(children, enhanceChild);\n\n return (\n <div\n {...rest}\n ref={ref}\n role={role ?? 'group'}\n className={twMerge(groupBase, blockClass, attachedClass, className)}\n >\n {resolvedChildren}\n </div>\n );\n});\n\nButtonGroup.displayName = 'Button.Group';\n\nconst Button = ButtonBase as ButtonComponent;\nButton.Group = ButtonGroup;\n\nexport default Button;\n","import Button from '@lindle/linoardo/Containment/Button';\nimport type { GlobalElevation, GlobalVariant } from '@lindle/linoardo/global.types';\nimport * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type SocialLink = {\n icon: string;\n href: string;\n label?: string;\n};\n\nexport type Badge = {\n label: string;\n};\n\nexport type Avatar = {\n src: string;\n alt?: string;\n};\n\nexport type ProfileCardLayout = 'classic' | 'split' | 'spotlight';\n\nexport type ProfileCardProps = React.HTMLAttributes<HTMLElement> & {\n name: string;\n role?: string;\n description?: React.ReactNode;\n avatar: Avatar;\n socials?: SocialLink[] | React.ReactNode;\n badges?: Badge[];\n layout?: ProfileCardLayout;\n variant?: GlobalVariant;\n elevation?: GlobalElevation;\n interactive?: boolean;\n};\n\nconst variantMap: Record<GlobalVariant, string> = {\n solid: 'bg-white text-gray-900 border border-gray-200',\n outline: 'bg-white text-gray-900 border border-gray-300',\n text: 'bg-transparent text-gray-900',\n ghost: 'bg-slate-50 text-gray-900 border border-slate-100',\n filled: 'bg-slate-900 text-white',\n underlined: 'bg-white text-gray-900 border-b-4 border-primary/70',\n sharp: 'bg-white text-gray-900 border border-gray-200 rounded-none'\n};\n\nconst elevationClasses: Record<GlobalElevation, string> = {\n 0: 'shadow-none',\n 1: 'shadow-sm',\n 2: 'shadow',\n 3: 'shadow-md',\n 4: 'shadow-lg',\n 5: 'shadow-xl',\n 6: 'shadow-2xl'\n};\n\nconst cardRadiusMap: Record<GlobalVariant, string> = {\n solid: 'rounded-2xl',\n outline: 'rounded-2xl',\n text: 'rounded-2xl',\n ghost: 'rounded-2xl',\n filled: 'rounded-3xl',\n underlined: 'rounded-t-2xl',\n sharp: 'rounded-none'\n};\n\nconst avatarRadiusMap: Record<GlobalVariant, string> = {\n solid: 'rounded-2xl',\n outline: 'rounded-2xl',\n text: 'rounded-2xl',\n ghost: 'rounded-2xl',\n filled: 'rounded-3xl',\n underlined: 'rounded-2xl',\n sharp: 'rounded-none'\n};\n\nconst isDarkVariant = (variant: GlobalVariant) => variant === 'filled';\n\nconst SocialIcons: React.FC<{ socials?: SocialLink[] | React.ReactNode; dark?: boolean }> = ({ socials, dark }) => {\n if (!socials) return null;\n if (Array.isArray(socials) && socials.length === 0) return null;\n\n const isSocialLinkArray = Array.isArray(socials) && socials.length > 0 && 'href' in (socials[0] as any);\n\n if (isSocialLinkArray) {\n return (\n <div className='flex flex-wrap gap-2'>\n {(socials as SocialLink[]).map(link => (\n <Button key={link.href} iconOnly icon={link.icon} variant='outline' size='x-small' {...({ href: link.href, as: 'a' } as any)} />\n ))}\n </div>\n );\n }\n\n return <div className='flex flex-wrap gap-2'>{socials as React.ReactNode}</div>;\n};\n\nconst Badges: React.FC<{ badges?: Badge[]; dark?: boolean }> = ({ badges = [], dark }) => {\n if (badges.length === 0) return null;\n\n const badgeBase = twMerge(\n 'inline-flex items-center rounded-full px-3 py-1 mb-2 text-xs font-semibold',\n dark ? 'bg-white/10 text-white border border-white/20' : 'bg-primary/10 text-primary border border-primary/15'\n );\n\n return (\n <div className='flex flex-wrap gap-2'>\n {badges.map(badge => (\n <span key={badge.label} className={badgeBase}>\n {badge.label}\n </span>\n ))}\n </div>\n );\n};\n\nconst AvatarFrame: React.FC<{\n avatar: Avatar;\n size?: 'md' | 'lg';\n ring?: boolean;\n radius: string;\n}> = ({ avatar, size = 'md', ring, radius }) => {\n const dimension = size === 'lg' ? 'h-28 w-28' : 'h-20 w-20';\n const ringClass = ring ? 'ring-4 ring-white/80 ring-offset-4 ring-offset-transparent' : '';\n return (\n <div className={twMerge('overflow-hidden bg-linear-to-br from-primary/10 to-primary/30', radius, dimension, ringClass)}>\n <img src={avatar.src} alt={avatar.alt ?? ''} className={twMerge('h-full w-full object-cover', radius)} loading='lazy' />\n </div>\n );\n};\n\nconst ProfileCard: React.FC<ProfileCardProps> = ({\n name,\n role,\n description,\n avatar,\n socials,\n badges,\n layout = 'classic',\n variant = 'solid',\n elevation = 0,\n interactive = false,\n className,\n ...rest\n}) => {\n const baseVariant = variantMap[variant] ?? variantMap.solid;\n const cardRadius = cardRadiusMap[variant] ?? 'rounded-2xl';\n const avatarRadius = avatarRadiusMap[variant] ?? 'rounded-2xl';\n const dark = isDarkVariant(variant);\n const muted = dark ? 'text-white/70' : 'text-gray-600';\n const accent = dark ? 'text-white' : 'text-gray-900';\n const elevationClass = elevationClasses[elevation] ?? elevationClasses[0];\n const interactiveClass = interactive\n ? 'transition-all duration-200 hover:-translate-y-0.5 hover:shadow-xl hover:z-10 focus-within:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-slate-900'\n : undefined;\n const tabIndexValue = interactive && rest.tabIndex === undefined ? 0 : rest.tabIndex;\n\n const content = (\n <>\n <div className='space-y-2'>\n <div className='flex items-center gap-3'>\n <AvatarFrame avatar={avatar} radius={avatarRadius} />\n <div>\n <h3 className={twMerge('text-xl font-semibold', accent)}>{name}</h3>\n {role && <p className={twMerge('text-sm font-medium', muted)}>{role}</p>}\n </div>\n </div>\n {description && <p className={twMerge('text-sm leading-relaxed', muted)}>{description}</p>}\n <Badges badges={badges} dark={dark} />\n </div>\n <SocialIcons socials={socials} dark={dark} />\n </>\n );\n\n const spotlightContent = (\n <div className='relative overflow-hidden'>\n <div className='absolute inset-0 bg-linear-to-br from-primary/10 via-transparent to-primary/20 blur-3xl' />\n <div className='relative flex flex-col gap-6 md:flex-row md:items-center'>\n <AvatarFrame avatar={avatar} size='lg' ring radius={avatarRadius} />\n <div className='space-y-3'>\n <h3 className={twMerge('text-2xl font-semibold', accent)}>{name}</h3>\n {role && <p className={twMerge('text-sm font-medium uppercase tracking-wide', muted)}>{role}</p>}\n {description && <p className={twMerge('text-sm leading-relaxed', muted)}>{description}</p>}\n <Badges badges={badges} dark={dark} />\n <SocialIcons socials={socials} dark={dark} />\n </div>\n </div>\n </div>\n );\n\n const splitContent = (\n <div className='grid gap-6 md:grid-cols-[auto,1fr] md:items-center'>\n <AvatarFrame avatar={avatar} size='lg' ring radius={avatarRadius} />\n <div className='space-y-3'>\n <div>\n <h3 className={twMerge('text-2xl font-semibold', accent)}>{name}</h3>\n {role && <p className={twMerge('text-sm font-medium', muted)}>{role}</p>}\n </div>\n {description && <p className={twMerge('text-sm leading-relaxed', muted)}>{description}</p>}\n <Badges badges={badges} dark={dark} />\n <SocialIcons socials={socials} dark={dark} />\n </div>\n </div>\n );\n\n const layoutMap: Record<ProfileCardLayout, React.ReactNode> = {\n classic: content,\n split: splitContent,\n spotlight: spotlightContent\n };\n\n return (\n <article\n {...rest}\n tabIndex={tabIndexValue}\n className={twMerge(\n 'profile-card relative overflow-hidden p-6 transition-colors',\n baseVariant,\n cardRadius,\n elevationClass,\n interactiveClass,\n className\n )}\n >\n {layoutMap[layout] ?? layoutMap.classic}\n </article>\n );\n};\n\nProfileCard.displayName = 'ProfileCard';\n\nexport default ProfileCard;\n"]}
|
package/dist/profileCard.d.cts
CHANGED
package/dist/profileCard.d.ts
CHANGED
package/dist/profileCard.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { ProfileCard_default as default } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { ProfileCard_default as default } from './chunk-7HOQSHPQ.js';
|
|
2
|
+
import './chunk-RUOU46YI.js';
|
|
3
3
|
import './chunk-IEILIKS2.js';
|
|
4
4
|
//# sourceMappingURL=profileCard.js.map
|
|
5
5
|
//# sourceMappingURL=profileCard.js.map
|
package/dist/select.cjs
CHANGED
|
@@ -33,8 +33,7 @@ var variantClasses = {
|
|
|
33
33
|
text: "rounded-none border-0 border-b border-transparent pl-0 pr-10 bg-transparent focus-visible:border-primary focus-visible:ring-0 focus-visible:ring-transparent dark:border-b-gray-600 dark:focus-visible:border-primary/70",
|
|
34
34
|
ghost: "rounded border border-transparent bg-gray-50 text-gray-900 focus-visible:bg-white focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/15 dark:bg-slate-800 dark:text-gray-100 dark:focus-visible:bg-slate-700 dark:focus-visible:border-primary/60 dark:focus-visible:ring-primary/25",
|
|
35
35
|
filled: "rounded border border-gray-200 bg-gray-100 focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/25 dark:border-gray-700 dark:bg-slate-800 dark:focus-visible:border-primary/60 dark:focus-visible:ring-primary/30",
|
|
36
|
-
underlined: "rounded-none border-0 border-b border-gray-300 pl-0 pr-10 bg-transparent focus-visible:border-primary focus-visible:ring-0 focus-visible:ring-transparent dark:border-b-gray-300 dark:focus-visible:border-primary/70"
|
|
37
|
-
rounded: "rounded-full pl-4 pr-10 border border-gray-300 bg-white focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/20 shadow-sm dark:border-gray-600 dark:bg-slate-900 dark:focus-visible:border-primary/70 dark:focus-visible:ring-primary/30 dark:shadow-black/20"
|
|
36
|
+
underlined: "rounded-none border-0 border-b border-gray-300 pl-0 pr-10 bg-transparent focus-visible:border-primary focus-visible:ring-0 focus-visible:ring-transparent dark:border-b-gray-300 dark:focus-visible:border-primary/70"
|
|
38
37
|
};
|
|
39
38
|
var sizeClasses = {
|
|
40
39
|
"x-small": { padding: "pl-2 pr-8 py-2", text: "text-xs" },
|