@lindle/linoardo 1.0.49 → 1.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/chunk-3J6Y3EQW.js +538 -0
  2. package/dist/chunk-3J6Y3EQW.js.map +1 -0
  3. package/dist/{chunk-LRWM4ZWZ.js → chunk-DEJ7ZDGL.js} +3 -3
  4. package/dist/chunk-DEJ7ZDGL.js.map +1 -0
  5. package/dist/{chunk-TRR7TDVA.js → chunk-HE44Z7XP.js} +12 -3
  6. package/dist/chunk-HE44Z7XP.js.map +1 -0
  7. package/dist/{chunk-Z5A2OIDI.js → chunk-SM2VNSPP.js} +4 -7
  8. package/dist/chunk-SM2VNSPP.js.map +1 -0
  9. package/dist/{chunk-LSIAP7ZZ.js → chunk-XLA2NCDF.js} +3 -9
  10. package/dist/chunk-XLA2NCDF.js.map +1 -0
  11. package/dist/expansion-panel.cjs +1 -7
  12. package/dist/expansion-panel.cjs.map +1 -1
  13. package/dist/expansion-panel.js +1 -1
  14. package/dist/index.cjs +581 -520
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +5 -6
  19. package/dist/index.js.map +1 -1
  20. package/dist/profileCard.cjs +1 -1
  21. package/dist/profileCard.cjs.map +1 -1
  22. package/dist/profileCard.js +1 -1
  23. package/dist/progress.cjs +2 -5
  24. package/dist/progress.cjs.map +1 -1
  25. package/dist/progress.js +1 -1
  26. package/dist/select.js +1 -2
  27. package/dist/styles.css +254 -187
  28. package/dist/textarea.cjs +484 -423
  29. package/dist/textarea.cjs.map +1 -1
  30. package/dist/textarea.d.cts +27 -23
  31. package/dist/textarea.d.ts +27 -23
  32. package/dist/textarea.js +1 -2
  33. package/package.json +7 -1
  34. package/dist/chunk-67TAA2MA.js +0 -470
  35. package/dist/chunk-67TAA2MA.js.map +0 -1
  36. package/dist/chunk-6SKW43XI.js +0 -14
  37. package/dist/chunk-6SKW43XI.js.map +0 -1
  38. package/dist/chunk-LRWM4ZWZ.js.map +0 -1
  39. package/dist/chunk-LSIAP7ZZ.js.map +0 -1
  40. package/dist/chunk-TRR7TDVA.js.map +0 -1
  41. package/dist/chunk-Z5A2OIDI.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -16,7 +16,7 @@ export { default as AppBar, AppBarNavItem, AppBarProps } from './app-bar.cjs';
16
16
  export { default as Hero, HeroProps } from './hero.cjs';
17
17
  export { Avatar, default as ProfileCard, ProfileCardLayout, ProfileCardProps, SocialLink } from './profileCard.cjs';
18
18
  export { default as Input } from './input.cjs';
19
- export { default as TextArea } from './textarea.cjs';
19
+ export { default as TextArea, TextAreaProps } from './textarea.cjs';
20
20
  export { default as Select, SelectOption, SelectOptionObject, SelectProps } from './select.cjs';
21
21
  export { default as Slider } from './slider.cjs';
22
22
  export { default as Switch } from './switch.cjs';
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export { default as AppBar, AppBarNavItem, AppBarProps } from './app-bar.js';
16
16
  export { default as Hero, HeroProps } from './hero.js';
17
17
  export { Avatar, default as ProfileCard, ProfileCardLayout, ProfileCardProps, SocialLink } from './profileCard.js';
18
18
  export { default as Input } from './input.js';
19
- export { default as TextArea } from './textarea.js';
19
+ export { default as TextArea, TextAreaProps } from './textarea.js';
20
20
  export { default as Select, SelectOption, SelectOptionObject, SelectProps } from './select.js';
21
21
  export { default as Slider } from './slider.js';
22
22
  export { default as Switch } from './switch.js';
package/dist/index.js CHANGED
@@ -1,16 +1,15 @@
1
1
  export { Notification_default as Notification } from './chunk-S7VLFCLP.js';
2
- export { Progress_default as Progress } from './chunk-Z5A2OIDI.js';
2
+ export { Progress_default as Progress } from './chunk-SM2VNSPP.js';
3
3
  export { TimeLine_default as TimeLine, TimeLineItem } from './chunk-LZYVTGJD.js';
4
4
  export { Input_default as Input } from './chunk-UGG35FPX.js';
5
- export { TextArea_default as TextArea } from './chunk-67TAA2MA.js';
5
+ export { TextArea_default as TextArea } from './chunk-3J6Y3EQW.js';
6
6
  export { Slider_default as Slider } from './chunk-KK33I72F.js';
7
7
  export { Switch_default as Switch } from './chunk-GKZFVQW6.js';
8
- export { Select_default as Select } from './chunk-TRR7TDVA.js';
9
- import './chunk-6SKW43XI.js';
8
+ export { Select_default as Select } from './chunk-HE44Z7XP.js';
10
9
  export { Icon_default as Icon } from './chunk-LWCRKQEV.js';
11
10
  export { Hero_default as Hero } from './chunk-7TQUULYB.js';
12
- export { ProfileCard_default as ProfileCard } from './chunk-LRWM4ZWZ.js';
13
- export { ExpansionPanel_default as ExpansionPanel } from './chunk-LSIAP7ZZ.js';
11
+ export { ProfileCard_default as ProfileCard } from './chunk-DEJ7ZDGL.js';
12
+ export { ExpansionPanel_default as ExpansionPanel } from './chunk-XLA2NCDF.js';
14
13
  export { ExpansionPanelItem_default as ExpansionPanelItem } from './chunk-Q7VTD6NY.js';
15
14
  export { Dialog_default as Dialog } from './chunk-DMI64Z53.js';
16
15
  export { ToolTip_default as ToolTip } from './chunk-O3VFEMJ7.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Containment/Drawer/index.tsx","../src/Containment/Overlay/index.tsx","../src/Containment/Tabs/context.ts","../src/Containment/Tabs/index.tsx","../src/Feedback/Notification/useNotification.ts"],"names":["React","overlayBaseClasses","React2","jsx","twMerge","createPortal","jsxs"],"mappings":"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","file":"index.js","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { twMerge } from 'tailwind-merge';\n\nconst overlayBaseClasses =\n 'fixed inset-0 z-[55] bg-gray-900/55 backdrop-blur-[2px] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100';\nconst temporaryContainerBaseClasses =\n 'fixed inset-y-0 z-[60] flex max-w-full transition-transform duration-200';\nconst staticContainerBaseClasses = 'relative flex h-full max-w-full';\nconst drawerBaseClasses =\n 'flex h-full w-full flex-col bg-white text-gray-900 shadow-xl shadow-black/10 ring-1 ring-black/5 focus-visible:outline-none dark:bg-gray-900 dark:text-gray-100 dark:ring-white/10';\n\nconst resolveSizeValue = (value?: string | number) => {\n if (value === undefined) {\n return undefined;\n }\n return typeof value === 'number' ? `${value}px` : value;\n};\n\nexport interface DrawerProps extends React.HTMLAttributes<HTMLDivElement> {\n location?: 'left' | 'right';\n floating?: boolean;\n temporary?: boolean;\n open?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n width?: string | number;\n onClose?: () => void;\n containerClassName?: string;\n overlayClassName?: string;\n overlayProps?: React.HTMLAttributes<HTMLDivElement>;\n portal?: boolean;\n portalContainer?: Element | null;\n}\n\n/**\n * Navigation drawer container inspired by Vuetify, with temporary and floating modes.\n */\nconst Drawer = React.forwardRef<HTMLDivElement, DrawerProps>((props, ref) => {\n const {\n location = 'left',\n floating = false,\n temporary = false,\n open,\n keepMounted = false,\n scrim = true,\n width = '18rem',\n onClose,\n containerClassName,\n overlayClassName,\n overlayProps,\n portal = true,\n portalContainer,\n className,\n style,\n role,\n ...rest\n } = props;\n\n const isOpen = open ?? !temporary;\n const state = isOpen ? 'open' : 'closed';\n const shouldRender = keepMounted || isOpen || temporary;\n const resolvedPortalContainer =\n portalContainer ?? (typeof document !== 'undefined' ? document.body : null);\n\n const resolvedStyle: React.CSSProperties = { ...style };\n if (resolvedStyle.width === undefined) {\n resolvedStyle.width = resolveSizeValue(width);\n }\n\n const locationClass = location === 'right' ? 'right-0' : 'left-0';\n const translateClass = isOpen\n ? 'translate-x-0'\n : location === 'right'\n ? 'translate-x-full'\n : '-translate-x-full';\n\n const floatingClasses = floating\n ? 'rounded-2xl shadow-2xl shadow-black/20 ring-1 ring-black/10 dark:ring-white/10'\n : undefined;\n const borderClasses =\n !floating && !temporary\n ? location === 'right'\n ? 'border-l border-gray-200 dark:border-gray-800'\n : 'border-r border-gray-200 dark:border-gray-800'\n : undefined;\n\n const {\n className: overlayExtraClassName,\n onClick: overlayOnClick,\n ...restOverlayProps\n } = overlayProps ?? {};\n\n const overlayNode = temporary && scrim && shouldRender ? (\n <div\n {...restOverlayProps}\n className={twMerge(\n overlayBaseClasses,\n isOpen ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0',\n overlayClassName,\n overlayExtraClassName\n )}\n onClick={event => {\n overlayOnClick?.(event);\n if (!event.defaultPrevented) {\n onClose?.();\n }\n }}\n data-state={state}\n aria-hidden\n />\n ) : null;\n\n const drawerNode = shouldRender ? (\n <div\n className={twMerge(\n temporary ? temporaryContainerBaseClasses : staticContainerBaseClasses,\n temporary ? locationClass : undefined,\n temporary ? translateClass : undefined,\n temporary && !isOpen ? 'pointer-events-none' : undefined,\n temporary && floating ? 'p-4' : undefined,\n !temporary && location === 'right' ? 'ml-auto' : undefined,\n containerClassName\n )}\n data-state={state}\n aria-hidden={temporary ? !isOpen : undefined}\n >\n <div\n {...rest}\n ref={ref}\n role={role ?? 'navigation'}\n className={twMerge(drawerBaseClasses, floatingClasses, borderClasses, className)}\n style={resolvedStyle}\n data-state={state}\n >\n {props.children}\n </div>\n </div>\n ) : null;\n\n const outputNode =\n temporary && portal && resolvedPortalContainer && drawerNode\n ? createPortal(\n <>\n {overlayNode}\n {drawerNode}\n </>,\n resolvedPortalContainer\n )\n : (\n <>\n {overlayNode}\n {drawerNode}\n </>\n );\n\n return outputNode;\n});\n\nDrawer.displayName = 'Drawer';\n\nexport default Drawer;\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { twMerge } from 'tailwind-merge';\n\nconst overlayBaseClasses =\n 'inset-0 z-[55] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100';\nconst scrimClasses = 'bg-gray-900/55 dark:bg-black/70 backdrop-blur-[2px]';\n\nexport interface OverlayProps extends React.HTMLAttributes<HTMLDivElement> {\n open?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n /** Render as absolute (inside parent) instead of fixed (viewport). */\n container?: boolean;\n onClose?: () => void;\n portal?: boolean;\n portalContainer?: Element | null;\n}\n\n/**\n * Overlay layer with optional scrim that renders arbitrary children.\n */\nconst Overlay = React.forwardRef<HTMLDivElement, OverlayProps>((props, ref) => {\n const {\n open,\n keepMounted = false,\n scrim = true,\n container = false,\n onClose,\n portal = false,\n portalContainer,\n className,\n role,\n children,\n ...rest\n } = props;\n\n const isOpen = open ?? true;\n const shouldRender = keepMounted || isOpen;\n const state = isOpen ? 'open' : 'closed';\n\n if (!shouldRender) {\n return null;\n }\n\n const resolvedPortalContainer =\n portalContainer ?? (typeof document !== 'undefined' ? document.body : null);\n\n const overlayNode = (\n <div\n {...rest}\n ref={ref}\n role={role ?? 'presentation'}\n className={twMerge(\n overlayBaseClasses,\n container ? 'absolute' : 'fixed',\n scrim ? scrimClasses : 'bg-transparent backdrop-blur-0',\n isOpen ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0',\n className\n )}\n data-state={state}\n onClick={event => {\n if (event.target !== event.currentTarget) {\n return;\n }\n if (!event.defaultPrevented) {\n onClose?.();\n }\n }}\n >\n {children}\n </div>\n );\n\n const shouldPortal = portal && !container;\n\n return shouldPortal && resolvedPortalContainer\n ? createPortal(overlayNode, resolvedPortalContainer)\n : overlayNode;\n});\n\nOverlay.displayName = 'Overlay';\n\nexport default Overlay;\n","import { isValidElement } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TabProps } from './types.tabs';\n\nconst TABS_TAB_MARKER = '__isTabsTab';\n\ntype MarkerTarget = Record<string | number | symbol, unknown> & {\n type?: unknown;\n};\n\nconst hasMarker = (type: unknown): boolean => {\n if (!type || (typeof type !== 'function' && typeof type !== 'object')) {\n return false;\n }\n\n if ((type as MarkerTarget)[TABS_TAB_MARKER]) {\n return true;\n }\n\n const innerType = (type as MarkerTarget).type;\n if (innerType && innerType !== type) {\n return hasMarker(innerType);\n }\n\n return false;\n};\n\nexport const isTabsTabElement = (element: ReactNode): element is ReactElement<TabProps> => {\n if (!isValidElement(element)) {\n return false;\n }\n\n return hasMarker(element.type);\n};\n\nexport const markTabsTab = (component: unknown) => {\n if (typeof component !== 'function' && (typeof component !== 'object' || component === null)) {\n return;\n }\n\n (component as MarkerTarget)[TABS_TAB_MARKER] = true;\n};\n","import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { resolveIconClassName } from '../Chip/states.chip';\nimport { isTabsTabElement, markTabsTab } from './context';\nimport type {\n TabProps,\n TabsContextValue,\n TabsExtraContent,\n TabsInternalProps,\n TabsProps,\n TabsSize,\n TabsValue,\n TabsVariant\n} from './types.tabs';\n\nconst sizeClasses: Record<TabsSize, { tab: string; icon: string }> = {\n 'x-small': { tab: 'h-7 px-2 text-xs', icon: 'text-sm' },\n small: { tab: 'h-8 px-2.5 text-sm', icon: 'text-base' },\n medium: { tab: 'h-9 px-3 text-sm', icon: 'text-base' },\n large: { tab: 'h-10 px-3.5 text-base', icon: 'text-lg' },\n 'x-large': { tab: 'h-11 px-4 text-base', icon: 'text-lg' }\n};\n\nconst variantListClasses: Record<TabsVariant, string> = {\n line: 'border-b border-gray-200 dark:border-gray-700',\n card: 'rounded-xl bg-gray-100 p-1 dark:bg-gray-800/70',\n pill: 'rounded-full bg-gray-100/80 p-1 dark:bg-gray-800/70'\n};\n\nconst variantTabBaseClasses: Record<TabsVariant, string> = {\n line: 'border-b-2 border-transparent -mb-px',\n card: 'rounded-lg border border-transparent bg-white/70 dark:bg-gray-900/70',\n pill: 'rounded-full'\n};\n\nconst paletteClasses: Record<Palette, { text: string; border: string; bg: string; ring: string; ink: string }> = {\n primary: {\n text: 'text-primary',\n border: 'border-primary',\n bg: 'bg-primary/10 dark:bg-primary/20',\n ring: 'ring-primary/30 dark:ring-primary/40',\n ink: 'bg-primary'\n },\n neutral: {\n text: 'text-gray-900 dark:text-gray-100',\n border: 'border-gray-900 dark:border-gray-100',\n bg: 'bg-gray-100 dark:bg-gray-800',\n ring: 'ring-gray-900/20 dark:ring-gray-200/25',\n ink: 'bg-gray-900 dark:bg-gray-100'\n },\n info: {\n text: 'text-sky-600 dark:text-sky-300',\n border: 'border-sky-500 dark:border-sky-400',\n bg: 'bg-sky-50 dark:bg-sky-900/30',\n ring: 'ring-sky-500/20 dark:ring-sky-400/30',\n ink: 'bg-sky-500'\n },\n success: {\n text: 'text-emerald-600 dark:text-emerald-300',\n border: 'border-emerald-500 dark:border-emerald-400',\n bg: 'bg-emerald-50 dark:bg-emerald-900/30',\n ring: 'ring-emerald-500/20 dark:ring-emerald-400/30',\n ink: 'bg-emerald-500'\n },\n warning: {\n text: 'text-amber-600 dark:text-amber-300',\n border: 'border-amber-500 dark:border-amber-400',\n bg: 'bg-amber-50 dark:bg-amber-900/30',\n ring: 'ring-amber-500/20 dark:ring-amber-400/30',\n ink: 'bg-amber-500'\n },\n danger: {\n text: 'text-red-600 dark:text-red-300',\n border: 'border-red-500 dark:border-red-400',\n bg: 'bg-red-50 dark:bg-red-900/30',\n ring: 'ring-red-500/20 dark:ring-red-400/30',\n ink: 'bg-red-500'\n },\n surface: {\n text: 'text-gray-900 dark:text-gray-100',\n border: 'border-gray-300 dark:border-gray-600',\n bg: 'bg-white dark:bg-gray-900',\n ring: 'ring-gray-300/30 dark:ring-gray-600/40',\n ink: 'bg-gray-400 dark:bg-gray-500'\n },\n bw: {\n text: 'text-black dark:text-white',\n border: 'border-black dark:border-white',\n bg: 'bg-black/10 dark:bg-white/10',\n ring: 'ring-black/20 dark:ring-white/30',\n ink: 'bg-black dark:bg-white'\n }\n};\n\nconst panelVariantClasses: Record<TabsVariant, string> = {\n line: 'pt-4',\n card: 'mt-3 rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-gray-900',\n pill: 'mt-3 rounded-2xl border border-gray-200 bg-white/90 p-4 dark:border-gray-700 dark:bg-gray-900/90'\n};\n\nconst isExtraContentObject = (value: TabsExtraContent): value is { left?: React.ReactNode; right?: React.ReactNode } => {\n return (\n !!value &&\n typeof value === 'object' &&\n !React.isValidElement(value) &&\n ('left' in (value as Record<string, unknown>) || 'right' in (value as Record<string, unknown>))\n );\n};\n\nconst resolveFirstEnabledTab = (tabs: TabsDescriptor[]): TabsValue | undefined =>\n tabs.find(tab => !tab.disabled)?.value;\n\nconst clampActive = (value: TabsValue | undefined, tabs: TabsDescriptor[]): TabsValue | undefined => {\n if (value === undefined) {\n return resolveFirstEnabledTab(tabs);\n }\n\n const match = tabs.find(tab => tab.value === value);\n if (!match || match.disabled) {\n return resolveFirstEnabledTab(tabs);\n }\n\n return value;\n};\n\nconst resolveIconNode = (icon?: PropIcon, size?: TabsSize) => {\n if (!icon) return null;\n const iconClass = resolveIconClassName(icon);\n return iconClass ? <i className={twMerge(iconClass, size ? sizeClasses[size].icon : undefined)} aria-hidden /> : null;\n};\n\ntype TabsDescriptor = {\n element: React.ReactElement<TabProps>;\n index: number;\n value: TabsValue;\n label: React.ReactNode;\n disabled?: boolean;\n icon?: PropIcon;\n badge?: React.ReactNode;\n tabClassName?: string;\n panelClassName?: string;\n tabId: string;\n panelId: string;\n forceRender?: boolean;\n};\n\nconst collectTabs = (children: React.ReactNode, tabsId: string): TabsDescriptor[] => {\n const tabs: TabsDescriptor[] = [];\n let index = 0;\n\n const walk = (node: React.ReactNode) => {\n if (Array.isArray(node)) {\n node.forEach(walk);\n return;\n }\n\n if (!isTabsTabElement(node)) {\n if (React.isValidElement(node)) {\n const props = node.props as { children?: React.ReactNode } | null;\n if (props && Object.prototype.hasOwnProperty.call(props, 'children')) {\n walk(props.children);\n }\n }\n return;\n }\n\n const tabIndex = index++;\n const value = node.props.value ?? tabIndex;\n const tabId = `${tabsId}-tab-${tabIndex}`;\n const panelId = `${tabsId}-panel-${tabIndex}`;\n\n tabs.push({\n element: node,\n index: tabIndex,\n value,\n label: node.props.label,\n disabled: node.props.disabled,\n icon: node.props.icon,\n badge: node.props.badge,\n tabClassName: node.props.tabClassName,\n panelClassName: node.props.panelClassName,\n tabId,\n panelId,\n forceRender: node.props.forceRender\n });\n };\n\n walk(children);\n return tabs;\n};\n\nconst injectTabs = (\n children: React.ReactNode,\n context: TabsContextValue,\n tabs: TabsDescriptor[]\n): React.ReactNode => {\n let index = 0;\n\n const walk = (node: React.ReactNode): React.ReactNode => {\n if (Array.isArray(node)) {\n let changed = false;\n const next = node.map(child => {\n const mapped = walk(child);\n if (mapped !== child) {\n changed = true;\n }\n return mapped;\n });\n return changed ? next : node;\n }\n\n if (!React.isValidElement(node)) {\n return node;\n }\n\n if (isTabsTabElement(node)) {\n const tab = tabs[index++];\n if (!tab) {\n return node;\n }\n const injectedProps: Partial<TabProps & TabsInternalProps> = {\n value: tab.value,\n __tabsContext: context,\n __tabsValue: tab.value,\n __tabsIndex: tab.index,\n __tabsTabId: tab.tabId,\n __tabsPanelId: tab.panelId\n };\n return React.cloneElement(node, injectedProps);\n }\n\n if (node.props) {\n const props = node.props as { children?: React.ReactNode } | null;\n if (props && Object.prototype.hasOwnProperty.call(props, 'children')) {\n const mappedChildren = walk(props.children);\n if (mappedChildren !== props.children) {\n return React.cloneElement(node, undefined, mappedChildren);\n }\n }\n }\n\n return node;\n };\n\n return walk(children);\n};\n\nconst handleTabListKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const { key } = event;\n if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(key)) {\n return;\n }\n\n const tabs = Array.from(event.currentTarget.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'))\n .filter(tab => !tab.disabled);\n\n if (!tabs.length) {\n return;\n }\n\n const currentIndex = tabs.findIndex(tab => tab === document.activeElement);\n let nextIndex = currentIndex;\n\n if (key === 'ArrowRight') {\n nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % tabs.length;\n }\n\n if (key === 'ArrowLeft') {\n nextIndex = currentIndex === -1 ? tabs.length - 1 : (currentIndex - 1 + tabs.length) % tabs.length;\n }\n\n if (key === 'Home') {\n nextIndex = 0;\n }\n\n if (key === 'End') {\n nextIndex = tabs.length - 1;\n }\n\n tabs[nextIndex]?.focus();\n event.preventDefault();\n};\n\n/**\n * Tabbed container inspired by Ant Design with line, card, and pill styles.\n */\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>((props, ref) => {\n const {\n activeKey,\n defaultActiveKey,\n onChange,\n variant = 'line',\n size = 'medium',\n color = 'primary',\n align = 'start',\n tabBarGutter = 8,\n tabBarExtraContent,\n tabBarClassName,\n destroyInactiveTabPane = false,\n keepMounted = false,\n className,\n children,\n id,\n ...rest\n } = props;\n\n const tabsId = typeof id === 'string' && id.trim().length ? id : 'tabs';\n const tabs = collectTabs(children, tabsId);\n const resolvedActive = clampActive(activeKey ?? defaultActiveKey, tabs);\n\n const handleActivate = (value: TabsValue) => {\n onChange?.(value);\n };\n\n const extraContent = tabBarExtraContent;\n const extraLeft = isExtraContentObject(extraContent) ? extraContent.left : null;\n const extraRight = isExtraContentObject(extraContent) ? extraContent.right : extraContent;\n\n const palette = paletteClasses[color] ?? paletteClasses.primary;\n\n const context: TabsContextValue = {\n activeKey: resolvedActive,\n onChange: handleActivate,\n variant,\n size,\n color,\n destroyInactiveTabPane,\n keepMounted\n };\n\n const enhancedChildren = injectTabs(children, context, tabs);\n\n return (\n <div\n {...rest}\n id={id}\n ref={ref}\n className={twMerge('tabs flex w-full flex-col text-gray-900 dark:text-gray-100', className)}\n >\n <div className='flex items-center gap-3'>\n {extraLeft ? <div className='flex items-center'>{extraLeft}</div> : null}\n <div\n role='tablist'\n aria-orientation='horizontal'\n onKeyDown={handleTabListKeyDown}\n className={twMerge(\n 'flex min-w-0 flex-1 items-center gap-2 overflow-x-auto',\n align === 'center' ? 'justify-center' : align === 'end' ? 'justify-end' : undefined,\n variantListClasses[variant],\n tabBarClassName\n )}\n style={{ gap: tabBarGutter }}\n >\n {tabs.map(tab => {\n const isActive = tab.value === resolvedActive;\n const sizeClass = sizeClasses[size] ?? sizeClasses.medium;\n const iconNode = resolveIconNode(tab.icon, size);\n const badgeNode = tab.badge ? (\n <span className='rounded-full bg-gray-200 px-1.5 py-0.5 text-[0.6rem] font-semibold text-gray-700 dark:bg-gray-700 dark:text-gray-200'>\n {tab.badge}\n </span>\n ) : null;\n const activeText = isActive ? palette.text : 'text-gray-600 dark:text-gray-300';\n const activeBorder = isActive ? palette.border : 'border-transparent';\n const activeBg = isActive ? palette.bg : undefined;\n const activeRing = isActive ? palette.ring : undefined;\n\n const variantClasses = {\n line: twMerge(activeText, activeBorder),\n card: twMerge(activeText, activeBg, activeBorder, isActive ? 'shadow-sm' : undefined),\n pill: twMerge(activeText, activeBg)\n };\n\n return (\n <button\n key={tab.value}\n type='button'\n role='tab'\n id={tab.tabId}\n aria-selected={isActive}\n aria-controls={tab.panelId}\n aria-disabled={tab.disabled || undefined}\n disabled={tab.disabled}\n tabIndex={isActive ? 0 : -1}\n onClick={() => {\n if (!tab.disabled) {\n handleActivate(tab.value);\n }\n }}\n className={twMerge(\n 'inline-flex items-center gap-2 whitespace-nowrap font-medium transition-all duration-150 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-gray-900',\n sizeClass.tab,\n variantTabBaseClasses[variant],\n variantClasses[variant],\n activeRing ? `ring-1 ${activeRing}` : undefined,\n tab.disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500 opacity-60'\n : 'hover:text-gray-900 dark:hover:text-gray-100',\n tab.tabClassName\n )}\n data-state={isActive ? 'active' : 'inactive'}\n >\n {iconNode}\n <span className='truncate'>{tab.label}</span>\n {badgeNode}\n </button>\n );\n })}\n </div>\n {extraRight ? <div className='flex items-center'>{extraRight}</div> : null}\n </div>\n <div className={twMerge('min-h-0', panelVariantClasses[variant])}>{enhancedChildren}</div>\n </div>\n );\n});\n\nTabs.displayName = 'Tabs';\n\nconst Tab = React.forwardRef<HTMLDivElement, TabProps & TabsInternalProps>((props, ref) => {\n const {\n label: _label,\n value,\n disabled,\n forceRender,\n tabClassName: _tabClassName,\n panelClassName,\n className,\n children,\n __tabsContext,\n __tabsValue,\n __tabsIndex,\n __tabsTabId,\n __tabsPanelId,\n ...rest\n } = props;\n\n const context = __tabsContext;\n const resolvedValue = value ?? __tabsValue;\n const isActive = context ? context.activeKey === resolvedValue : true;\n\n const shouldRender =\n !context ||\n isActive ||\n context.keepMounted ||\n !context.destroyInactiveTabPane ||\n forceRender;\n\n if (!shouldRender) {\n return null;\n }\n\n return (\n <div\n {...rest}\n ref={ref}\n role='tabpanel'\n id={__tabsPanelId}\n aria-labelledby={__tabsTabId}\n aria-hidden={context ? !isActive : undefined}\n hidden={context ? !isActive : undefined}\n className={twMerge('tabs-panel text-gray-900 dark:text-gray-100', className, panelClassName)}\n data-state={isActive ? 'active' : 'inactive'}\n data-disabled={disabled || undefined}\n >\n {children}\n </div>\n );\n});\n\nTab.displayName = 'Tab';\nmarkTabsTab(Tab);\n\nexport type { TabProps, TabsProps, TabsValue, TabsVariant, TabsSize } from './types.tabs';\nexport { Tab };\nexport default Tabs;\n","import { useState } from 'react';\nimport { NotificationArgs } from './types.notification';\n\nconst useNotification = (defaultMessage?: NotificationArgs) => {\n const [messages, setMessages] = useState<NotificationArgs[]>([]);\n\n const clearNotifications = (key?: string) => {\n setMessages(prev => (key ? prev.filter(notification => notification.key !== key) : []));\n };\n\n const showNotification = (notification: NotificationArgs) => {\n const key = `${Date.now()}-${Math.random()}`;\n setMessages(prev => [\n ...prev,\n {\n duration: 4000,\n onClose: () => clearNotifications(key),\n ...defaultMessage,\n ...notification,\n key\n }\n ]);\n };\n\n return { messages, showNotification };\n};\n\nexport default useNotification;\n"]}
1
+ {"version":3,"sources":["../src/Containment/Drawer/index.tsx","../src/Containment/Overlay/index.tsx","../src/Containment/Tabs/context.ts","../src/Containment/Tabs/index.tsx","../src/Feedback/Notification/useNotification.ts"],"names":["React","overlayBaseClasses","React2","jsx","twMerge","createPortal","jsxs"],"mappings":"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","file":"index.js","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { twMerge } from 'tailwind-merge';\n\nconst overlayBaseClasses =\n 'fixed inset-0 z-[55] bg-gray-900/55 backdrop-blur-[2px] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100';\nconst temporaryContainerBaseClasses =\n 'fixed inset-y-0 z-[60] flex max-w-full transition-transform duration-200';\nconst staticContainerBaseClasses = 'relative flex h-full max-w-full';\nconst drawerBaseClasses =\n 'flex h-full w-full flex-col bg-white text-gray-900 shadow-xl shadow-black/10 ring-1 ring-black/5 focus-visible:outline-none dark:bg-gray-900 dark:text-gray-100 dark:ring-white/10';\n\nconst resolveSizeValue = (value?: string | number) => {\n if (value === undefined) {\n return undefined;\n }\n return typeof value === 'number' ? `${value}px` : value;\n};\n\nexport interface DrawerProps extends React.HTMLAttributes<HTMLDivElement> {\n location?: 'left' | 'right';\n floating?: boolean;\n temporary?: boolean;\n open?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n width?: string | number;\n onClose?: () => void;\n containerClassName?: string;\n overlayClassName?: string;\n overlayProps?: React.HTMLAttributes<HTMLDivElement>;\n portal?: boolean;\n portalContainer?: Element | null;\n}\n\n/**\n * Navigation drawer container inspired by Vuetify, with temporary and floating modes.\n */\nconst Drawer = React.forwardRef<HTMLDivElement, DrawerProps>((props, ref) => {\n const {\n location = 'left',\n floating = false,\n temporary = false,\n open,\n keepMounted = false,\n scrim = true,\n width = '18rem',\n onClose,\n containerClassName,\n overlayClassName,\n overlayProps,\n portal = true,\n portalContainer,\n className,\n style,\n role,\n ...rest\n } = props;\n\n const isOpen = open ?? !temporary;\n const state = isOpen ? 'open' : 'closed';\n const shouldRender = keepMounted || isOpen || temporary;\n const resolvedPortalContainer =\n portalContainer ?? (typeof document !== 'undefined' ? document.body : null);\n\n const resolvedStyle: React.CSSProperties = { ...style };\n if (resolvedStyle.width === undefined) {\n resolvedStyle.width = resolveSizeValue(width);\n }\n\n const locationClass = location === 'right' ? 'right-0' : 'left-0';\n const translateClass = isOpen\n ? 'translate-x-0'\n : location === 'right'\n ? 'translate-x-full'\n : '-translate-x-full';\n\n const floatingClasses = floating\n ? 'rounded-2xl shadow-2xl shadow-black/20 ring-1 ring-black/10 dark:ring-white/10'\n : undefined;\n const borderClasses =\n !floating && !temporary\n ? location === 'right'\n ? 'border-l border-gray-200 dark:border-gray-800'\n : 'border-r border-gray-200 dark:border-gray-800'\n : undefined;\n\n const {\n className: overlayExtraClassName,\n onClick: overlayOnClick,\n ...restOverlayProps\n } = overlayProps ?? {};\n\n const overlayNode = temporary && scrim && shouldRender ? (\n <div\n {...restOverlayProps}\n className={twMerge(\n overlayBaseClasses,\n isOpen ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0',\n overlayClassName,\n overlayExtraClassName\n )}\n onClick={event => {\n overlayOnClick?.(event);\n if (!event.defaultPrevented) {\n onClose?.();\n }\n }}\n data-state={state}\n aria-hidden\n />\n ) : null;\n\n const drawerNode = shouldRender ? (\n <div\n className={twMerge(\n temporary ? temporaryContainerBaseClasses : staticContainerBaseClasses,\n temporary ? locationClass : undefined,\n temporary ? translateClass : undefined,\n temporary && !isOpen ? 'pointer-events-none' : undefined,\n temporary && floating ? 'p-4' : undefined,\n !temporary && location === 'right' ? 'ml-auto' : undefined,\n containerClassName\n )}\n data-state={state}\n aria-hidden={temporary ? !isOpen : undefined}\n >\n <div\n {...rest}\n ref={ref}\n role={role ?? 'navigation'}\n className={twMerge(drawerBaseClasses, floatingClasses, borderClasses, className)}\n style={resolvedStyle}\n data-state={state}\n >\n {props.children}\n </div>\n </div>\n ) : null;\n\n const outputNode =\n temporary && portal && resolvedPortalContainer && drawerNode\n ? createPortal(\n <>\n {overlayNode}\n {drawerNode}\n </>,\n resolvedPortalContainer\n )\n : (\n <>\n {overlayNode}\n {drawerNode}\n </>\n );\n\n return outputNode;\n});\n\nDrawer.displayName = 'Drawer';\n\nexport default Drawer;\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { twMerge } from 'tailwind-merge';\n\nconst overlayBaseClasses =\n 'inset-0 z-[55] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100';\nconst scrimClasses = 'bg-gray-900/55 dark:bg-black/70 backdrop-blur-[2px]';\n\nexport interface OverlayProps extends React.HTMLAttributes<HTMLDivElement> {\n open?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n /** Render as absolute (inside parent) instead of fixed (viewport). */\n container?: boolean;\n onClose?: () => void;\n portal?: boolean;\n portalContainer?: Element | null;\n}\n\n/**\n * Overlay layer with optional scrim that renders arbitrary children.\n */\nconst Overlay = React.forwardRef<HTMLDivElement, OverlayProps>((props, ref) => {\n const {\n open,\n keepMounted = false,\n scrim = true,\n container = false,\n onClose,\n portal = false,\n portalContainer,\n className,\n role,\n children,\n ...rest\n } = props;\n\n const isOpen = open ?? true;\n const shouldRender = keepMounted || isOpen;\n const state = isOpen ? 'open' : 'closed';\n\n if (!shouldRender) {\n return null;\n }\n\n const resolvedPortalContainer =\n portalContainer ?? (typeof document !== 'undefined' ? document.body : null);\n\n const overlayNode = (\n <div\n {...rest}\n ref={ref}\n role={role ?? 'presentation'}\n className={twMerge(\n overlayBaseClasses,\n container ? 'absolute' : 'fixed',\n scrim ? scrimClasses : 'bg-transparent backdrop-blur-0',\n isOpen ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0',\n className\n )}\n data-state={state}\n onClick={event => {\n if (event.target !== event.currentTarget) {\n return;\n }\n if (!event.defaultPrevented) {\n onClose?.();\n }\n }}\n >\n {children}\n </div>\n );\n\n const shouldPortal = portal && !container;\n\n return shouldPortal && resolvedPortalContainer\n ? createPortal(overlayNode, resolvedPortalContainer)\n : overlayNode;\n});\n\nOverlay.displayName = 'Overlay';\n\nexport default Overlay;\n","import { isValidElement } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TabProps } from './types.tabs';\n\nconst TABS_TAB_MARKER = '__isTabsTab';\n\ntype MarkerTarget = Record<string | number | symbol, unknown> & {\n type?: unknown;\n};\n\nconst hasMarker = (type: unknown): boolean => {\n if (!type || (typeof type !== 'function' && typeof type !== 'object')) {\n return false;\n }\n\n if ((type as MarkerTarget)[TABS_TAB_MARKER]) {\n return true;\n }\n\n const innerType = (type as MarkerTarget).type;\n if (innerType && innerType !== type) {\n return hasMarker(innerType);\n }\n\n return false;\n};\n\nexport const isTabsTabElement = (element: ReactNode): element is ReactElement<TabProps> => {\n if (!isValidElement(element)) {\n return false;\n }\n\n return hasMarker(element.type);\n};\n\nexport const markTabsTab = (component: unknown) => {\n if (typeof component !== 'function' && (typeof component !== 'object' || component === null)) {\n return;\n }\n\n (component as MarkerTarget)[TABS_TAB_MARKER] = true;\n};\n","import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { resolveIconClassName } from '../Chip/states.chip';\nimport { isTabsTabElement, markTabsTab } from './context';\nimport type {\n TabProps,\n TabsContextValue,\n TabsExtraContent,\n TabsInternalProps,\n TabsProps,\n TabsSize,\n TabsValue,\n TabsVariant\n} from './types.tabs';\n\nconst sizeClasses: Record<TabsSize, { tab: string; icon: string }> = {\n 'x-small': { tab: 'h-7 px-2 text-xs', icon: 'text-sm' },\n small: { tab: 'h-8 px-2.5 text-sm', icon: 'text-base' },\n medium: { tab: 'h-9 px-3 text-sm', icon: 'text-base' },\n large: { tab: 'h-10 px-3.5 text-base', icon: 'text-lg' },\n 'x-large': { tab: 'h-11 px-4 text-base', icon: 'text-lg' }\n};\n\nconst variantListClasses: Record<TabsVariant, string> = {\n line: 'border-b border-gray-200 dark:border-gray-700',\n card: 'rounded-xl bg-gray-100 p-1 dark:bg-gray-800/70',\n pill: 'rounded-full bg-gray-100/80 p-1 dark:bg-gray-800/70'\n};\n\nconst variantTabBaseClasses: Record<TabsVariant, string> = {\n line: 'border-b-2 border-transparent -mb-px',\n card: 'rounded-lg border border-transparent bg-white/70 dark:bg-gray-900/70',\n pill: 'rounded-full'\n};\n\nconst paletteClasses: Record<Palette, { text: string; border: string; bg: string; ring: string; ink: string }> = {\n primary: {\n text: 'text-primary',\n border: 'border-primary',\n bg: 'bg-primary/10 dark:bg-primary/20',\n ring: 'ring-primary/30 dark:ring-primary/40',\n ink: 'bg-primary'\n },\n neutral: {\n text: 'text-gray-900 dark:text-gray-100',\n border: 'border-gray-900 dark:border-gray-100',\n bg: 'bg-gray-100 dark:bg-gray-800',\n ring: 'ring-gray-900/20 dark:ring-gray-200/25',\n ink: 'bg-gray-900 dark:bg-gray-100'\n },\n info: {\n text: 'text-sky-600 dark:text-sky-300',\n border: 'border-sky-500 dark:border-sky-400',\n bg: 'bg-sky-50 dark:bg-sky-900/30',\n ring: 'ring-sky-500/20 dark:ring-sky-400/30',\n ink: 'bg-sky-500'\n },\n success: {\n text: 'text-emerald-600 dark:text-emerald-300',\n border: 'border-emerald-500 dark:border-emerald-400',\n bg: 'bg-emerald-50 dark:bg-emerald-900/30',\n ring: 'ring-emerald-500/20 dark:ring-emerald-400/30',\n ink: 'bg-emerald-500'\n },\n warning: {\n text: 'text-amber-600 dark:text-amber-300',\n border: 'border-amber-500 dark:border-amber-400',\n bg: 'bg-amber-50 dark:bg-amber-900/30',\n ring: 'ring-amber-500/20 dark:ring-amber-400/30',\n ink: 'bg-amber-500'\n },\n danger: {\n text: 'text-red-600 dark:text-red-300',\n border: 'border-red-500 dark:border-red-400',\n bg: 'bg-red-50 dark:bg-red-900/30',\n ring: 'ring-red-500/20 dark:ring-red-400/30',\n ink: 'bg-red-500'\n },\n surface: {\n text: 'text-gray-900 dark:text-gray-100',\n border: 'border-gray-300 dark:border-gray-600',\n bg: 'bg-white dark:bg-gray-900',\n ring: 'ring-gray-300/30 dark:ring-gray-600/40',\n ink: 'bg-gray-400 dark:bg-gray-500'\n },\n bw: {\n text: 'text-black dark:text-white',\n border: 'border-black dark:border-white',\n bg: 'bg-black/10 dark:bg-white/10',\n ring: 'ring-black/20 dark:ring-white/30',\n ink: 'bg-black dark:bg-white'\n }\n};\n\nconst panelVariantClasses: Record<TabsVariant, string> = {\n line: 'pt-4',\n card: 'mt-3 rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-gray-900',\n pill: 'mt-3 rounded-2xl border border-gray-200 bg-white/90 p-4 dark:border-gray-700 dark:bg-gray-900/90'\n};\n\nconst isExtraContentObject = (value: TabsExtraContent): value is { left?: React.ReactNode; right?: React.ReactNode } => {\n return (\n !!value &&\n typeof value === 'object' &&\n !React.isValidElement(value) &&\n ('left' in (value as Record<string, unknown>) || 'right' in (value as Record<string, unknown>))\n );\n};\n\nconst resolveFirstEnabledTab = (tabs: TabsDescriptor[]): TabsValue | undefined =>\n tabs.find(tab => !tab.disabled)?.value;\n\nconst clampActive = (value: TabsValue | undefined, tabs: TabsDescriptor[]): TabsValue | undefined => {\n if (value === undefined) {\n return resolveFirstEnabledTab(tabs);\n }\n\n const match = tabs.find(tab => tab.value === value);\n if (!match || match.disabled) {\n return resolveFirstEnabledTab(tabs);\n }\n\n return value;\n};\n\nconst resolveIconNode = (icon?: PropIcon, size?: TabsSize) => {\n if (!icon) return null;\n const iconClass = resolveIconClassName(icon);\n return iconClass ? <i className={twMerge(iconClass, size ? sizeClasses[size].icon : undefined)} aria-hidden /> : null;\n};\n\ntype TabsDescriptor = {\n element: React.ReactElement<TabProps>;\n index: number;\n value: TabsValue;\n label: React.ReactNode;\n disabled?: boolean;\n icon?: PropIcon;\n badge?: React.ReactNode;\n tabClassName?: string;\n panelClassName?: string;\n tabId: string;\n panelId: string;\n forceRender?: boolean;\n};\n\nconst collectTabs = (children: React.ReactNode, tabsId: string): TabsDescriptor[] => {\n const tabs: TabsDescriptor[] = [];\n let index = 0;\n\n const walk = (node: React.ReactNode) => {\n if (Array.isArray(node)) {\n node.forEach(walk);\n return;\n }\n\n if (!isTabsTabElement(node)) {\n if (React.isValidElement(node)) {\n const props = node.props as { children?: React.ReactNode } | null;\n if (props && Object.prototype.hasOwnProperty.call(props, 'children')) {\n walk(props.children);\n }\n }\n return;\n }\n\n const tabIndex = index++;\n const value = node.props.value ?? tabIndex;\n const tabId = `${tabsId}-tab-${tabIndex}`;\n const panelId = `${tabsId}-panel-${tabIndex}`;\n\n tabs.push({\n element: node,\n index: tabIndex,\n value,\n label: node.props.label,\n disabled: node.props.disabled,\n icon: node.props.icon,\n badge: node.props.badge,\n tabClassName: node.props.tabClassName,\n panelClassName: node.props.panelClassName,\n tabId,\n panelId,\n forceRender: node.props.forceRender\n });\n };\n\n walk(children);\n return tabs;\n};\n\nconst injectTabs = (\n children: React.ReactNode,\n context: TabsContextValue,\n tabs: TabsDescriptor[]\n): React.ReactNode => {\n let index = 0;\n\n const walk = (node: React.ReactNode): React.ReactNode => {\n if (Array.isArray(node)) {\n let changed = false;\n const next = node.map(child => {\n const mapped = walk(child);\n if (mapped !== child) {\n changed = true;\n }\n return mapped;\n });\n return changed ? next : node;\n }\n\n if (!React.isValidElement(node)) {\n return node;\n }\n\n if (isTabsTabElement(node)) {\n const tab = tabs[index++];\n if (!tab) {\n return node;\n }\n const injectedProps: Partial<TabProps & TabsInternalProps> = {\n value: tab.value,\n __tabsContext: context,\n __tabsValue: tab.value,\n __tabsIndex: tab.index,\n __tabsTabId: tab.tabId,\n __tabsPanelId: tab.panelId\n };\n return React.cloneElement(node, injectedProps);\n }\n\n if (node.props) {\n const props = node.props as { children?: React.ReactNode } | null;\n if (props && Object.prototype.hasOwnProperty.call(props, 'children')) {\n const mappedChildren = walk(props.children);\n if (mappedChildren !== props.children) {\n return React.cloneElement(node, undefined, mappedChildren);\n }\n }\n }\n\n return node;\n };\n\n return walk(children);\n};\n\nconst handleTabListKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const { key } = event;\n if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(key)) {\n return;\n }\n\n const tabs = Array.from(event.currentTarget.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'))\n .filter(tab => !tab.disabled);\n\n if (!tabs.length) {\n return;\n }\n\n const currentIndex = tabs.findIndex(tab => tab === document.activeElement);\n let nextIndex = currentIndex;\n\n if (key === 'ArrowRight') {\n nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % tabs.length;\n }\n\n if (key === 'ArrowLeft') {\n nextIndex = currentIndex === -1 ? tabs.length - 1 : (currentIndex - 1 + tabs.length) % tabs.length;\n }\n\n if (key === 'Home') {\n nextIndex = 0;\n }\n\n if (key === 'End') {\n nextIndex = tabs.length - 1;\n }\n\n tabs[nextIndex]?.focus();\n event.preventDefault();\n};\n\n/**\n * Tabbed container inspired by Ant Design with line, card, and pill styles.\n */\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>((props, ref) => {\n const {\n activeKey,\n defaultActiveKey,\n onChange,\n variant = 'line',\n size = 'medium',\n color = 'primary',\n align = 'start',\n tabBarGutter = 8,\n tabBarExtraContent,\n tabBarClassName,\n destroyInactiveTabPane = false,\n keepMounted = false,\n className,\n children,\n id,\n ...rest\n } = props;\n\n const tabsId = typeof id === 'string' && id.trim().length ? id : 'tabs';\n const tabs = collectTabs(children, tabsId);\n const resolvedActive = clampActive(activeKey ?? defaultActiveKey, tabs);\n\n const handleActivate = (value: TabsValue) => {\n onChange?.(value);\n };\n\n const extraContent = tabBarExtraContent;\n const extraLeft = isExtraContentObject(extraContent) ? extraContent.left : null;\n const extraRight = isExtraContentObject(extraContent) ? extraContent.right : extraContent;\n\n const palette = paletteClasses[color] ?? paletteClasses.primary;\n\n const context: TabsContextValue = {\n activeKey: resolvedActive,\n onChange: handleActivate,\n variant,\n size,\n color,\n destroyInactiveTabPane,\n keepMounted\n };\n\n const enhancedChildren = injectTabs(children, context, tabs);\n\n return (\n <div\n {...rest}\n id={id}\n ref={ref}\n className={twMerge('tabs flex w-full flex-col text-gray-900 dark:text-gray-100', className)}\n >\n <div className='flex items-center gap-3'>\n {extraLeft ? <div className='flex items-center'>{extraLeft}</div> : null}\n <div\n role='tablist'\n aria-orientation='horizontal'\n onKeyDown={handleTabListKeyDown}\n className={twMerge(\n 'flex min-w-0 flex-1 items-center gap-2 overflow-x-auto',\n align === 'center' ? 'justify-center' : align === 'end' ? 'justify-end' : undefined,\n variantListClasses[variant],\n tabBarClassName\n )}\n style={{ gap: tabBarGutter }}\n >\n {tabs.map(tab => {\n const isActive = tab.value === resolvedActive;\n const sizeClass = sizeClasses[size] ?? sizeClasses.medium;\n const iconNode = resolveIconNode(tab.icon, size);\n const badgeNode = tab.badge ? (\n <span className='rounded-full bg-gray-200 px-1.5 py-0.5 text-[0.6rem] font-semibold text-gray-700 dark:bg-gray-700 dark:text-gray-200'>\n {tab.badge}\n </span>\n ) : null;\n const activeText = isActive ? palette.text : 'text-gray-600 dark:text-gray-300';\n const activeBorder = isActive ? palette.border : 'border-transparent';\n const activeBg = isActive ? palette.bg : undefined;\n const activeRing = isActive ? palette.ring : undefined;\n\n const variantClasses = {\n line: twMerge(activeText, activeBorder),\n card: twMerge(activeText, activeBg, activeBorder, isActive ? 'shadow-sm' : undefined),\n pill: twMerge(activeText, activeBg)\n };\n\n return (\n <button\n key={tab.value}\n type='button'\n role='tab'\n id={tab.tabId}\n aria-selected={isActive}\n aria-controls={tab.panelId}\n aria-disabled={tab.disabled || undefined}\n disabled={tab.disabled}\n tabIndex={isActive ? 0 : -1}\n onClick={() => {\n if (!tab.disabled) {\n handleActivate(tab.value);\n }\n }}\n className={twMerge(\n 'inline-flex items-center gap-2 whitespace-nowrap font-medium transition-all duration-150 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-gray-900',\n sizeClass.tab,\n variantTabBaseClasses[variant],\n variantClasses[variant],\n activeRing ? `ring-1 ${activeRing}` : undefined,\n tab.disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500 opacity-60'\n : 'hover:text-gray-900 dark:hover:text-gray-100',\n tab.tabClassName\n )}\n data-state={isActive ? 'active' : 'inactive'}\n >\n {iconNode}\n <span className='truncate'>{tab.label}</span>\n {badgeNode}\n </button>\n );\n })}\n </div>\n {extraRight ? <div className='flex items-center'>{extraRight}</div> : null}\n </div>\n <div className={twMerge('min-h-0', panelVariantClasses[variant])}>{enhancedChildren}</div>\n </div>\n );\n});\n\nTabs.displayName = 'Tabs';\n\nconst Tab = React.forwardRef<HTMLDivElement, TabProps & TabsInternalProps>((props, ref) => {\n const {\n label: _label,\n value,\n disabled,\n forceRender,\n tabClassName: _tabClassName,\n panelClassName,\n className,\n children,\n __tabsContext,\n __tabsValue,\n __tabsIndex,\n __tabsTabId,\n __tabsPanelId,\n ...rest\n } = props;\n\n const context = __tabsContext;\n const resolvedValue = value ?? __tabsValue;\n const isActive = context ? context.activeKey === resolvedValue : true;\n\n const shouldRender =\n !context ||\n isActive ||\n context.keepMounted ||\n !context.destroyInactiveTabPane ||\n forceRender;\n\n if (!shouldRender) {\n return null;\n }\n\n return (\n <div\n {...rest}\n ref={ref}\n role='tabpanel'\n id={__tabsPanelId}\n aria-labelledby={__tabsTabId}\n aria-hidden={context ? !isActive : undefined}\n hidden={context ? !isActive : undefined}\n className={twMerge('tabs-panel text-gray-900 dark:text-gray-100', className, panelClassName)}\n data-state={isActive ? 'active' : 'inactive'}\n data-disabled={disabled || undefined}\n >\n {children}\n </div>\n );\n});\n\nTab.displayName = 'Tab';\nmarkTabsTab(Tab);\n\nexport type { TabProps, TabsProps, TabsValue, TabsVariant, TabsSize } from './types.tabs';\nexport { Tab };\nexport default Tabs;\n","import { useState } from 'react';\nimport { NotificationArgs } from './types.notification';\n\nconst useNotification = (defaultMessage?: NotificationArgs) => {\n const [messages, setMessages] = useState<NotificationArgs[]>([]);\n\n const clearNotifications = (key?: string) => {\n setMessages(prev => (key ? prev.filter(notification => notification.key !== key) : []));\n };\n\n const showNotification = (notification: NotificationArgs) => {\n const key = `${Date.now()}-${Math.random()}`;\n setMessages(prev => [\n ...prev,\n {\n duration: 4000,\n onClose: () => clearNotifications(key),\n ...defaultMessage,\n ...notification,\n key\n }\n ]);\n };\n\n return { messages, showNotification };\n};\n\nexport default useNotification;\n"]}
@@ -318,7 +318,7 @@ var avatarRadiusMap = {
318
318
  sharp: "rounded-none"
319
319
  };
320
320
  var isDarkVariant = (variant) => variant === "filled";
321
- var SocialIcons = ({ socials, dark }) => {
321
+ var SocialIcons = ({ socials }) => {
322
322
  if (!socials) return null;
323
323
  if (Array.isArray(socials) && socials.length === 0) return null;
324
324
  const isSocialLinkArray = Array.isArray(socials) && socials.length > 0 && "href" in socials[0];
@@ -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 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900 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 dark:bg-white dark:text-black dark:hover:bg-white/90 dark:focus-visible:ring-white/40 dark:focus-visible:ring-offset-gray-900',\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 dark:border-white dark:text-white dark:bg-transparent dark:hover:bg-white dark:hover:text-black dark:focus-visible:ring-white/40 dark:focus-visible:ring-offset-gray-900',\n ghost:\n 'text-black bg-neutral-200 hover:bg-neutral-300 focus-visible:ring-black/20 border border-transparent dark:text-white dark:bg-neutral-800 dark:hover:bg-neutral-700',\n text:\n 'bg-transparent text-black hover:bg-neutral-200 focus-visible:ring-black/20 underline-offset-2 border border-transparent dark:text-white dark:hover:bg-neutral-800',\n filled:\n 'bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20 dark:bg-white/10 dark:text-white dark:border-white/30 dark:hover:bg-white/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 dark:text-white dark:hover:bg-neutral-800',\n sharp:\n 'bg-black text-white rounded-none hover:bg-black/90 focus-visible:ring-black/40 dark:bg-white dark:text-black dark:hover:bg-white/90 dark:focus-visible:ring-white/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 dark:bg-gray-900 dark:text-primary dark:border-primary/60 dark:hover:bg-primary dark:hover:text-white',\n ghost:\n 'text-primary bg-primary/10 hover:bg-primary/20 focus-visible:ring-primary/40 border border-transparent dark:bg-primary/20 dark:hover:bg-primary/30',\n text: 'bg-transparent text-primary hover:bg-primary/10 focus-visible:ring-primary/30 underline-offset-2 border border-transparent dark:hover:bg-primary/20',\n filled:\n 'bg-primary/15 text-primary border border-primary/30 hover:bg-primary/25 focus-visible:ring-primary/25 dark:bg-primary/20 dark:border-primary/40 dark:hover:bg-primary/30',\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 dark:hover:bg-primary/15',\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 dark:border-gray-600 dark:text-gray-200 dark:bg-gray-900 dark:hover:bg-gray-200 dark:hover:text-gray-900',\n ghost:\n 'text-gray-700 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-300 border border-transparent dark:text-gray-200 dark:bg-gray-800 dark:hover:bg-gray-700',\n text: 'bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent dark:text-gray-200 dark:hover:bg-gray-800',\n filled:\n 'bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300 focus-visible:ring-gray-300 dark:bg-gray-800 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-700',\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 dark:text-gray-100 dark:hover:bg-gray-800',\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 dark:bg-gray-900 dark:text-sky-400 dark:border-sky-500/70 dark:hover:bg-sky-500 dark:hover:text-white',\n ghost:\n 'text-sky-600 bg-sky-100 hover:bg-sky-200 focus-visible:ring-sky-300 border border-transparent dark:text-sky-300 dark:bg-sky-900/40 dark:hover:bg-sky-900/55',\n text: 'bg-transparent text-sky-600 hover:bg-sky-100 focus-visible:ring-sky-200 underline-offset-2 border border-transparent dark:text-sky-300 dark:hover:bg-sky-900/35',\n filled:\n 'bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200 focus-visible:ring-sky-200 dark:bg-sky-900/35 dark:text-sky-200 dark:border-sky-700/60 dark:hover:bg-sky-900/50',\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 dark:text-sky-300 dark:hover:bg-sky-900/30',\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 dark:bg-gray-900 dark:text-emerald-400 dark:border-emerald-500/70 dark:hover:bg-emerald-500 dark:hover:text-white',\n ghost:\n 'text-emerald-600 bg-emerald-100 hover:bg-emerald-200 focus-visible:ring-emerald-300 border border-transparent dark:text-emerald-300 dark:bg-emerald-900/35 dark:hover:bg-emerald-900/50',\n text: 'bg-transparent text-emerald-600 hover:bg-emerald-100 focus-visible:ring-emerald-200 underline-offset-2 border border-transparent dark:text-emerald-300 dark:hover:bg-emerald-900/30',\n filled:\n 'bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200 focus-visible:ring-emerald-200 dark:bg-emerald-900/35 dark:text-emerald-200 dark:border-emerald-700/60 dark:hover:bg-emerald-900/50',\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 dark:text-emerald-300 dark:hover:bg-emerald-900/30',\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 dark:bg-gray-900 dark:text-amber-300 dark:border-amber-500/70 dark:hover:bg-amber-500 dark:hover:text-white',\n ghost:\n 'text-amber-600 bg-amber-100 hover:bg-amber-200 focus-visible:ring-amber-300 border border-transparent dark:text-amber-300 dark:bg-amber-900/35 dark:hover:bg-amber-900/50',\n text: 'bg-transparent text-amber-600 hover:bg-amber-100 focus-visible:ring-amber-200 underline-offset-2 border border-transparent dark:text-amber-300 dark:hover:bg-amber-900/30',\n filled:\n 'bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200 focus-visible:ring-amber-200 dark:bg-amber-900/35 dark:text-amber-200 dark:border-amber-700/60 dark:hover:bg-amber-900/50',\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 dark:text-amber-300 dark:hover:bg-amber-900/30',\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 dark:bg-gray-900 dark:text-red-400 dark:border-red-500/70 dark:hover:bg-red-500 dark:hover:text-white',\n ghost:\n 'text-red-600 bg-red-100 hover:bg-red-200 focus-visible:ring-red-300 border border-transparent dark:text-red-300 dark:bg-red-900/35 dark:hover:bg-red-900/50',\n text: 'bg-transparent text-red-600 hover:bg-red-100 focus-visible:ring-red-200 underline-offset-2 border border-transparent dark:text-red-300 dark:hover:bg-red-900/30',\n filled:\n 'bg-red-100 text-red-700 border border-red-200 hover:bg-red-200 focus-visible:ring-red-200 dark:bg-red-900/35 dark:text-red-200 dark:border-red-700/60 dark:hover:bg-red-900/50',\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 dark:text-red-300 dark:hover:bg-red-900/30',\n },\n surface: {\n solid:\n 'bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200 dark:bg-gray-900 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-800',\n sharp:\n 'rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200 dark:bg-gray-900 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-800',\n outline:\n 'border border-gray-300 text-gray-900 bg-white hover:bg-gray-100 focus-visible:ring-gray-200 dark:border-gray-600 dark:text-gray-100 dark:bg-gray-900 dark:hover:bg-gray-800',\n ghost:\n 'text-gray-900 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-200 border border-transparent dark:text-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700',\n text: 'bg-transparent text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent dark:text-gray-100 dark:hover:bg-gray-800',\n filled:\n 'bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white focus-visible:ring-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-700',\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 dark:text-gray-100 dark:hover:bg-gray-800',\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"]}
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 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900 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 dark:bg-white dark:text-black dark:hover:bg-white/90 dark:focus-visible:ring-white/40 dark:focus-visible:ring-offset-gray-900',\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 dark:border-white dark:text-white dark:bg-transparent dark:hover:bg-white dark:hover:text-black dark:focus-visible:ring-white/40 dark:focus-visible:ring-offset-gray-900',\n ghost:\n 'text-black bg-neutral-200 hover:bg-neutral-300 focus-visible:ring-black/20 border border-transparent dark:text-white dark:bg-neutral-800 dark:hover:bg-neutral-700',\n text:\n 'bg-transparent text-black hover:bg-neutral-200 focus-visible:ring-black/20 underline-offset-2 border border-transparent dark:text-white dark:hover:bg-neutral-800',\n filled:\n 'bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20 dark:bg-white/10 dark:text-white dark:border-white/30 dark:hover:bg-white/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 dark:text-white dark:hover:bg-neutral-800',\n sharp:\n 'bg-black text-white rounded-none hover:bg-black/90 focus-visible:ring-black/40 dark:bg-white dark:text-black dark:hover:bg-white/90 dark:focus-visible:ring-white/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 dark:bg-gray-900 dark:text-primary dark:border-primary/60 dark:hover:bg-primary dark:hover:text-white',\n ghost:\n 'text-primary bg-primary/10 hover:bg-primary/20 focus-visible:ring-primary/40 border border-transparent dark:bg-primary/20 dark:hover:bg-primary/30',\n text: 'bg-transparent text-primary hover:bg-primary/10 focus-visible:ring-primary/30 underline-offset-2 border border-transparent dark:hover:bg-primary/20',\n filled:\n 'bg-primary/15 text-primary border border-primary/30 hover:bg-primary/25 focus-visible:ring-primary/25 dark:bg-primary/20 dark:border-primary/40 dark:hover:bg-primary/30',\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 dark:hover:bg-primary/15',\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 dark:border-gray-600 dark:text-gray-200 dark:bg-gray-900 dark:hover:bg-gray-200 dark:hover:text-gray-900',\n ghost:\n 'text-gray-700 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-300 border border-transparent dark:text-gray-200 dark:bg-gray-800 dark:hover:bg-gray-700',\n text: 'bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent dark:text-gray-200 dark:hover:bg-gray-800',\n filled:\n 'bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300 focus-visible:ring-gray-300 dark:bg-gray-800 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-700',\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 dark:text-gray-100 dark:hover:bg-gray-800',\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 dark:bg-gray-900 dark:text-sky-400 dark:border-sky-500/70 dark:hover:bg-sky-500 dark:hover:text-white',\n ghost:\n 'text-sky-600 bg-sky-100 hover:bg-sky-200 focus-visible:ring-sky-300 border border-transparent dark:text-sky-300 dark:bg-sky-900/40 dark:hover:bg-sky-900/55',\n text: 'bg-transparent text-sky-600 hover:bg-sky-100 focus-visible:ring-sky-200 underline-offset-2 border border-transparent dark:text-sky-300 dark:hover:bg-sky-900/35',\n filled:\n 'bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200 focus-visible:ring-sky-200 dark:bg-sky-900/35 dark:text-sky-200 dark:border-sky-700/60 dark:hover:bg-sky-900/50',\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 dark:text-sky-300 dark:hover:bg-sky-900/30',\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 dark:bg-gray-900 dark:text-emerald-400 dark:border-emerald-500/70 dark:hover:bg-emerald-500 dark:hover:text-white',\n ghost:\n 'text-emerald-600 bg-emerald-100 hover:bg-emerald-200 focus-visible:ring-emerald-300 border border-transparent dark:text-emerald-300 dark:bg-emerald-900/35 dark:hover:bg-emerald-900/50',\n text: 'bg-transparent text-emerald-600 hover:bg-emerald-100 focus-visible:ring-emerald-200 underline-offset-2 border border-transparent dark:text-emerald-300 dark:hover:bg-emerald-900/30',\n filled:\n 'bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200 focus-visible:ring-emerald-200 dark:bg-emerald-900/35 dark:text-emerald-200 dark:border-emerald-700/60 dark:hover:bg-emerald-900/50',\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 dark:text-emerald-300 dark:hover:bg-emerald-900/30',\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 dark:bg-gray-900 dark:text-amber-300 dark:border-amber-500/70 dark:hover:bg-amber-500 dark:hover:text-white',\n ghost:\n 'text-amber-600 bg-amber-100 hover:bg-amber-200 focus-visible:ring-amber-300 border border-transparent dark:text-amber-300 dark:bg-amber-900/35 dark:hover:bg-amber-900/50',\n text: 'bg-transparent text-amber-600 hover:bg-amber-100 focus-visible:ring-amber-200 underline-offset-2 border border-transparent dark:text-amber-300 dark:hover:bg-amber-900/30',\n filled:\n 'bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200 focus-visible:ring-amber-200 dark:bg-amber-900/35 dark:text-amber-200 dark:border-amber-700/60 dark:hover:bg-amber-900/50',\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 dark:text-amber-300 dark:hover:bg-amber-900/30',\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 dark:bg-gray-900 dark:text-red-400 dark:border-red-500/70 dark:hover:bg-red-500 dark:hover:text-white',\n ghost:\n 'text-red-600 bg-red-100 hover:bg-red-200 focus-visible:ring-red-300 border border-transparent dark:text-red-300 dark:bg-red-900/35 dark:hover:bg-red-900/50',\n text: 'bg-transparent text-red-600 hover:bg-red-100 focus-visible:ring-red-200 underline-offset-2 border border-transparent dark:text-red-300 dark:hover:bg-red-900/30',\n filled:\n 'bg-red-100 text-red-700 border border-red-200 hover:bg-red-200 focus-visible:ring-red-200 dark:bg-red-900/35 dark:text-red-200 dark:border-red-700/60 dark:hover:bg-red-900/50',\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 dark:text-red-300 dark:hover:bg-red-900/30',\n },\n surface: {\n solid:\n 'bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200 dark:bg-gray-900 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-800',\n sharp:\n 'rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200 dark:bg-gray-900 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-800',\n outline:\n 'border border-gray-300 text-gray-900 bg-white hover:bg-gray-100 focus-visible:ring-gray-200 dark:border-gray-600 dark:text-gray-100 dark:bg-gray-900 dark:hover:bg-gray-800',\n ghost:\n 'text-gray-900 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-200 border border-transparent dark:text-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700',\n text: 'bg-transparent text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent dark:text-gray-100 dark:hover:bg-gray-800',\n filled:\n 'bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white focus-visible:ring-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-700',\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 dark:text-gray-100 dark:hover:bg-gray-800',\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 }) => {\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"]}
@@ -1,4 +1,4 @@
1
- export { ProfileCard_default as default } from './chunk-LRWM4ZWZ.js';
1
+ export { ProfileCard_default as default } from './chunk-DEJ7ZDGL.js';
2
2
  import './chunk-HVGCLUW2.js';
3
3
  import './chunk-IEILIKS2.js';
4
4
  //# sourceMappingURL=profileCard.js.map
package/dist/progress.cjs CHANGED
@@ -121,10 +121,7 @@ var LineProgress = ({
121
121
  /* @__PURE__ */ jsxRuntime.jsx(
122
122
  "div",
123
123
  {
124
- className: tailwindMerge.twMerge(
125
- "h-full rounded-full transition-[width] duration-300 ease-out",
126
- status === "active" ? "animate-pulse" : void 0
127
- ),
124
+ className: tailwindMerge.twMerge("h-full rounded-full transition-[width] duration-300 ease-out", status === "active" ? "animate-pulse" : void 0),
128
125
  style: barStyle
129
126
  }
130
127
  ),
@@ -263,7 +260,7 @@ var Progress = (props) => {
263
260
  const percent = clampPercent(toNumber(rawPercent));
264
261
  const successPercent = clampPercent(toNumber(success?.percent));
265
262
  const status = providedStatus ?? (percent >= 100 ? "success" : "normal");
266
- const resolvedClassName = tailwindMerge.twMerge("min-w-[200px]", className);
263
+ const resolvedClassName = tailwindMerge.twMerge("min-w-50", className);
267
264
  if (type === "circle" || type === "dashboard") {
268
265
  return /* @__PURE__ */ jsxRuntime.jsx(
269
266
  CircleProgress,