@lindle/linoardo 1.0.47 → 1.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/alert.cjs +3 -3
- package/dist/alert.cjs.map +1 -1
- package/dist/alert.js +1 -1
- package/dist/badge.cjs +10 -10
- package/dist/badge.cjs.map +1 -1
- package/dist/badge.js +1 -1
- package/dist/button.cjs +45 -45
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +1 -1
- package/dist/chip.cjs +47 -47
- package/dist/chip.cjs.map +1 -1
- package/dist/chip.js +2 -2
- package/dist/{chunk-UWNDN4XL.js → chunk-7TQUULYB.js} +23 -23
- package/dist/chunk-7TQUULYB.js.map +1 -0
- package/dist/{chunk-NJU7XT54.js → chunk-DMI64Z53.js} +4 -4
- package/dist/chunk-DMI64Z53.js.map +1 -0
- package/dist/{chunk-5LWU5T2C.js → chunk-GKZFVQW6.js} +16 -16
- package/dist/chunk-GKZFVQW6.js.map +1 -0
- package/dist/{chunk-4VHGXXZE.js → chunk-H4742H2N.js} +4 -4
- package/dist/{chunk-4VHGXXZE.js.map → chunk-H4742H2N.js.map} +1 -1
- package/dist/{chunk-4CYM2UM3.js → chunk-HGECC2JH.js} +48 -48
- package/dist/chunk-HGECC2JH.js.map +1 -0
- package/dist/{chunk-RUOU46YI.js → chunk-HVGCLUW2.js} +47 -47
- package/dist/chunk-HVGCLUW2.js.map +1 -0
- package/dist/{chunk-GMDNSU26.js → chunk-KK33I72F.js} +5 -5
- package/dist/{chunk-GMDNSU26.js.map → chunk-KK33I72F.js.map} +1 -1
- package/dist/{chunk-57CCAWFX.js → chunk-KVXZEMAH.js} +4 -4
- package/dist/{chunk-57CCAWFX.js.map → chunk-KVXZEMAH.js.map} +1 -1
- package/dist/{chunk-7HOQSHPQ.js → chunk-LRWM4ZWZ.js} +3 -3
- package/dist/{chunk-7HOQSHPQ.js.map → chunk-LRWM4ZWZ.js.map} +1 -1
- package/dist/{chunk-XA74HBMH.js → chunk-LSIAP7ZZ.js} +8 -8
- package/dist/chunk-LSIAP7ZZ.js.map +1 -0
- package/dist/{chunk-HEXJCQRO.js → chunk-LWCRKQEV.js} +10 -10
- package/dist/chunk-LWCRKQEV.js.map +1 -0
- package/dist/{chunk-JFIFVLWE.js → chunk-LZYVTGJD.js} +3 -3
- package/dist/{chunk-JFIFVLWE.js.map → chunk-LZYVTGJD.js.map} +1 -1
- package/dist/{chunk-U2AL7XFY.js → chunk-O3VFEMJ7.js} +4 -4
- package/dist/chunk-O3VFEMJ7.js.map +1 -0
- package/dist/{chunk-HIRPMCQJ.js → chunk-OQYPWJDA.js} +12 -12
- package/dist/{chunk-HIRPMCQJ.js.map → chunk-OQYPWJDA.js.map} +1 -1
- package/dist/{chunk-AUVYU7M5.js → chunk-Q7VTD6NY.js} +20 -20
- package/dist/chunk-Q7VTD6NY.js.map +1 -0
- package/dist/{chunk-HAXGOTZO.js → chunk-UK6RSS4J.js} +3 -3
- package/dist/chunk-UK6RSS4J.js.map +1 -0
- package/dist/{chunk-KQOR3C7E.js → chunk-ZLBGPLM3.js} +5 -5
- package/dist/chunk-ZLBGPLM3.js.map +1 -0
- package/dist/dialog.cjs +2 -2
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +1 -1
- package/dist/expansion-panel/item.cjs +18 -18
- package/dist/expansion-panel/item.cjs.map +1 -1
- package/dist/expansion-panel/item.js +1 -1
- package/dist/expansion-panel.cjs +23 -23
- package/dist/expansion-panel.cjs.map +1 -1
- package/dist/expansion-panel.js +2 -2
- package/dist/hero.cjs +21 -21
- package/dist/hero.cjs.map +1 -1
- package/dist/hero.js +1 -1
- package/dist/icon.cjs +8 -8
- package/dist/icon.cjs.map +1 -1
- package/dist/icon.js +1 -1
- package/dist/index.cjs +227 -227
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +63 -63
- package/dist/index.js.map +1 -1
- package/dist/masonry.cjs +1 -1
- package/dist/masonry.cjs.map +1 -1
- package/dist/masonry.js +1 -1
- package/dist/menu.cjs +2 -2
- package/dist/menu.cjs.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/profileCard.cjs +45 -45
- package/dist/profileCard.cjs.map +1 -1
- package/dist/profileCard.js +2 -2
- package/dist/slider.cjs +3 -3
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +1 -1
- package/dist/styles.css +863 -14
- package/dist/switch.cjs +14 -14
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +1 -1
- package/dist/timeline.cjs.map +1 -1
- package/dist/timeline.js +2 -2
- package/dist/tooltip.cjs +2 -2
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js +1 -1
- package/package.json +1 -1
- package/readme.md +21 -1
- package/dist/chunk-4CYM2UM3.js.map +0 -1
- package/dist/chunk-5LWU5T2C.js.map +0 -1
- package/dist/chunk-AUVYU7M5.js.map +0 -1
- package/dist/chunk-HAXGOTZO.js.map +0 -1
- package/dist/chunk-HEXJCQRO.js.map +0 -1
- package/dist/chunk-KQOR3C7E.js.map +0 -1
- package/dist/chunk-NJU7XT54.js.map +0 -1
- package/dist/chunk-RUOU46YI.js.map +0 -1
- package/dist/chunk-U2AL7XFY.js.map +0 -1
- package/dist/chunk-UWNDN4XL.js.map +0 -1
- package/dist/chunk-XA74HBMH.js.map +0 -1
package/dist/switch.cjs
CHANGED
|
@@ -21,14 +21,14 @@ var thumbTranslate = {
|
|
|
21
21
|
large: "translate-x-6"
|
|
22
22
|
};
|
|
23
23
|
var paletteTrackClasses = {
|
|
24
|
-
primary: { active: "bg-primary", inactive: "bg-gray-300" },
|
|
25
|
-
neutral: { active: "bg-gray-600", inactive: "bg-gray-300" },
|
|
26
|
-
info: { active: "bg-sky-500", inactive: "bg-gray-300" },
|
|
27
|
-
success: { active: "bg-emerald-500", inactive: "bg-gray-300" },
|
|
28
|
-
warning: { active: "bg-amber-500", inactive: "bg-gray-300" },
|
|
29
|
-
danger: { active: "bg-red-500", inactive: "bg-gray-300" },
|
|
30
|
-
surface: { active: "bg-gray-900", inactive: "bg-gray-300" },
|
|
31
|
-
bw: { active: "bg-black", inactive: "bg-gray-200" }
|
|
24
|
+
primary: { active: "bg-primary", inactive: "bg-gray-300 dark:bg-gray-700" },
|
|
25
|
+
neutral: { active: "bg-gray-600 dark:bg-gray-500", inactive: "bg-gray-300 dark:bg-gray-700" },
|
|
26
|
+
info: { active: "bg-sky-500", inactive: "bg-gray-300 dark:bg-gray-700" },
|
|
27
|
+
success: { active: "bg-emerald-500", inactive: "bg-gray-300 dark:bg-gray-700" },
|
|
28
|
+
warning: { active: "bg-amber-500", inactive: "bg-gray-300 dark:bg-gray-700" },
|
|
29
|
+
danger: { active: "bg-red-500", inactive: "bg-gray-300 dark:bg-gray-700" },
|
|
30
|
+
surface: { active: "bg-gray-900 dark:bg-gray-100", inactive: "bg-gray-300 dark:bg-gray-700" },
|
|
31
|
+
bw: { active: "bg-black dark:bg-white", inactive: "bg-gray-200 dark:bg-gray-700" }
|
|
32
32
|
};
|
|
33
33
|
var focusRingClasses = {
|
|
34
34
|
primary: "peer-focus-visible:ring-primary/40",
|
|
@@ -113,8 +113,8 @@ var Switch = react.forwardRef(
|
|
|
113
113
|
"block rounded-full border border-transparent transition-all duration-200",
|
|
114
114
|
sizeTrackClass,
|
|
115
115
|
currentChecked ? paletteTrack.active : paletteTrack.inactive,
|
|
116
|
-
disabled && "bg-gray-200",
|
|
117
|
-
"peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2",
|
|
116
|
+
disabled && "bg-gray-200 dark:bg-gray-700",
|
|
117
|
+
"peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-white dark:peer-focus-visible:ring-offset-gray-900",
|
|
118
118
|
focusClass,
|
|
119
119
|
className
|
|
120
120
|
),
|
|
@@ -123,11 +123,11 @@ var Switch = react.forwardRef(
|
|
|
123
123
|
"span",
|
|
124
124
|
{
|
|
125
125
|
className: tailwindMerge.twMerge(
|
|
126
|
-
"absolute left-0.5 top-0.5 rounded-full bg-white shadow-md border border-gray-200 transition-transform duration-200",
|
|
126
|
+
"absolute left-0.5 top-0.5 rounded-full bg-white dark:bg-gray-900 shadow-md border border-gray-200 dark:border-gray-600 transition-transform duration-200",
|
|
127
127
|
sizeThumbClass,
|
|
128
128
|
currentChecked && thumbShiftClass,
|
|
129
129
|
currentChecked && thumbActive,
|
|
130
|
-
disabled && "border-gray-300"
|
|
130
|
+
disabled && "border-gray-300 dark:border-gray-600"
|
|
131
131
|
)
|
|
132
132
|
}
|
|
133
133
|
)
|
|
@@ -135,8 +135,8 @@ var Switch = react.forwardRef(
|
|
|
135
135
|
)
|
|
136
136
|
] }),
|
|
137
137
|
(label || description) && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: tailwindMerge.twMerge("flex flex-col leading-tight", labelClassName), children: [
|
|
138
|
-
label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-900", children: label }),
|
|
139
|
-
description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-600", children: description })
|
|
138
|
+
label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: label }),
|
|
139
|
+
description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-600 dark:text-gray-400", children: description })
|
|
140
140
|
] })
|
|
141
141
|
]
|
|
142
142
|
}
|
package/dist/switch.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Form/Switch/index.tsx"],"names":["forwardRef","useState","useEffect","jsxs","twMerge","jsx"],"mappings":"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","file":"switch.cjs","sourcesContent":["import { forwardRef, type ChangeEvent, useEffect, useState } from 'react';\nimport type { Palette } from '@lindle/linoardo/global.types';\nimport { twMerge } from 'tailwind-merge';\nimport type { SwitchProps, SwitchSize } from './types.switch';\n\nconst trackSizes: Record<SwitchSize, string> = {\n small: 'w-10 h-6',\n medium: 'w-12 h-7',\n large: 'w-14 h-8'\n};\n\nconst thumbSizes: Record<SwitchSize, string> = {\n small: 'w-5 h-5',\n medium: 'w-6 h-6',\n large: 'w-7 h-7'\n};\n\nconst thumbTranslate: Record<SwitchSize, string> = {\n small: 'translate-x-4',\n medium: 'translate-x-5',\n large: 'translate-x-6'\n};\n\nconst paletteTrackClasses: Record<Palette, { active: string; inactive: string }> = {\n primary: { active: 'bg-primary', inactive: 'bg-gray-300' },\n neutral: { active: 'bg-gray-600', inactive: 'bg-gray-300' },\n info: { active: 'bg-sky-500', inactive: 'bg-gray-300' },\n success: { active: 'bg-emerald-500', inactive: 'bg-gray-300' },\n warning: { active: 'bg-amber-500', inactive: 'bg-gray-300' },\n danger: { active: 'bg-red-500', inactive: 'bg-gray-300' },\n surface: { active: 'bg-gray-900', inactive: 'bg-gray-300' },\n bw: { active: 'bg-black', inactive: 'bg-gray-200' }\n};\n\nconst focusRingClasses: Record<Palette, string> = {\n primary: 'peer-focus-visible:ring-primary/40',\n neutral: 'peer-focus-visible:ring-gray-400',\n info: 'peer-focus-visible:ring-sky-400',\n success: 'peer-focus-visible:ring-emerald-400',\n warning: 'peer-focus-visible:ring-amber-400',\n danger: 'peer-focus-visible:ring-red-400',\n surface: 'peer-focus-visible:ring-gray-800/70',\n bw: 'peer-focus-visible:ring-black/50'\n};\n\nconst thumbActiveClasses: Record<Palette, string> = {\n primary: 'border-primary shadow-[0_4px_12px_rgba(99,102,241,0.35)]',\n neutral: 'border-gray-600 shadow-[0_4px_12px_rgba(75,85,99,0.35)]',\n info: 'border-sky-500 shadow-[0_4px_12px_rgba(2,132,199,0.32)]',\n success: 'border-emerald-500 shadow-[0_4px_12px_rgba(16,185,129,0.32)]',\n warning: 'border-amber-500 shadow-[0_4px_12px_rgba(245,158,11,0.32)]',\n danger: 'border-red-500 shadow-[0_4px_12px_rgba(239,68,68,0.32)]',\n surface: 'border-gray-900 shadow-[0_4px_12px_rgba(15,23,42,0.32)]',\n bw: 'border-black shadow-[0_4px_12px_rgba(0,0,0,0.32)]'\n};\n\n/**\n * Toggle switch supporting controlled/uncontrolled usage, palette colors and size tokens.\n */\nconst Switch = forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n color = 'primary',\n size = 'medium',\n label,\n description,\n wrapperClassName,\n className,\n labelClassName,\n disabled,\n onChange,\n checked,\n defaultChecked,\n ...rest\n },\n ref\n ) => {\n const paletteTrack = paletteTrackClasses[color] ?? paletteTrackClasses.primary;\n const focusClass = focusRingClasses[color] ?? focusRingClasses.primary;\n const thumbActive = thumbActiveClasses[color] ?? thumbActiveClasses.primary;\n const isControlled = checked !== undefined;\n const [internalChecked, setInternalChecked] = useState<boolean>(\n Boolean((isControlled ? checked : defaultChecked) ?? false)\n );\n\n useEffect(() => {\n if (isControlled) {\n setInternalChecked(Boolean(checked));\n }\n }, [checked, isControlled]);\n\n const currentChecked = isControlled ? Boolean(checked) : internalChecked;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(event.target.checked);\n }\n onChange?.(event);\n };\n\n const sizeTrackClass = trackSizes[size] ?? trackSizes.medium;\n const sizeThumbClass = thumbSizes[size] ?? thumbSizes.medium;\n const thumbShiftClass = thumbTranslate[size] ?? thumbTranslate.medium;\n\n const pointerClass = disabled ? 'cursor-not-allowed opacity-60' : 'cursor-pointer';\n\n return (\n <label\n className={twMerge('flex items-center gap-3 select-none', pointerClass, wrapperClassName)}\n >\n <span className='relative inline-flex items-center'>\n <input\n {...rest}\n type='checkbox'\n ref={ref}\n checked={currentChecked}\n onChange={handleChange}\n disabled={disabled}\n className='peer sr-only'\n />\n <span\n className={twMerge(\n 'block rounded-full border border-transparent transition-all duration-200',\n sizeTrackClass,\n currentChecked ? paletteTrack.active : paletteTrack.inactive,\n disabled && 'bg-gray-200',\n 'peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2',\n focusClass,\n className\n )}\n aria-hidden\n >\n <span\n className={twMerge(\n 'absolute left-0.5 top-0.5 rounded-full bg-white shadow-md border border-gray-200 transition-transform duration-200',\n sizeThumbClass,\n currentChecked && thumbShiftClass,\n currentChecked && thumbActive,\n disabled && 'border-gray-300'\n )}\n />\n </span>\n </span>\n\n {(label || description) && (\n <span className={twMerge('flex flex-col leading-tight', labelClassName)}>\n {label && <span className='text-sm font-medium text-gray-900'>{label}</span>}\n {description && <span className='text-xs text-gray-600'>{description}</span>}\n </span>\n )}\n </label>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/Form/Switch/index.tsx"],"names":["forwardRef","useState","useEffect","jsxs","twMerge","jsx"],"mappings":"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","file":"switch.cjs","sourcesContent":["import { forwardRef, type ChangeEvent, useEffect, useState } from 'react';\nimport type { Palette } from '@lindle/linoardo/global.types';\nimport { twMerge } from 'tailwind-merge';\nimport type { SwitchProps, SwitchSize } from './types.switch';\n\nconst trackSizes: Record<SwitchSize, string> = {\n small: 'w-10 h-6',\n medium: 'w-12 h-7',\n large: 'w-14 h-8'\n};\n\nconst thumbSizes: Record<SwitchSize, string> = {\n small: 'w-5 h-5',\n medium: 'w-6 h-6',\n large: 'w-7 h-7'\n};\n\nconst thumbTranslate: Record<SwitchSize, string> = {\n small: 'translate-x-4',\n medium: 'translate-x-5',\n large: 'translate-x-6'\n};\n\nconst paletteTrackClasses: Record<Palette, { active: string; inactive: string }> = {\n primary: { active: 'bg-primary', inactive: 'bg-gray-300 dark:bg-gray-700' },\n neutral: { active: 'bg-gray-600 dark:bg-gray-500', inactive: 'bg-gray-300 dark:bg-gray-700' },\n info: { active: 'bg-sky-500', inactive: 'bg-gray-300 dark:bg-gray-700' },\n success: { active: 'bg-emerald-500', inactive: 'bg-gray-300 dark:bg-gray-700' },\n warning: { active: 'bg-amber-500', inactive: 'bg-gray-300 dark:bg-gray-700' },\n danger: { active: 'bg-red-500', inactive: 'bg-gray-300 dark:bg-gray-700' },\n surface: { active: 'bg-gray-900 dark:bg-gray-100', inactive: 'bg-gray-300 dark:bg-gray-700' },\n bw: { active: 'bg-black dark:bg-white', inactive: 'bg-gray-200 dark:bg-gray-700' }\n};\n\nconst focusRingClasses: Record<Palette, string> = {\n primary: 'peer-focus-visible:ring-primary/40',\n neutral: 'peer-focus-visible:ring-gray-400',\n info: 'peer-focus-visible:ring-sky-400',\n success: 'peer-focus-visible:ring-emerald-400',\n warning: 'peer-focus-visible:ring-amber-400',\n danger: 'peer-focus-visible:ring-red-400',\n surface: 'peer-focus-visible:ring-gray-800/70',\n bw: 'peer-focus-visible:ring-black/50'\n};\n\nconst thumbActiveClasses: Record<Palette, string> = {\n primary: 'border-primary shadow-[0_4px_12px_rgba(99,102,241,0.35)]',\n neutral: 'border-gray-600 shadow-[0_4px_12px_rgba(75,85,99,0.35)]',\n info: 'border-sky-500 shadow-[0_4px_12px_rgba(2,132,199,0.32)]',\n success: 'border-emerald-500 shadow-[0_4px_12px_rgba(16,185,129,0.32)]',\n warning: 'border-amber-500 shadow-[0_4px_12px_rgba(245,158,11,0.32)]',\n danger: 'border-red-500 shadow-[0_4px_12px_rgba(239,68,68,0.32)]',\n surface: 'border-gray-900 shadow-[0_4px_12px_rgba(15,23,42,0.32)]',\n bw: 'border-black shadow-[0_4px_12px_rgba(0,0,0,0.32)]'\n};\n\n/**\n * Toggle switch supporting controlled/uncontrolled usage, palette colors and size tokens.\n */\nconst Switch = forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n color = 'primary',\n size = 'medium',\n label,\n description,\n wrapperClassName,\n className,\n labelClassName,\n disabled,\n onChange,\n checked,\n defaultChecked,\n ...rest\n },\n ref\n ) => {\n const paletteTrack = paletteTrackClasses[color] ?? paletteTrackClasses.primary;\n const focusClass = focusRingClasses[color] ?? focusRingClasses.primary;\n const thumbActive = thumbActiveClasses[color] ?? thumbActiveClasses.primary;\n const isControlled = checked !== undefined;\n const [internalChecked, setInternalChecked] = useState<boolean>(\n Boolean((isControlled ? checked : defaultChecked) ?? false)\n );\n\n useEffect(() => {\n if (isControlled) {\n setInternalChecked(Boolean(checked));\n }\n }, [checked, isControlled]);\n\n const currentChecked = isControlled ? Boolean(checked) : internalChecked;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(event.target.checked);\n }\n onChange?.(event);\n };\n\n const sizeTrackClass = trackSizes[size] ?? trackSizes.medium;\n const sizeThumbClass = thumbSizes[size] ?? thumbSizes.medium;\n const thumbShiftClass = thumbTranslate[size] ?? thumbTranslate.medium;\n\n const pointerClass = disabled ? 'cursor-not-allowed opacity-60' : 'cursor-pointer';\n\n return (\n <label\n className={twMerge('flex items-center gap-3 select-none', pointerClass, wrapperClassName)}\n >\n <span className='relative inline-flex items-center'>\n <input\n {...rest}\n type='checkbox'\n ref={ref}\n checked={currentChecked}\n onChange={handleChange}\n disabled={disabled}\n className='peer sr-only'\n />\n <span\n className={twMerge(\n 'block rounded-full border border-transparent transition-all duration-200',\n sizeTrackClass,\n currentChecked ? paletteTrack.active : paletteTrack.inactive,\n disabled && 'bg-gray-200 dark:bg-gray-700',\n 'peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-white dark:peer-focus-visible:ring-offset-gray-900',\n focusClass,\n className\n )}\n aria-hidden\n >\n <span\n className={twMerge(\n 'absolute left-0.5 top-0.5 rounded-full bg-white dark:bg-gray-900 shadow-md border border-gray-200 dark:border-gray-600 transition-transform duration-200',\n sizeThumbClass,\n currentChecked && thumbShiftClass,\n currentChecked && thumbActive,\n disabled && 'border-gray-300 dark:border-gray-600'\n )}\n />\n </span>\n </span>\n\n {(label || description) && (\n <span className={twMerge('flex flex-col leading-tight', labelClassName)}>\n {label && <span className='text-sm font-medium text-gray-900 dark:text-gray-100'>{label}</span>}\n {description && <span className='text-xs text-gray-600 dark:text-gray-400'>{description}</span>}\n </span>\n )}\n </label>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n"]}
|
package/dist/switch.js
CHANGED
package/dist/timeline.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/globals.ts","../src/Containment/Chip/states.chip.ts","../src/Feedback/TimeLine/index.tsx"],"names":["normalized","jsx","React","twMerge","jsxs"],"mappings":"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","file":"timeline.cjs","sourcesContent":["export const iconBaseClasses = {\n mdi: ['mdi']\n} as const;\n","import { iconBaseClasses } from '@lindle/linoardo/globals';\nimport { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { ChipSize, ChipVariant } from './types.chip';\n\nexport const chipBaseClasses =\n 'inline-flex items-center gap-1.5 border font-medium leading-tight transition-all duration-200 select-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2';\n\nexport const chipSizeClasses: Record<ChipSize, string> = {\n 'x-small': 'text-[0.65rem] px-2 py-0.5 min-h-[1.25rem]',\n small: 'text-xs px-3 py-1 min-h-[1.5rem]',\n medium: 'text-sm px-4 py-1.5 min-h-[2rem]',\n large: 'text-base px-5 py-2 min-h-[2.5rem]',\n 'x-large': 'text-lg px-6 py-2.5 min-h-[2.75rem]'\n};\n\nexport const closeButtonClasses =\n 'ml-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-transparent text-current/70 transition-colors duration-200 hover:bg-current/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/30 focus-visible:ring-offset-2';\n\nconst blackAndWhitePaletteClasses = {\n solid: 'bg-black text-white border border-black hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white',\n outline:\n 'bg-white text-black border-2 border-black hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white',\n ghost:\n 'bg-neutral-200 text-black border border-transparent hover:bg-neutral-300 focus-visible:ring-black/20',\n text:\n 'bg-transparent text-black border border-transparent hover:bg-neutral-200 focus-visible:ring-black/20',\n filled:\n 'bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20',\n underlined:\n 'bg-transparent text-black border-0 border-b-2 border-black px-0 rounded-none hover:text-black/80 focus-visible:ring-black/20',\n sharp:\n 'rounded-none bg-black text-white border border-black hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white'\n} satisfies Record<ChipVariant, string>;\n\nconst paletteVariantClasses: Record<Palette, Record<ChipVariant, string>> = {\n primary: {\n solid: 'bg-primary text-white border border-primary hover:bg-primary/90',\n sharp: 'rounded-none bg-primary text-white border border-primary hover:bg-primary/90',\n outline: 'bg-transparent text-primary border border-primary hover:bg-primary/10',\n ghost: 'bg-primary/15 text-primary border border-transparent hover:bg-primary/25',\n text: 'bg-transparent text-primary border border-transparent hover:text-primary/80',\n filled: 'bg-primary/10 text-primary border border-primary/30 hover:bg-primary/20',\n underlined: 'bg-transparent text-primary border-0 border-b-2 border-primary px-0 rounded-none hover:text-primary/80',\n },\n neutral: {\n solid: 'bg-gray-900 text-white border border-gray-900 hover:bg-gray-800',\n sharp: 'rounded-none bg-gray-900 text-white border border-gray-900 hover:bg-gray-800',\n outline: 'bg-transparent text-gray-900 border border-gray-500 hover:bg-gray-100',\n ghost: 'bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200',\n text: 'bg-transparent text-gray-900 border border-transparent hover:text-gray-700',\n filled: 'bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300',\n underlined: 'bg-transparent text-gray-900 border-0 border-b-2 border-gray-500 px-0 rounded-none hover:text-gray-700',\n },\n info: {\n solid: 'bg-sky-500 text-white border border-sky-500 hover:bg-sky-600',\n sharp: 'rounded-none bg-sky-500 text-white border border-sky-500 hover:bg-sky-600',\n outline: 'bg-transparent text-sky-600 border border-sky-500 hover:bg-sky-50',\n ghost: 'bg-sky-100 text-sky-700 border border-transparent hover:bg-sky-200',\n text: 'bg-transparent text-sky-600 border border-transparent hover:text-sky-700',\n filled: 'bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200',\n underlined: 'bg-transparent text-sky-600 border-0 border-b-2 border-sky-500 px-0 rounded-none hover:text-sky-700',\n },\n success: {\n solid: 'bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600',\n sharp: 'rounded-none bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600',\n outline: 'bg-transparent text-emerald-600 border border-emerald-500 hover:bg-emerald-50',\n ghost: 'bg-emerald-100 text-emerald-700 border border-transparent hover:bg-emerald-200',\n text: 'bg-transparent text-emerald-600 border border-transparent hover:text-emerald-700',\n filled: 'bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200',\n underlined:\n 'bg-transparent text-emerald-600 border-0 border-b-2 border-emerald-500 px-0 rounded-none hover:text-emerald-700',\n },\n warning: {\n solid: 'bg-amber-500 text-white border border-amber-500 hover:bg-amber-600',\n sharp: 'rounded-none bg-amber-500 text-white border border-amber-500 hover:bg-amber-600',\n outline: 'bg-transparent text-amber-700 border border-amber-500 hover:bg-amber-50',\n ghost: 'bg-amber-100 text-amber-800 border border-transparent hover:bg-amber-200',\n text: 'bg-transparent text-amber-700 border border-transparent hover:text-amber-800',\n filled: 'bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200',\n underlined:\n 'bg-transparent text-amber-700 border-0 border-b-2 border-amber-500 px-0 rounded-none hover:text-amber-800',\n },\n danger: {\n solid: 'bg-red-500 text-white border border-red-500 hover:bg-red-600',\n sharp: 'rounded-none bg-red-500 text-white border border-red-500 hover:bg-red-600',\n outline: 'bg-transparent text-red-600 border border-red-500 hover:bg-red-50',\n ghost: 'bg-red-100 text-red-700 border border-transparent hover:bg-red-200',\n text: 'bg-transparent text-red-600 border border-transparent hover:text-red-700',\n filled: 'bg-red-100 text-red-700 border border-red-200 hover:bg-red-200',\n underlined: 'bg-transparent text-red-600 border-0 border-b-2 border-red-500 px-0 rounded-none hover:text-red-700',\n },\n surface: {\n solid: 'bg-white text-gray-900 border border-gray-200 hover:bg-gray-50',\n sharp: 'rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50',\n outline: 'bg-transparent text-gray-900 border border-gray-300 hover:bg-gray-50',\n ghost: 'bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200',\n text: 'bg-transparent text-gray-900 border border-transparent hover:text-gray-600',\n filled: 'bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white',\n underlined: 'bg-transparent text-gray-900 border-0 border-b-2 border-gray-400 px-0 rounded-none hover:text-gray-600',\n },\n bw: blackAndWhitePaletteClasses\n};\n\nexport const resolveVariantClass = (variant: ChipVariant, palette: Palette) => {\n const variants = paletteVariantClasses[palette] ?? paletteVariantClasses.primary;\n return variants[variant] ?? variants.solid;\n};\n\nexport const resolveIconClassName = (icon?: PropIcon) => {\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] ?? [normalizedLibrary];\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","import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { resolveIconClassName } from '../../Containment/Chip/states.chip';\nimport type {\n TimeLineAlign,\n TimeLineAxis,\n TimeLineDensity,\n TimeLineDotSize,\n TimeLineDotVariant,\n TimeLineItemProps,\n TimeLineProps,\n TimeLineSide\n} from './types.timeline';\n\nconst densityGapClasses: Record<TimeLineDensity, string> = {\n default: 'gap-6',\n compact: 'gap-4'\n};\n\nconst alignClasses: Record<TimeLineAlign, string> = {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end'\n};\n\nconst dotSizeClasses: Record<TimeLineDotSize, string> = {\n sm: 'h-6 w-6 text-xs',\n md: 'h-8 w-8 text-sm',\n lg: 'h-10 w-10 text-base'\n};\n\nconst paletteDotClasses: Record<Palette, Record<TimeLineDotVariant, { dot: string; ring: string }>> = {\n primary: {\n filled: { dot: 'bg-primary text-white border border-primary', ring: 'ring-primary/30' },\n outlined: { dot: 'bg-white text-primary border border-primary', ring: 'ring-primary/20' },\n tonal: { dot: 'bg-primary/15 text-primary border border-primary/20', ring: 'ring-primary/20' }\n },\n neutral: {\n filled: { dot: 'bg-gray-900 text-white border border-gray-900', ring: 'ring-gray-900/20' },\n outlined: { dot: 'bg-white text-gray-900 border border-gray-900', ring: 'ring-gray-900/15' },\n tonal: { dot: 'bg-gray-100 text-gray-800 border border-gray-200', ring: 'ring-gray-900/10' }\n },\n info: {\n filled: { dot: 'bg-sky-500 text-white border border-sky-500', ring: 'ring-sky-500/30' },\n outlined: { dot: 'bg-white text-sky-600 border border-sky-500', ring: 'ring-sky-500/20' },\n tonal: { dot: 'bg-sky-100 text-sky-700 border border-sky-200', ring: 'ring-sky-500/20' }\n },\n success: {\n filled: { dot: 'bg-emerald-500 text-white border border-emerald-500', ring: 'ring-emerald-500/30' },\n outlined: { dot: 'bg-white text-emerald-600 border border-emerald-500', ring: 'ring-emerald-500/20' },\n tonal: { dot: 'bg-emerald-100 text-emerald-700 border border-emerald-200', ring: 'ring-emerald-500/20' }\n },\n warning: {\n filled: { dot: 'bg-amber-500 text-white border border-amber-500', ring: 'ring-amber-500/30' },\n outlined: { dot: 'bg-white text-amber-700 border border-amber-500', ring: 'ring-amber-500/20' },\n tonal: { dot: 'bg-amber-100 text-amber-800 border border-amber-200', ring: 'ring-amber-500/20' }\n },\n danger: {\n filled: { dot: 'bg-red-500 text-white border border-red-500', ring: 'ring-red-500/30' },\n outlined: { dot: 'bg-white text-red-600 border border-red-500', ring: 'ring-red-500/20' },\n tonal: { dot: 'bg-red-100 text-red-700 border border-red-200', ring: 'ring-red-500/20' }\n },\n surface: {\n filled: { dot: 'bg-white text-gray-900 border border-gray-200', ring: 'ring-gray-300/30' },\n outlined: { dot: 'bg-white text-gray-900 border border-gray-300', ring: 'ring-gray-300/20' },\n tonal: { dot: 'bg-gray-50 text-gray-800 border border-gray-200', ring: 'ring-gray-300/20' }\n },\n bw: {\n filled: { dot: 'bg-black text-white border border-black', ring: 'ring-black/30' },\n outlined: { dot: 'bg-white text-black border border-black', ring: 'ring-black/20' },\n tonal: { dot: 'bg-black/10 text-black border border-black/20', ring: 'ring-black/20' }\n }\n};\n\nconst resolveDotPalette = (color: Palette, variant: TimeLineDotVariant) => {\n const palette = paletteDotClasses[color] ?? paletteDotClasses.primary;\n return palette[variant] ?? palette.filled;\n};\n\nconst resolveSide = (side: TimeLineSide, index: number): Exclude<TimeLineSide, 'alternate'> => {\n if (side === 'alternate') {\n return index % 2 === 0 ? 'left' : 'right';\n }\n return side;\n};\n\nconst resolveIconNode = (icon?: PropIcon) => {\n if (!icon) return null;\n const iconClass = resolveIconClassName(icon);\n return iconClass ? <i className={iconClass} aria-hidden /> : null;\n};\n\ntype InternalItemProps = TimeLineItemProps & {\n __timelineSide?: TimeLineSide;\n __timelineAxis?: TimeLineAxis;\n __timelineAlign?: TimeLineAlign;\n __timelineDensity?: TimeLineDensity;\n __timelineColor?: Palette;\n __timelineDotSize?: TimeLineDotSize;\n __timelineLineColor?: string;\n __timelineLineWidth?: number;\n __timelineIndex?: number;\n __timelineCount?: number;\n};\n\n/**\n * Single timeline item with dot, optional icon and left/right content slots.\n */\nconst TimeLineItem = React.forwardRef<HTMLDivElement, InternalItemProps>((props, ref) => {\n const {\n title,\n subtitle,\n opposite,\n icon,\n dot,\n color,\n variant = 'filled',\n side,\n align,\n hideLine,\n dotClassName,\n contentClassName,\n oppositeClassName,\n lineClassName,\n className,\n children,\n __timelineSide = 'right',\n __timelineAxis = 'center',\n __timelineAlign = 'center',\n __timelineDensity = 'default',\n __timelineColor = 'primary',\n __timelineDotSize = 'md',\n __timelineLineColor,\n __timelineLineWidth = 2,\n __timelineIndex = 0,\n __timelineCount = 1,\n ...rest\n } = props;\n\n const timelineSide = side ?? __timelineSide;\n const resolvedAlign = align ?? __timelineAlign;\n const resolvedSide = resolveSide(timelineSide, __timelineIndex);\n const resolvedColor = color ?? __timelineColor;\n const dotSizeClass = dotSizeClasses[__timelineDotSize] ?? dotSizeClasses.md;\n const dotPalette = resolveDotPalette(resolvedColor, variant);\n const iconNode = resolveIconNode(icon);\n const isLast = __timelineIndex >= __timelineCount - 1;\n const showLine = !hideLine && !isLast;\n const hasOpposite = Boolean(opposite);\n const isAlternate = timelineSide === 'alternate';\n const useAxisLayout = !hasOpposite && !isAlternate && __timelineAxis !== 'center';\n const lineStyle: React.CSSProperties = {\n width: __timelineLineWidth,\n backgroundColor: __timelineLineColor\n };\n\n const baseItemClass = twMerge(\n 'timeline-item grid gap-4',\n useAxisLayout ? (__timelineAxis === 'left' ? 'grid-cols-[auto_1fr]' : 'grid-cols-[1fr_auto]') : 'grid-cols-[1fr_auto_1fr]',\n alignClasses[resolvedAlign] ?? alignClasses.center,\n className\n );\n\n const contentNode = children ?? (\n <div className='space-y-1'>\n {title && <div className='text-sm font-semibold text-gray-900'>{title}</div>}\n {subtitle && <div className='text-sm text-gray-500'>{subtitle}</div>}\n </div>\n );\n\n const leftContent =\n resolvedSide === 'left' ? (\n <div className={twMerge('flex flex-col text-right', contentClassName)}>{contentNode}</div>\n ) : opposite ? (\n <div className={twMerge('flex flex-col text-right text-sm text-gray-500', oppositeClassName)}>{opposite}</div>\n ) : (\n <div />\n );\n\n const rightContent =\n resolvedSide === 'right' ? (\n <div className={twMerge('flex flex-col text-left', contentClassName)}>{contentNode}</div>\n ) : opposite ? (\n <div className={twMerge('flex flex-col text-left text-sm text-gray-500', oppositeClassName)}>{opposite}</div>\n ) : (\n <div />\n );\n\n if (useAxisLayout) {\n const contentAlignClass = resolvedSide === 'left' ? 'text-left' : 'text-right';\n const contentContainer = <div className={twMerge('flex flex-col', contentAlignClass, contentClassName)}>{contentNode}</div>;\n const dotColumn = (\n <div className='relative flex h-full flex-col items-center'>\n <span\n className={twMerge(\n 'flex items-center justify-center rounded-full ring-4 ring-white',\n dotSizeClass,\n dotPalette.dot,\n dotPalette.ring,\n dotClassName\n )}\n >\n {dot ?? iconNode}\n </span>\n <span\n className={twMerge('mt-3 flex-1 bg-gray-200 dark:bg-gray-700', showLine ? undefined : 'invisible', lineClassName)}\n style={lineStyle}\n aria-hidden\n />\n </div>\n );\n\n return (\n <div {...rest} ref={ref} className={baseItemClass}>\n {__timelineAxis === 'left' ? dotColumn : contentContainer}\n {__timelineAxis === 'left' ? contentContainer : dotColumn}\n </div>\n );\n }\n\n return (\n <div {...rest} ref={ref} className={baseItemClass}>\n {leftContent}\n <div className='relative flex h-full flex-col items-center'>\n <span\n className={twMerge(\n 'flex items-center justify-center rounded-full ring-4 ring-white',\n dotSizeClass,\n dotPalette.dot,\n dotPalette.ring,\n dotClassName\n )}\n >\n {dot ?? iconNode}\n </span>\n <span\n className={twMerge('mt-3 flex-1 bg-gray-200 dark:bg-gray-700', showLine ? undefined : 'invisible', lineClassName)}\n style={lineStyle}\n aria-hidden\n />\n </div>\n {rightContent}\n </div>\n );\n});\n\nTimeLineItem.displayName = 'TimeLine.Item';\n\nconst isTimeLineItem = (child: React.ReactNode): child is React.ReactElement<InternalItemProps> => {\n if (!React.isValidElement(child)) {\n return false;\n }\n\n const elementType = child.type as { displayName?: string };\n return child.type === TimeLineItem || elementType.displayName === TimeLineItem.displayName;\n};\n\n/**\n * Vuetify-inspired timeline container with optional alternating layout.\n */\nconst TimeLine = React.forwardRef<HTMLDivElement, TimeLineProps>((props, ref) => {\n const {\n side = 'right',\n axis = 'center',\n align = 'center',\n density = 'default',\n color = 'primary',\n lineColor,\n lineWidth = 2,\n dotSize = 'md',\n className,\n children,\n ...rest\n } = props;\n\n const resolvedGap = densityGapClasses[density] ?? densityGapClasses.default;\n const childArray = React.Children.toArray(children);\n\n const resolvedChildren = childArray.map((child, index) => {\n if (!isTimeLineItem(child)) {\n return child;\n }\n\n return React.cloneElement(child, {\n __timelineSide: side,\n __timelineAxis: axis,\n __timelineAlign: align,\n __timelineDensity: density,\n __timelineColor: color,\n __timelineDotSize: dotSize,\n __timelineLineColor: lineColor,\n __timelineLineWidth: lineWidth,\n __timelineIndex: index,\n __timelineCount: childArray.length\n });\n });\n\n return (\n <div {...rest} ref={ref} className={twMerge('timeline flex flex-col', resolvedGap, className)}>\n {resolvedChildren}\n </div>\n );\n});\n\nTimeLine.displayName = 'TimeLine';\n\ntype TimeLineComponent = React.ForwardRefExoticComponent<TimeLineProps & React.RefAttributes<HTMLDivElement>> & {\n Item: typeof TimeLineItem;\n};\n\nconst TimeLineWithItem = TimeLine as TimeLineComponent;\nTimeLineWithItem.Item = TimeLineItem;\n\nexport { TimeLineItem };\nexport type { TimeLineProps, TimeLineItemProps, TimeLineSide, TimeLineAxis, TimeLineAlign, TimeLineDensity, TimeLineDotVariant, TimeLineDotSize };\nexport default TimeLineWithItem;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/globals.ts","../src/Containment/Chip/states.chip.ts","../src/Feedback/TimeLine/index.tsx"],"names":["normalized","jsx","React","twMerge","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAM,eAAA,GAAkB;AAAA,EAC7B,GAAA,EAAK,CAAC,KAAK;AACb,CAAA;;;AC0GO,IAAM,oBAAA,GAAuB,CAAC,IAAA,KAAoB;AACvD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,MAAM,OAAA,GAAU,KAAK,IAAA,EAAK;AAC1B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AACzB,MAAA,OAAO,OAAA;AAAA,IACT;AAEA,IAAA,MAAMA,cAAa,OAAA,CAAQ,UAAA,CAAW,MAAM,CAAA,GAAI,OAAA,GAAU,OAAO,OAAO,CAAA,CAAA;AACxE,IAAA,OAAO,CAAC,KAAA,EAAOA,WAAU,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,EACrC;AAEA,EAAA,MAAM,CAAC,OAAA,EAAS,YAAY,CAAA,GAAI,IAAA;AAChC,EAAA,MAAM,iBAAA,GAAoB,QAAQ,IAAA,EAAK;AACvC,EAAA,MAAM,WAAA,GAAc,eAAA,CAAgB,iBAAiD,CAAA,IAAK,CAAC,iBAAiB,CAAA;AAC5G,EAAA,MAAM,QAAA,GAAW,aAAa,IAAA,EAAK;AACnC,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,WAAA,CAAY,KAAK,GAAG,CAAA;AAAA,EAC7B;AAEA,EAAA,MAAM,aAAa,QAAA,CAAS,UAAA,CAAW,MAAM,CAAA,GAAI,QAAA,GAAW,OAAO,QAAQ,CAAA,CAAA;AAC3E,EAAA,OAAO,KAAA,CAAM,IAAA,iBAAK,IAAI,GAAA,CAAI,CAAC,GAAG,WAAA,EAAa,UAAU,CAAC,CAAC,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACnE,CAAA;AC1HA,IAAM,iBAAA,GAAqD;AAAA,EACzD,OAAA,EAAS,OAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,YAAA,GAA8C;AAAA,EAClD,KAAA,EAAO,aAAA;AAAA,EACP,MAAA,EAAQ,cAAA;AAAA,EACR,GAAA,EAAK;AACP,CAAA;AAEA,IAAM,cAAA,GAAkD;AAAA,EACtD,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,iBAAA,GAAgG;AAAA,EACpG,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,EAAE,GAAA,EAAK,6CAAA,EAA+C,MAAM,iBAAA,EAAkB;AAAA,IACtF,QAAA,EAAU,EAAE,GAAA,EAAK,6CAAA,EAA+C,MAAM,iBAAA,EAAkB;AAAA,IACxF,KAAA,EAAO,EAAE,GAAA,EAAK,qDAAA,EAAuD,MAAM,iBAAA;AAAkB,GAC/F;AAAA,EACA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,EAAE,GAAA,EAAK,+CAAA,EAAiD,MAAM,kBAAA,EAAmB;AAAA,IACzF,QAAA,EAAU,EAAE,GAAA,EAAK,+CAAA,EAAiD,MAAM,kBAAA,EAAmB;AAAA,IAC3F,KAAA,EAAO,EAAE,GAAA,EAAK,kDAAA,EAAoD,MAAM,kBAAA;AAAmB,GAC7F;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,MAAA,EAAQ,EAAE,GAAA,EAAK,6CAAA,EAA+C,MAAM,iBAAA,EAAkB;AAAA,IACtF,QAAA,EAAU,EAAE,GAAA,EAAK,6CAAA,EAA+C,MAAM,iBAAA,EAAkB;AAAA,IACxF,KAAA,EAAO,EAAE,GAAA,EAAK,+CAAA,EAAiD,MAAM,iBAAA;AAAkB,GACzF;AAAA,EACA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,EAAE,GAAA,EAAK,qDAAA,EAAuD,MAAM,qBAAA,EAAsB;AAAA,IAClG,QAAA,EAAU,EAAE,GAAA,EAAK,qDAAA,EAAuD,MAAM,qBAAA,EAAsB;AAAA,IACpG,KAAA,EAAO,EAAE,GAAA,EAAK,2DAAA,EAA6D,MAAM,qBAAA;AAAsB,GACzG;AAAA,EACA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,EAAE,GAAA,EAAK,iDAAA,EAAmD,MAAM,mBAAA,EAAoB;AAAA,IAC5F,QAAA,EAAU,EAAE,GAAA,EAAK,iDAAA,EAAmD,MAAM,mBAAA,EAAoB;AAAA,IAC9F,KAAA,EAAO,EAAE,GAAA,EAAK,qDAAA,EAAuD,MAAM,mBAAA;AAAoB,GACjG;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,MAAA,EAAQ,EAAE,GAAA,EAAK,6CAAA,EAA+C,MAAM,iBAAA,EAAkB;AAAA,IACtF,QAAA,EAAU,EAAE,GAAA,EAAK,6CAAA,EAA+C,MAAM,iBAAA,EAAkB;AAAA,IACxF,KAAA,EAAO,EAAE,GAAA,EAAK,+CAAA,EAAiD,MAAM,iBAAA;AAAkB,GACzF;AAAA,EACA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,EAAE,GAAA,EAAK,+CAAA,EAAiD,MAAM,kBAAA,EAAmB;AAAA,IACzF,QAAA,EAAU,EAAE,GAAA,EAAK,+CAAA,EAAiD,MAAM,kBAAA,EAAmB;AAAA,IAC3F,KAAA,EAAO,EAAE,GAAA,EAAK,iDAAA,EAAmD,MAAM,kBAAA;AAAmB,GAC5F;AAAA,EACA,EAAA,EAAI;AAAA,IACF,MAAA,EAAQ,EAAE,GAAA,EAAK,yCAAA,EAA2C,MAAM,eAAA,EAAgB;AAAA,IAChF,QAAA,EAAU,EAAE,GAAA,EAAK,yCAAA,EAA2C,MAAM,eAAA,EAAgB;AAAA,IAClF,KAAA,EAAO,EAAE,GAAA,EAAK,+CAAA,EAAiD,MAAM,eAAA;AAAgB;AAEzF,CAAA;AAEA,IAAM,iBAAA,GAAoB,CAAC,KAAA,EAAgB,OAAA,KAAgC;AACzE,EAAA,MAAM,OAAA,GAAU,iBAAA,CAAkB,KAAK,CAAA,IAAK,iBAAA,CAAkB,OAAA;AAC9D,EAAA,OAAO,OAAA,CAAQ,OAAO,CAAA,IAAK,OAAA,CAAQ,MAAA;AACrC,CAAA;AAEA,IAAM,WAAA,GAAc,CAAC,IAAA,EAAoB,KAAA,KAAsD;AAC7F,EAAA,IAAI,SAAS,WAAA,EAAa;AACxB,IAAA,OAAO,KAAA,GAAQ,CAAA,KAAM,CAAA,GAAI,MAAA,GAAS,OAAA;AAAA,EACpC;AACA,EAAA,OAAO,IAAA;AACT,CAAA;AAEA,IAAM,eAAA,GAAkB,CAAC,IAAA,KAAoB;AAC3C,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,EAAA,MAAM,SAAA,GAAY,qBAAqB,IAAI,CAAA;AAC3C,EAAA,OAAO,4BAAYC,cAAA,CAAC,GAAA,EAAA,EAAE,WAAW,SAAA,EAAW,aAAA,EAAW,MAAC,CAAA,GAAK,IAAA;AAC/D,CAAA;AAkBA,IAAM,YAAA,GAAqBC,gBAAA,CAAA,UAAA,CAA8C,CAAC,KAAA,EAAO,GAAA,KAAQ;AACvF,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,GAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA,GAAU,QAAA;AAAA,IACV,IAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,gBAAA;AAAA,IACA,iBAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA,GAAiB,OAAA;AAAA,IACjB,cAAA,GAAiB,QAAA;AAAA,IACjB,eAAA,GAAkB,QAAA;AAAA,IAClB,iBAAA,GAAoB,SAAA;AAAA,IACpB,eAAA,GAAkB,SAAA;AAAA,IAClB,iBAAA,GAAoB,IAAA;AAAA,IACpB,mBAAA;AAAA,IACA,mBAAA,GAAsB,CAAA;AAAA,IACtB,eAAA,GAAkB,CAAA;AAAA,IAClB,eAAA,GAAkB,CAAA;AAAA,IAClB,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,eAAe,IAAA,IAAQ,cAAA;AAC7B,EAAA,MAAM,gBAAgB,KAAA,IAAS,eAAA;AAC/B,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,YAAA,EAAc,eAAe,CAAA;AAC9D,EAAA,MAAM,gBAAgB,KAAA,IAAS,eAAA;AAC/B,EAAA,MAAM,YAAA,GAAe,cAAA,CAAe,iBAAiB,CAAA,IAAK,cAAA,CAAe,EAAA;AACzE,EAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,aAAA,EAAe,OAAO,CAAA;AAC3D,EAAA,MAAM,QAAA,GAAW,gBAAgB,IAAI,CAAA;AACrC,EAAA,MAAM,MAAA,GAAS,mBAAmB,eAAA,GAAkB,CAAA;AACpD,EAAA,MAAM,QAAA,GAAW,CAAC,QAAA,IAAY,CAAC,MAAA;AAC/B,EAAA,MAAM,WAAA,GAAc,QAAQ,QAAQ,CAAA;AACpC,EAAA,MAAM,cAAc,YAAA,KAAiB,WAAA;AACrC,EAAA,MAAM,aAAA,GAAgB,CAAC,WAAA,IAAe,CAAC,eAAe,cAAA,KAAmB,QAAA;AACzE,EAAA,MAAM,SAAA,GAAiC;AAAA,IACrC,KAAA,EAAO,mBAAA;AAAA,IACP,eAAA,EAAiB;AAAA,GACnB;AAEA,EAAA,MAAM,aAAA,GAAgBC,qBAAA;AAAA,IACpB,0BAAA;AAAA,IACA,aAAA,GAAiB,cAAA,KAAmB,MAAA,GAAS,sBAAA,GAAyB,sBAAA,GAA0B,0BAAA;AAAA,IAChG,YAAA,CAAa,aAAa,CAAA,IAAK,YAAA,CAAa,MAAA;AAAA,IAC5C;AAAA,GACF;AAEA,EAAA,MAAM,WAAA,GAAc,QAAA,oBAClBC,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,WAAA,EACZ,QAAA,EAAA;AAAA,IAAA,KAAA,oBAASH,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EAAuC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACrE,QAAA,oBAAYA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAyB,QAAA,EAAA,QAAA,EAAS;AAAA,GAAA,EAChE,CAAA;AAGF,EAAA,MAAM,WAAA,GACJ,iBAAiB,MAAA,mBACfA,cAAA,CAAC,SAAI,SAAA,EAAWE,qBAAA,CAAQ,0BAAA,EAA4B,gBAAgB,CAAA,EAAI,QAAA,EAAA,WAAA,EAAY,IAClF,QAAA,mBACFF,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWE,qBAAA,CAAQ,gDAAA,EAAkD,iBAAiB,CAAA,EAAI,QAAA,EAAA,QAAA,EAAS,CAAA,mBAExGF,cAAA,CAAC,KAAA,EAAA,EAAI,CAAA;AAGT,EAAA,MAAM,YAAA,GACJ,iBAAiB,OAAA,mBACfA,cAAA,CAAC,SAAI,SAAA,EAAWE,qBAAA,CAAQ,yBAAA,EAA2B,gBAAgB,CAAA,EAAI,QAAA,EAAA,WAAA,EAAY,IACjF,QAAA,mBACFF,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWE,qBAAA,CAAQ,+CAAA,EAAiD,iBAAiB,CAAA,EAAI,QAAA,EAAA,QAAA,EAAS,CAAA,mBAEvGF,cAAA,CAAC,KAAA,EAAA,EAAI,CAAA;AAGT,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,MAAM,iBAAA,GAAoB,YAAA,KAAiB,MAAA,GAAS,WAAA,GAAc,YAAA;AAClE,IAAA,MAAM,gBAAA,kCAAoB,KAAA,EAAA,EAAI,SAAA,EAAWE,sBAAQ,eAAA,EAAiB,iBAAA,EAAmB,gBAAgB,CAAA,EAAI,QAAA,EAAA,WAAA,EAAY,CAAA;AACrH,IAAA,MAAM,SAAA,mBACJC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EACb,QAAA,EAAA;AAAA,sBAAAH,cAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAWE,qBAAA;AAAA,YACT,iEAAA;AAAA,YACA,YAAA;AAAA,YACA,UAAA,CAAW,GAAA;AAAA,YACX,UAAA,CAAW,IAAA;AAAA,YACX;AAAA,WACF;AAAA,UAEC,QAAA,EAAA,GAAA,IAAO;AAAA;AAAA,OACV;AAAA,sBACAF,cAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,WAAWE,qBAAA,CAAQ,0CAAA,EAA4C,QAAA,GAAW,MAAA,GAAY,aAAa,aAAa,CAAA;AAAA,UAChH,KAAA,EAAO,SAAA;AAAA,UACP,aAAA,EAAW;AAAA;AAAA;AACb,KAAA,EACF,CAAA;AAGF,IAAA,uCACG,KAAA,EAAA,EAAK,GAAG,IAAA,EAAM,GAAA,EAAU,WAAW,aAAA,EACjC,QAAA,EAAA;AAAA,MAAA,cAAA,KAAmB,SAAS,SAAA,GAAY,gBAAA;AAAA,MACxC,cAAA,KAAmB,SAAS,gBAAA,GAAmB;AAAA,KAAA,EAClD,CAAA;AAAA,EAEJ;AAEA,EAAA,uCACG,KAAA,EAAA,EAAK,GAAG,IAAA,EAAM,GAAA,EAAU,WAAW,aAAA,EACjC,QAAA,EAAA;AAAA,IAAA,WAAA;AAAA,oBACDC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EACb,QAAA,EAAA;AAAA,sBAAAH,cAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAWE,qBAAA;AAAA,YACT,iEAAA;AAAA,YACA,YAAA;AAAA,YACA,UAAA,CAAW,GAAA;AAAA,YACX,UAAA,CAAW,IAAA;AAAA,YACX;AAAA,WACF;AAAA,UAEC,QAAA,EAAA,GAAA,IAAO;AAAA;AAAA,OACV;AAAA,sBACAF,cAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,WAAWE,qBAAA,CAAQ,0CAAA,EAA4C,QAAA,GAAW,MAAA,GAAY,aAAa,aAAa,CAAA;AAAA,UAChH,KAAA,EAAO,SAAA;AAAA,UACP,aAAA,EAAW;AAAA;AAAA;AACb,KAAA,EACF,CAAA;AAAA,IACC;AAAA,GAAA,EACH,CAAA;AAEJ,CAAC;AAED,YAAA,CAAa,WAAA,GAAc,eAAA;AAE3B,IAAM,cAAA,GAAiB,CAAC,KAAA,KAA2E;AACjG,EAAA,IAAI,CAAOD,gBAAA,CAAA,cAAA,CAAe,KAAK,CAAA,EAAG;AAChC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,cAAc,KAAA,CAAM,IAAA;AAC1B,EAAA,OAAO,KAAA,CAAM,IAAA,KAAS,YAAA,IAAgB,WAAA,CAAY,gBAAgB,YAAA,CAAa,WAAA;AACjF,CAAA;AAKA,IAAM,QAAA,GAAiBA,gBAAA,CAAA,UAAA,CAA0C,CAAC,KAAA,EAAO,GAAA,KAAQ;AAC/E,EAAA,MAAM;AAAA,IACJ,IAAA,GAAO,OAAA;AAAA,IACP,IAAA,GAAO,QAAA;AAAA,IACP,KAAA,GAAQ,QAAA;AAAA,IACR,OAAA,GAAU,SAAA;AAAA,IACV,KAAA,GAAQ,SAAA;AAAA,IACR,SAAA;AAAA,IACA,SAAA,GAAY,CAAA;AAAA,IACZ,OAAA,GAAU,IAAA;AAAA,IACV,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,WAAA,GAAc,iBAAA,CAAkB,OAAO,CAAA,IAAK,iBAAA,CAAkB,OAAA;AACpE,EAAA,MAAM,UAAA,GAAmBA,gBAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA;AAElD,EAAA,MAAM,gBAAA,GAAmB,UAAA,CAAW,GAAA,CAAI,CAAC,OAAO,KAAA,KAAU;AACxD,IAAA,IAAI,CAAC,cAAA,CAAe,KAAK,CAAA,EAAG;AAC1B,MAAA,OAAO,KAAA;AAAA,IACT;AAEA,IAAA,OAAaA,8BAAa,KAAA,EAAO;AAAA,MAC/B,cAAA,EAAgB,IAAA;AAAA,MAChB,cAAA,EAAgB,IAAA;AAAA,MAChB,eAAA,EAAiB,KAAA;AAAA,MACjB,iBAAA,EAAmB,OAAA;AAAA,MACnB,eAAA,EAAiB,KAAA;AAAA,MACjB,iBAAA,EAAmB,OAAA;AAAA,MACnB,mBAAA,EAAqB,SAAA;AAAA,MACrB,mBAAA,EAAqB,SAAA;AAAA,MACrB,eAAA,EAAiB,KAAA;AAAA,MACjB,iBAAiB,UAAA,CAAW;AAAA,KAC7B,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,uBACED,cAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EAAM,GAAA,EAAU,SAAA,EAAWE,qBAAA,CAAQ,yBAAA,EAA2B,WAAA,EAAa,SAAS,CAAA,EAC1F,QAAA,EAAA,gBAAA,EACH,CAAA;AAEJ,CAAC,CAAA;AAED,QAAA,CAAS,WAAA,GAAc,UAAA;AAMvB,IAAM,gBAAA,GAAmB,QAAA;AACzB,gBAAA,CAAiB,IAAA,GAAO,YAAA;AAIxB,IAAO,gBAAA,GAAQ","file":"timeline.cjs","sourcesContent":["export const iconBaseClasses = {\n mdi: ['mdi']\n} as const;\n","import { iconBaseClasses } from '@lindle/linoardo/globals';\nimport { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { ChipSize, ChipVariant } from './types.chip';\n\nexport const chipBaseClasses =\n 'inline-flex items-center gap-1.5 border font-medium leading-tight transition-all duration-200 select-none 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\nexport const chipSizeClasses: Record<ChipSize, string> = {\n 'x-small': 'text-[0.65rem] px-2 py-0.5 min-h-[1.25rem]',\n small: 'text-xs px-3 py-1 min-h-[1.5rem]',\n medium: 'text-sm px-4 py-1.5 min-h-[2rem]',\n large: 'text-base px-5 py-2 min-h-[2.5rem]',\n 'x-large': 'text-lg px-6 py-2.5 min-h-[2.75rem]'\n};\n\nexport const closeButtonClasses =\n 'ml-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-transparent text-current/70 transition-colors duration-200 hover:bg-current/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/30 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900';\n\nconst blackAndWhitePaletteClasses = {\n solid: 'bg-black text-white border border-black hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white dark:bg-white dark:text-black dark:border-white dark:hover:bg-white/90 dark:focus-visible:ring-white/40 dark:focus-visible:ring-offset-gray-900',\n outline:\n 'bg-white text-black border-2 border-black hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white dark:bg-transparent dark:text-white dark:border-white dark:hover:bg-white dark:hover:text-black dark:focus-visible:ring-white/40 dark:focus-visible:ring-offset-gray-900',\n ghost:\n 'bg-neutral-200 text-black border border-transparent hover:bg-neutral-300 focus-visible:ring-black/20 dark:bg-neutral-800 dark:text-white dark:hover:bg-neutral-700',\n text:\n 'bg-transparent text-black border border-transparent hover:bg-neutral-200 focus-visible:ring-black/20 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-0 border-b-2 border-black px-0 rounded-none hover:text-black/80 focus-visible:ring-black/20 dark:text-white dark:border-white dark:hover:text-white/80',\n sharp:\n 'rounded-none bg-black text-white border border-black hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white dark:bg-white dark:text-black dark:border-white dark:hover:bg-white/90 dark:focus-visible:ring-white/40 dark:focus-visible:ring-offset-gray-900'\n} satisfies Record<ChipVariant, string>;\n\nconst paletteVariantClasses: Record<Palette, Record<ChipVariant, string>> = {\n primary: {\n solid: 'bg-primary text-white border border-primary hover:bg-primary/90',\n sharp: 'rounded-none bg-primary text-white border border-primary hover:bg-primary/90',\n outline: 'bg-transparent text-primary border border-primary hover:bg-primary/10 dark:border-primary/60 dark:hover:bg-primary/20',\n ghost: 'bg-primary/15 text-primary border border-transparent hover:bg-primary/25 dark:bg-primary/25 dark:hover:bg-primary/35',\n text: 'bg-transparent text-primary border border-transparent hover:text-primary/80 dark:hover:bg-primary/15',\n filled: 'bg-primary/10 text-primary border border-primary/30 hover:bg-primary/20 dark:bg-primary/20 dark:border-primary/40 dark:hover:bg-primary/30',\n underlined: 'bg-transparent text-primary border-0 border-b-2 border-primary px-0 rounded-none hover:text-primary/80 dark:hover:bg-primary/15',\n },\n neutral: {\n solid: 'bg-gray-900 text-white border border-gray-900 hover:bg-gray-800',\n sharp: 'rounded-none bg-gray-900 text-white border border-gray-900 hover:bg-gray-800',\n outline: 'bg-transparent text-gray-900 border border-gray-500 hover:bg-gray-100 dark:text-gray-200 dark:border-gray-600 dark:hover:bg-gray-800',\n ghost: 'bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:hover:bg-gray-700',\n text: 'bg-transparent text-gray-900 border border-transparent hover:text-gray-700 dark:text-gray-100 dark:hover:bg-gray-800',\n filled: 'bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300 dark:bg-gray-800 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-700',\n underlined: 'bg-transparent text-gray-900 border-0 border-b-2 border-gray-500 px-0 rounded-none hover:text-gray-700 dark:text-gray-100 dark:border-gray-600 dark:hover:bg-gray-800',\n },\n info: {\n solid: 'bg-sky-500 text-white border border-sky-500 hover:bg-sky-600',\n sharp: 'rounded-none bg-sky-500 text-white border border-sky-500 hover:bg-sky-600',\n outline: 'bg-transparent text-sky-600 border border-sky-500 hover:bg-sky-50 dark:text-sky-300 dark:border-sky-500/70 dark:hover:bg-sky-900/30',\n ghost: 'bg-sky-100 text-sky-700 border border-transparent hover:bg-sky-200 dark:bg-sky-900/35 dark:text-sky-200 dark:hover:bg-sky-900/50',\n text: 'bg-transparent text-sky-600 border border-transparent hover:text-sky-700 dark:text-sky-300 dark:hover:bg-sky-900/30',\n filled: 'bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200 dark:bg-sky-900/35 dark:text-sky-200 dark:border-sky-700/60 dark:hover:bg-sky-900/50',\n underlined: 'bg-transparent text-sky-600 border-0 border-b-2 border-sky-500 px-0 rounded-none hover:text-sky-700 dark:text-sky-300 dark:border-sky-500/70 dark:hover:bg-sky-900/30',\n },\n success: {\n solid: 'bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600',\n sharp: 'rounded-none bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600',\n outline: 'bg-transparent text-emerald-600 border border-emerald-500 hover:bg-emerald-50 dark:text-emerald-300 dark:border-emerald-500/70 dark:hover:bg-emerald-900/30',\n ghost: 'bg-emerald-100 text-emerald-700 border border-transparent hover:bg-emerald-200 dark:bg-emerald-900/35 dark:text-emerald-200 dark:hover:bg-emerald-900/50',\n text: 'bg-transparent text-emerald-600 border border-transparent hover:text-emerald-700 dark:text-emerald-300 dark:hover:bg-emerald-900/30',\n filled: 'bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-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-0 border-b-2 border-emerald-500 px-0 rounded-none hover:text-emerald-700 dark:text-emerald-300 dark:border-emerald-500/70 dark:hover:bg-emerald-900/30',\n },\n warning: {\n solid: 'bg-amber-500 text-white border border-amber-500 hover:bg-amber-600',\n sharp: 'rounded-none bg-amber-500 text-white border border-amber-500 hover:bg-amber-600',\n outline: 'bg-transparent text-amber-700 border border-amber-500 hover:bg-amber-50 dark:text-amber-300 dark:border-amber-500/70 dark:hover:bg-amber-900/30',\n ghost: 'bg-amber-100 text-amber-800 border border-transparent hover:bg-amber-200 dark:bg-amber-900/35 dark:text-amber-200 dark:hover:bg-amber-900/50',\n text: 'bg-transparent text-amber-700 border border-transparent hover:text-amber-800 dark:text-amber-300 dark:hover:bg-amber-900/30',\n filled: 'bg-amber-100 text-amber-800 border border-amber-200 hover:bg-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-700 border-0 border-b-2 border-amber-500 px-0 rounded-none hover:text-amber-800 dark:text-amber-300 dark:border-amber-500/70 dark:hover:bg-amber-900/30',\n },\n danger: {\n solid: 'bg-red-500 text-white border border-red-500 hover:bg-red-600',\n sharp: 'rounded-none bg-red-500 text-white border border-red-500 hover:bg-red-600',\n outline: 'bg-transparent text-red-600 border border-red-500 hover:bg-red-50 dark:text-red-300 dark:border-red-500/70 dark:hover:bg-red-900/30',\n ghost: 'bg-red-100 text-red-700 border border-transparent hover:bg-red-200 dark:bg-red-900/35 dark:text-red-200 dark:hover:bg-red-900/50',\n text: 'bg-transparent text-red-600 border border-transparent hover:text-red-700 dark:text-red-300 dark:hover:bg-red-900/30',\n filled: 'bg-red-100 text-red-700 border border-red-200 hover:bg-red-200 dark:bg-red-900/35 dark:text-red-200 dark:border-red-700/60 dark:hover:bg-red-900/50',\n underlined: 'bg-transparent text-red-600 border-0 border-b-2 border-red-500 px-0 rounded-none hover:text-red-700 dark:text-red-300 dark:border-red-500/70 dark:hover:bg-red-900/30',\n },\n surface: {\n solid: 'bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 dark:bg-gray-900 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-800',\n sharp: 'rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 dark:bg-gray-900 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-800',\n outline: 'bg-transparent text-gray-900 border border-gray-300 hover:bg-gray-50 dark:text-gray-100 dark:border-gray-600 dark:hover:bg-gray-800',\n ghost: 'bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:hover:bg-gray-700',\n text: 'bg-transparent text-gray-900 border border-transparent hover:text-gray-600 dark:text-gray-100 dark:hover:bg-gray-800',\n filled: 'bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white dark:bg-gray-800 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-700',\n underlined: 'bg-transparent text-gray-900 border-0 border-b-2 border-gray-400 px-0 rounded-none hover:text-gray-600 dark:text-gray-100 dark:border-gray-600 dark:hover:bg-gray-800',\n },\n bw: blackAndWhitePaletteClasses\n};\n\nexport const resolveVariantClass = (variant: ChipVariant, palette: Palette) => {\n const variants = paletteVariantClasses[palette] ?? paletteVariantClasses.primary;\n return variants[variant] ?? variants.solid;\n};\n\nexport const resolveIconClassName = (icon?: PropIcon) => {\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] ?? [normalizedLibrary];\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","import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { resolveIconClassName } from '../../Containment/Chip/states.chip';\nimport type {\n TimeLineAlign,\n TimeLineAxis,\n TimeLineDensity,\n TimeLineDotSize,\n TimeLineDotVariant,\n TimeLineItemProps,\n TimeLineProps,\n TimeLineSide\n} from './types.timeline';\n\nconst densityGapClasses: Record<TimeLineDensity, string> = {\n default: 'gap-6',\n compact: 'gap-4'\n};\n\nconst alignClasses: Record<TimeLineAlign, string> = {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end'\n};\n\nconst dotSizeClasses: Record<TimeLineDotSize, string> = {\n sm: 'h-6 w-6 text-xs',\n md: 'h-8 w-8 text-sm',\n lg: 'h-10 w-10 text-base'\n};\n\nconst paletteDotClasses: Record<Palette, Record<TimeLineDotVariant, { dot: string; ring: string }>> = {\n primary: {\n filled: { dot: 'bg-primary text-white border border-primary', ring: 'ring-primary/30' },\n outlined: { dot: 'bg-white text-primary border border-primary', ring: 'ring-primary/20' },\n tonal: { dot: 'bg-primary/15 text-primary border border-primary/20', ring: 'ring-primary/20' }\n },\n neutral: {\n filled: { dot: 'bg-gray-900 text-white border border-gray-900', ring: 'ring-gray-900/20' },\n outlined: { dot: 'bg-white text-gray-900 border border-gray-900', ring: 'ring-gray-900/15' },\n tonal: { dot: 'bg-gray-100 text-gray-800 border border-gray-200', ring: 'ring-gray-900/10' }\n },\n info: {\n filled: { dot: 'bg-sky-500 text-white border border-sky-500', ring: 'ring-sky-500/30' },\n outlined: { dot: 'bg-white text-sky-600 border border-sky-500', ring: 'ring-sky-500/20' },\n tonal: { dot: 'bg-sky-100 text-sky-700 border border-sky-200', ring: 'ring-sky-500/20' }\n },\n success: {\n filled: { dot: 'bg-emerald-500 text-white border border-emerald-500', ring: 'ring-emerald-500/30' },\n outlined: { dot: 'bg-white text-emerald-600 border border-emerald-500', ring: 'ring-emerald-500/20' },\n tonal: { dot: 'bg-emerald-100 text-emerald-700 border border-emerald-200', ring: 'ring-emerald-500/20' }\n },\n warning: {\n filled: { dot: 'bg-amber-500 text-white border border-amber-500', ring: 'ring-amber-500/30' },\n outlined: { dot: 'bg-white text-amber-700 border border-amber-500', ring: 'ring-amber-500/20' },\n tonal: { dot: 'bg-amber-100 text-amber-800 border border-amber-200', ring: 'ring-amber-500/20' }\n },\n danger: {\n filled: { dot: 'bg-red-500 text-white border border-red-500', ring: 'ring-red-500/30' },\n outlined: { dot: 'bg-white text-red-600 border border-red-500', ring: 'ring-red-500/20' },\n tonal: { dot: 'bg-red-100 text-red-700 border border-red-200', ring: 'ring-red-500/20' }\n },\n surface: {\n filled: { dot: 'bg-white text-gray-900 border border-gray-200', ring: 'ring-gray-300/30' },\n outlined: { dot: 'bg-white text-gray-900 border border-gray-300', ring: 'ring-gray-300/20' },\n tonal: { dot: 'bg-gray-50 text-gray-800 border border-gray-200', ring: 'ring-gray-300/20' }\n },\n bw: {\n filled: { dot: 'bg-black text-white border border-black', ring: 'ring-black/30' },\n outlined: { dot: 'bg-white text-black border border-black', ring: 'ring-black/20' },\n tonal: { dot: 'bg-black/10 text-black border border-black/20', ring: 'ring-black/20' }\n }\n};\n\nconst resolveDotPalette = (color: Palette, variant: TimeLineDotVariant) => {\n const palette = paletteDotClasses[color] ?? paletteDotClasses.primary;\n return palette[variant] ?? palette.filled;\n};\n\nconst resolveSide = (side: TimeLineSide, index: number): Exclude<TimeLineSide, 'alternate'> => {\n if (side === 'alternate') {\n return index % 2 === 0 ? 'left' : 'right';\n }\n return side;\n};\n\nconst resolveIconNode = (icon?: PropIcon) => {\n if (!icon) return null;\n const iconClass = resolveIconClassName(icon);\n return iconClass ? <i className={iconClass} aria-hidden /> : null;\n};\n\ntype InternalItemProps = TimeLineItemProps & {\n __timelineSide?: TimeLineSide;\n __timelineAxis?: TimeLineAxis;\n __timelineAlign?: TimeLineAlign;\n __timelineDensity?: TimeLineDensity;\n __timelineColor?: Palette;\n __timelineDotSize?: TimeLineDotSize;\n __timelineLineColor?: string;\n __timelineLineWidth?: number;\n __timelineIndex?: number;\n __timelineCount?: number;\n};\n\n/**\n * Single timeline item with dot, optional icon and left/right content slots.\n */\nconst TimeLineItem = React.forwardRef<HTMLDivElement, InternalItemProps>((props, ref) => {\n const {\n title,\n subtitle,\n opposite,\n icon,\n dot,\n color,\n variant = 'filled',\n side,\n align,\n hideLine,\n dotClassName,\n contentClassName,\n oppositeClassName,\n lineClassName,\n className,\n children,\n __timelineSide = 'right',\n __timelineAxis = 'center',\n __timelineAlign = 'center',\n __timelineDensity = 'default',\n __timelineColor = 'primary',\n __timelineDotSize = 'md',\n __timelineLineColor,\n __timelineLineWidth = 2,\n __timelineIndex = 0,\n __timelineCount = 1,\n ...rest\n } = props;\n\n const timelineSide = side ?? __timelineSide;\n const resolvedAlign = align ?? __timelineAlign;\n const resolvedSide = resolveSide(timelineSide, __timelineIndex);\n const resolvedColor = color ?? __timelineColor;\n const dotSizeClass = dotSizeClasses[__timelineDotSize] ?? dotSizeClasses.md;\n const dotPalette = resolveDotPalette(resolvedColor, variant);\n const iconNode = resolveIconNode(icon);\n const isLast = __timelineIndex >= __timelineCount - 1;\n const showLine = !hideLine && !isLast;\n const hasOpposite = Boolean(opposite);\n const isAlternate = timelineSide === 'alternate';\n const useAxisLayout = !hasOpposite && !isAlternate && __timelineAxis !== 'center';\n const lineStyle: React.CSSProperties = {\n width: __timelineLineWidth,\n backgroundColor: __timelineLineColor\n };\n\n const baseItemClass = twMerge(\n 'timeline-item grid gap-4',\n useAxisLayout ? (__timelineAxis === 'left' ? 'grid-cols-[auto_1fr]' : 'grid-cols-[1fr_auto]') : 'grid-cols-[1fr_auto_1fr]',\n alignClasses[resolvedAlign] ?? alignClasses.center,\n className\n );\n\n const contentNode = children ?? (\n <div className='space-y-1'>\n {title && <div className='text-sm font-semibold text-gray-900'>{title}</div>}\n {subtitle && <div className='text-sm text-gray-500'>{subtitle}</div>}\n </div>\n );\n\n const leftContent =\n resolvedSide === 'left' ? (\n <div className={twMerge('flex flex-col text-right', contentClassName)}>{contentNode}</div>\n ) : opposite ? (\n <div className={twMerge('flex flex-col text-right text-sm text-gray-500', oppositeClassName)}>{opposite}</div>\n ) : (\n <div />\n );\n\n const rightContent =\n resolvedSide === 'right' ? (\n <div className={twMerge('flex flex-col text-left', contentClassName)}>{contentNode}</div>\n ) : opposite ? (\n <div className={twMerge('flex flex-col text-left text-sm text-gray-500', oppositeClassName)}>{opposite}</div>\n ) : (\n <div />\n );\n\n if (useAxisLayout) {\n const contentAlignClass = resolvedSide === 'left' ? 'text-left' : 'text-right';\n const contentContainer = <div className={twMerge('flex flex-col', contentAlignClass, contentClassName)}>{contentNode}</div>;\n const dotColumn = (\n <div className='relative flex h-full flex-col items-center'>\n <span\n className={twMerge(\n 'flex items-center justify-center rounded-full ring-4 ring-white',\n dotSizeClass,\n dotPalette.dot,\n dotPalette.ring,\n dotClassName\n )}\n >\n {dot ?? iconNode}\n </span>\n <span\n className={twMerge('mt-3 flex-1 bg-gray-200 dark:bg-gray-700', showLine ? undefined : 'invisible', lineClassName)}\n style={lineStyle}\n aria-hidden\n />\n </div>\n );\n\n return (\n <div {...rest} ref={ref} className={baseItemClass}>\n {__timelineAxis === 'left' ? dotColumn : contentContainer}\n {__timelineAxis === 'left' ? contentContainer : dotColumn}\n </div>\n );\n }\n\n return (\n <div {...rest} ref={ref} className={baseItemClass}>\n {leftContent}\n <div className='relative flex h-full flex-col items-center'>\n <span\n className={twMerge(\n 'flex items-center justify-center rounded-full ring-4 ring-white',\n dotSizeClass,\n dotPalette.dot,\n dotPalette.ring,\n dotClassName\n )}\n >\n {dot ?? iconNode}\n </span>\n <span\n className={twMerge('mt-3 flex-1 bg-gray-200 dark:bg-gray-700', showLine ? undefined : 'invisible', lineClassName)}\n style={lineStyle}\n aria-hidden\n />\n </div>\n {rightContent}\n </div>\n );\n});\n\nTimeLineItem.displayName = 'TimeLine.Item';\n\nconst isTimeLineItem = (child: React.ReactNode): child is React.ReactElement<InternalItemProps> => {\n if (!React.isValidElement(child)) {\n return false;\n }\n\n const elementType = child.type as { displayName?: string };\n return child.type === TimeLineItem || elementType.displayName === TimeLineItem.displayName;\n};\n\n/**\n * Vuetify-inspired timeline container with optional alternating layout.\n */\nconst TimeLine = React.forwardRef<HTMLDivElement, TimeLineProps>((props, ref) => {\n const {\n side = 'right',\n axis = 'center',\n align = 'center',\n density = 'default',\n color = 'primary',\n lineColor,\n lineWidth = 2,\n dotSize = 'md',\n className,\n children,\n ...rest\n } = props;\n\n const resolvedGap = densityGapClasses[density] ?? densityGapClasses.default;\n const childArray = React.Children.toArray(children);\n\n const resolvedChildren = childArray.map((child, index) => {\n if (!isTimeLineItem(child)) {\n return child;\n }\n\n return React.cloneElement(child, {\n __timelineSide: side,\n __timelineAxis: axis,\n __timelineAlign: align,\n __timelineDensity: density,\n __timelineColor: color,\n __timelineDotSize: dotSize,\n __timelineLineColor: lineColor,\n __timelineLineWidth: lineWidth,\n __timelineIndex: index,\n __timelineCount: childArray.length\n });\n });\n\n return (\n <div {...rest} ref={ref} className={twMerge('timeline flex flex-col', resolvedGap, className)}>\n {resolvedChildren}\n </div>\n );\n});\n\nTimeLine.displayName = 'TimeLine';\n\ntype TimeLineComponent = React.ForwardRefExoticComponent<TimeLineProps & React.RefAttributes<HTMLDivElement>> & {\n Item: typeof TimeLineItem;\n};\n\nconst TimeLineWithItem = TimeLine as TimeLineComponent;\nTimeLineWithItem.Item = TimeLineItem;\n\nexport { TimeLineItem };\nexport type { TimeLineProps, TimeLineItemProps, TimeLineSide, TimeLineAxis, TimeLineAlign, TimeLineDensity, TimeLineDotVariant, TimeLineDotSize };\nexport default TimeLineWithItem;\n"]}
|
package/dist/timeline.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { TimeLineItem, TimeLine_default as default } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { TimeLineItem, TimeLine_default as default } from './chunk-LZYVTGJD.js';
|
|
2
|
+
import './chunk-HGECC2JH.js';
|
|
3
3
|
import './chunk-IEILIKS2.js';
|
|
4
4
|
//# sourceMappingURL=timeline.js.map
|
|
5
5
|
//# sourceMappingURL=timeline.js.map
|
package/dist/tooltip.cjs
CHANGED
|
@@ -25,9 +25,9 @@ function _interopNamespace(e) {
|
|
|
25
25
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
26
26
|
|
|
27
27
|
// src/Containment/ToolTip/index.tsx
|
|
28
|
-
var tooltipBaseClasses = "absolute z-[60] max-w-xs rounded-lg border border-
|
|
28
|
+
var tooltipBaseClasses = "absolute z-[60] max-w-xs rounded-lg border border-gray-200 bg-white px-3 py-2 text-xs font-medium text-gray-900 shadow-lg shadow-gray-900/20 ring-1 ring-black/5 transition-all duration-150 dark:border-white/10 dark:bg-gray-900 dark:text-white dark:shadow-black/30 dark:ring-black/40";
|
|
29
29
|
var wrapperBaseClasses = "relative inline-flex max-w-full align-middle";
|
|
30
|
-
var arrowBaseClasses = "pointer-events-none absolute h-2 w-2 rotate-45 border border-white/10 bg-gray-900 shadow-
|
|
30
|
+
var arrowBaseClasses = "pointer-events-none absolute h-2 w-2 rotate-45 border border-gray-200 bg-white shadow-lg shadow-gray-900/15 dark:border-white/10 dark:bg-gray-900 dark:shadow-black/20";
|
|
31
31
|
var resolveSizeValue = (value) => {
|
|
32
32
|
if (value === void 0) {
|
|
33
33
|
return void 0;
|
package/dist/tooltip.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Containment/ToolTip/index.tsx"],"names":["React","jsxs","twMerge","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAM,kBAAA,GACJ,
|
|
1
|
+
{"version":3,"sources":["../src/Containment/ToolTip/index.tsx"],"names":["React","jsxs","twMerge","jsx"],"mappings":"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","file":"tooltip.cjs","sourcesContent":["import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nconst tooltipBaseClasses =\n 'absolute z-[60] max-w-xs rounded-lg border border-gray-200 bg-white px-3 py-2 text-xs font-medium text-gray-900 shadow-lg shadow-gray-900/20 ring-1 ring-black/5 transition-all duration-150 dark:border-white/10 dark:bg-gray-900 dark:text-white dark:shadow-black/30 dark:ring-black/40';\nconst wrapperBaseClasses = 'relative inline-flex max-w-full align-middle';\nconst arrowBaseClasses =\n 'pointer-events-none absolute h-2 w-2 rotate-45 border border-gray-200 bg-white shadow-lg shadow-gray-900/15 dark:border-white/10 dark:bg-gray-900 dark:shadow-black/20';\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 type ToolTipPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end'\n | 'right'\n | 'right-start'\n | 'right-end';\n\nconst placementClasses: Record<ToolTipPlacement, string> = {\n top: 'bottom-full left-1/2 -translate-x-1/2 -translate-y-2 origin-bottom',\n 'top-start': 'bottom-full left-0 -translate-y-2 origin-bottom-left',\n 'top-end': 'bottom-full right-0 -translate-y-2 origin-bottom-right',\n bottom: 'top-full left-1/2 -translate-x-1/2 translate-y-2 origin-top',\n 'bottom-start': 'top-full left-0 translate-y-2 origin-top-left',\n 'bottom-end': 'top-full right-0 translate-y-2 origin-top-right',\n left: 'right-full top-1/2 -translate-y-1/2 -translate-x-2 origin-right',\n 'left-start': 'right-full top-0 -translate-x-2 origin-top-right',\n 'left-end': 'right-full bottom-0 -translate-x-2 origin-bottom-right',\n right: 'left-full top-1/2 -translate-y-1/2 translate-x-2 origin-left',\n 'right-start': 'left-full top-0 translate-x-2 origin-top-left',\n 'right-end': 'left-full bottom-0 translate-x-2 origin-bottom-left'\n};\n\nconst arrowPlacementClasses: Record<ToolTipPlacement, string> = {\n top: 'left-1/2 top-full -translate-x-1/2 -translate-y-1/2',\n 'top-start': 'left-4 top-full -translate-y-1/2',\n 'top-end': 'right-4 top-full -translate-y-1/2',\n bottom: 'left-1/2 bottom-full -translate-x-1/2 translate-y-1/2',\n 'bottom-start': 'left-4 bottom-full translate-y-1/2',\n 'bottom-end': 'right-4 bottom-full translate-y-1/2',\n left: 'left-full top-1/2 -translate-y-1/2 -translate-x-1/2',\n 'left-start': 'left-full top-4 -translate-x-1/2',\n 'left-end': 'left-full bottom-4 -translate-x-1/2',\n right: 'right-full top-1/2 -translate-y-1/2 translate-x-1/2',\n 'right-start': 'right-full top-4 translate-x-1/2',\n 'right-end': 'right-full bottom-4 translate-x-1/2'\n};\n\nexport interface ToolTipProps extends React.HTMLAttributes<HTMLDivElement> {\n activator: React.ReactNode;\n placement?: ToolTipPlacement;\n arrow?: boolean;\n disabled?: boolean;\n persistent?: boolean;\n showOnHover?: boolean;\n showOnFocus?: boolean;\n interactive?: boolean;\n keepMounted?: boolean;\n maxWidth?: string | number;\n wrapperClassName?: string;\n}\n\n/**\n * Tooltip wrapper that reveals contextual content around an activator on hover or focus.\n */\nconst ToolTip = React.forwardRef<HTMLDivElement, ToolTipProps>((props, forwardedRef) => {\n const {\n activator,\n children,\n placement = 'top',\n arrow = false,\n disabled = false,\n persistent = false,\n showOnHover = true,\n showOnFocus = true,\n interactive = false,\n keepMounted = false,\n maxWidth = '18rem',\n wrapperClassName,\n className,\n style,\n id,\n ...rest\n } = props;\n\n const hasRenderableContent = children !== undefined && children !== null;\n const shouldEnableTriggers = !disabled && (persistent || showOnHover || showOnFocus);\n const shouldRenderTooltip = hasRenderableContent && (shouldEnableTriggers || keepMounted);\n\n const resolvedStyle: React.CSSProperties = { ...style };\n if (resolvedStyle.maxWidth === undefined) {\n resolvedStyle.maxWidth = resolveSizeValue(maxWidth);\n }\n\n const baseVisibility = persistent ? 'opacity-100 scale-100' : 'opacity-0 scale-95';\n const hoverClasses =\n !persistent && showOnHover\n ? ' group-hover/tooltip:opacity-100 group-hover/tooltip:scale-100'\n : '';\n const focusClasses =\n !persistent && showOnFocus\n ? ' group-focus-within/tooltip:opacity-100 group-focus-within/tooltip:scale-100'\n : '';\n const visibilityClasses = `${baseVisibility}${hoverClasses}${focusClasses}`;\n\n const pointerClasses = (() => {\n if (persistent) {\n return 'pointer-events-auto';\n }\n if (!interactive) {\n return 'pointer-events-none';\n }\n const classes = ['pointer-events-none'];\n if (showOnHover) {\n classes.push('group-hover/tooltip:pointer-events-auto');\n }\n if (showOnFocus) {\n classes.push('group-focus-within/tooltip:pointer-events-auto');\n }\n return classes.join(' ');\n })();\n\n return (\n <span\n className={twMerge(wrapperBaseClasses, 'group/tooltip', wrapperClassName)}\n data-disabled={disabled || undefined}\n >\n <span className='inline-flex max-w-full'>{activator}</span>\n {shouldRenderTooltip ? (\n <div\n {...rest}\n ref={forwardedRef}\n role='tooltip'\n id={id}\n aria-hidden={persistent || disabled ? undefined : true}\n className={twMerge(\n tooltipBaseClasses,\n placementClasses[placement],\n visibilityClasses,\n pointerClasses,\n className\n )}\n style={resolvedStyle}\n >\n {children}\n {arrow && (\n <span\n className={twMerge(arrowBaseClasses, arrowPlacementClasses[placement])}\n aria-hidden\n data-arrow\n />\n )}\n </div>\n ) : null}\n </span>\n );\n});\n\nToolTip.displayName = 'ToolTip';\n\nexport default ToolTip;\n"]}
|
package/dist/tooltip.js
CHANGED
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -32,11 +32,29 @@ export default function App() {
|
|
|
32
32
|
|
|
33
33
|
## Initial values (CSS variables)
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Palette colors are controlled by CSS variables. Default values:
|
|
36
|
+
|
|
37
|
+
- `--color-primary`
|
|
38
|
+
- `--color-neutral`
|
|
39
|
+
- `--color-info`
|
|
40
|
+
- `--color-success`
|
|
41
|
+
- `--color-warning`
|
|
42
|
+
- `--color-danger`
|
|
43
|
+
- `--color-surface`
|
|
44
|
+
- `--color-bw`
|
|
45
|
+
|
|
46
|
+
You can override them globally:
|
|
36
47
|
|
|
37
48
|
```css
|
|
38
49
|
:root {
|
|
39
50
|
--color-primary: #0ea5e9;
|
|
51
|
+
--color-neutral: #4b5563;
|
|
52
|
+
--color-info: #0ea5e9;
|
|
53
|
+
--color-success: #10b981;
|
|
54
|
+
--color-warning: #f59e0b;
|
|
55
|
+
--color-danger: #ef4444;
|
|
56
|
+
--color-surface: #ffffff;
|
|
57
|
+
--color-bw: #000000;
|
|
40
58
|
}
|
|
41
59
|
```
|
|
42
60
|
|
|
@@ -45,6 +63,8 @@ If you want to scope the color locally, set it on a wrapper element:
|
|
|
45
63
|
```css
|
|
46
64
|
.app-theme {
|
|
47
65
|
--color-primary: #22c55e;
|
|
66
|
+
--color-info: #38bdf8;
|
|
67
|
+
--color-danger: #f97316;
|
|
48
68
|
}
|
|
49
69
|
```
|
|
50
70
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Containment/Chip/states.chip.ts"],"names":["normalized"],"mappings":"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","file":"chunk-4CYM2UM3.js","sourcesContent":["import { iconBaseClasses } from '@lindle/linoardo/globals';\nimport { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { ChipSize, ChipVariant } from './types.chip';\n\nexport const chipBaseClasses =\n 'inline-flex items-center gap-1.5 border font-medium leading-tight transition-all duration-200 select-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2';\n\nexport const chipSizeClasses: Record<ChipSize, string> = {\n 'x-small': 'text-[0.65rem] px-2 py-0.5 min-h-[1.25rem]',\n small: 'text-xs px-3 py-1 min-h-[1.5rem]',\n medium: 'text-sm px-4 py-1.5 min-h-[2rem]',\n large: 'text-base px-5 py-2 min-h-[2.5rem]',\n 'x-large': 'text-lg px-6 py-2.5 min-h-[2.75rem]'\n};\n\nexport const closeButtonClasses =\n 'ml-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-transparent text-current/70 transition-colors duration-200 hover:bg-current/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/30 focus-visible:ring-offset-2';\n\nconst blackAndWhitePaletteClasses = {\n solid: 'bg-black text-white border border-black hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white',\n outline:\n 'bg-white text-black border-2 border-black hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white',\n ghost:\n 'bg-neutral-200 text-black border border-transparent hover:bg-neutral-300 focus-visible:ring-black/20',\n text:\n 'bg-transparent text-black border border-transparent hover:bg-neutral-200 focus-visible:ring-black/20',\n filled:\n 'bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20',\n underlined:\n 'bg-transparent text-black border-0 border-b-2 border-black px-0 rounded-none hover:text-black/80 focus-visible:ring-black/20',\n sharp:\n 'rounded-none bg-black text-white border border-black hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white'\n} satisfies Record<ChipVariant, string>;\n\nconst paletteVariantClasses: Record<Palette, Record<ChipVariant, string>> = {\n primary: {\n solid: 'bg-primary text-white border border-primary hover:bg-primary/90',\n sharp: 'rounded-none bg-primary text-white border border-primary hover:bg-primary/90',\n outline: 'bg-transparent text-primary border border-primary hover:bg-primary/10',\n ghost: 'bg-primary/15 text-primary border border-transparent hover:bg-primary/25',\n text: 'bg-transparent text-primary border border-transparent hover:text-primary/80',\n filled: 'bg-primary/10 text-primary border border-primary/30 hover:bg-primary/20',\n underlined: 'bg-transparent text-primary border-0 border-b-2 border-primary px-0 rounded-none hover:text-primary/80',\n },\n neutral: {\n solid: 'bg-gray-900 text-white border border-gray-900 hover:bg-gray-800',\n sharp: 'rounded-none bg-gray-900 text-white border border-gray-900 hover:bg-gray-800',\n outline: 'bg-transparent text-gray-900 border border-gray-500 hover:bg-gray-100',\n ghost: 'bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200',\n text: 'bg-transparent text-gray-900 border border-transparent hover:text-gray-700',\n filled: 'bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300',\n underlined: 'bg-transparent text-gray-900 border-0 border-b-2 border-gray-500 px-0 rounded-none hover:text-gray-700',\n },\n info: {\n solid: 'bg-sky-500 text-white border border-sky-500 hover:bg-sky-600',\n sharp: 'rounded-none bg-sky-500 text-white border border-sky-500 hover:bg-sky-600',\n outline: 'bg-transparent text-sky-600 border border-sky-500 hover:bg-sky-50',\n ghost: 'bg-sky-100 text-sky-700 border border-transparent hover:bg-sky-200',\n text: 'bg-transparent text-sky-600 border border-transparent hover:text-sky-700',\n filled: 'bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200',\n underlined: 'bg-transparent text-sky-600 border-0 border-b-2 border-sky-500 px-0 rounded-none hover:text-sky-700',\n },\n success: {\n solid: 'bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600',\n sharp: 'rounded-none bg-emerald-500 text-white border border-emerald-500 hover:bg-emerald-600',\n outline: 'bg-transparent text-emerald-600 border border-emerald-500 hover:bg-emerald-50',\n ghost: 'bg-emerald-100 text-emerald-700 border border-transparent hover:bg-emerald-200',\n text: 'bg-transparent text-emerald-600 border border-transparent hover:text-emerald-700',\n filled: 'bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200',\n underlined:\n 'bg-transparent text-emerald-600 border-0 border-b-2 border-emerald-500 px-0 rounded-none hover:text-emerald-700',\n },\n warning: {\n solid: 'bg-amber-500 text-white border border-amber-500 hover:bg-amber-600',\n sharp: 'rounded-none bg-amber-500 text-white border border-amber-500 hover:bg-amber-600',\n outline: 'bg-transparent text-amber-700 border border-amber-500 hover:bg-amber-50',\n ghost: 'bg-amber-100 text-amber-800 border border-transparent hover:bg-amber-200',\n text: 'bg-transparent text-amber-700 border border-transparent hover:text-amber-800',\n filled: 'bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200',\n underlined:\n 'bg-transparent text-amber-700 border-0 border-b-2 border-amber-500 px-0 rounded-none hover:text-amber-800',\n },\n danger: {\n solid: 'bg-red-500 text-white border border-red-500 hover:bg-red-600',\n sharp: 'rounded-none bg-red-500 text-white border border-red-500 hover:bg-red-600',\n outline: 'bg-transparent text-red-600 border border-red-500 hover:bg-red-50',\n ghost: 'bg-red-100 text-red-700 border border-transparent hover:bg-red-200',\n text: 'bg-transparent text-red-600 border border-transparent hover:text-red-700',\n filled: 'bg-red-100 text-red-700 border border-red-200 hover:bg-red-200',\n underlined: 'bg-transparent text-red-600 border-0 border-b-2 border-red-500 px-0 rounded-none hover:text-red-700',\n },\n surface: {\n solid: 'bg-white text-gray-900 border border-gray-200 hover:bg-gray-50',\n sharp: 'rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50',\n outline: 'bg-transparent text-gray-900 border border-gray-300 hover:bg-gray-50',\n ghost: 'bg-gray-100 text-gray-900 border border-transparent hover:bg-gray-200',\n text: 'bg-transparent text-gray-900 border border-transparent hover:text-gray-600',\n filled: 'bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white',\n underlined: 'bg-transparent text-gray-900 border-0 border-b-2 border-gray-400 px-0 rounded-none hover:text-gray-600',\n },\n bw: blackAndWhitePaletteClasses\n};\n\nexport const resolveVariantClass = (variant: ChipVariant, palette: Palette) => {\n const variants = paletteVariantClasses[palette] ?? paletteVariantClasses.primary;\n return variants[variant] ?? variants.solid;\n};\n\nexport const resolveIconClassName = (icon?: PropIcon) => {\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] ?? [normalizedLibrary];\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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Form/Switch/index.tsx"],"names":[],"mappings":";;;;;AAKA,IAAM,UAAA,GAAyC;AAAA,EAC7C,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ,UAAA;AAAA,EACR,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,UAAA,GAAyC;AAAA,EAC7C,KAAA,EAAO,SAAA;AAAA,EACP,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,cAAA,GAA6C;AAAA,EACjD,KAAA,EAAO,eAAA;AAAA,EACP,MAAA,EAAQ,eAAA;AAAA,EACR,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,mBAAA,GAA6E;AAAA,EACjF,OAAA,EAAS,EAAE,MAAA,EAAQ,YAAA,EAAc,UAAU,aAAA,EAAc;AAAA,EACzD,OAAA,EAAS,EAAE,MAAA,EAAQ,aAAA,EAAe,UAAU,aAAA,EAAc;AAAA,EAC1D,IAAA,EAAM,EAAE,MAAA,EAAQ,YAAA,EAAc,UAAU,aAAA,EAAc;AAAA,EACtD,OAAA,EAAS,EAAE,MAAA,EAAQ,gBAAA,EAAkB,UAAU,aAAA,EAAc;AAAA,EAC7D,OAAA,EAAS,EAAE,MAAA,EAAQ,cAAA,EAAgB,UAAU,aAAA,EAAc;AAAA,EAC3D,MAAA,EAAQ,EAAE,MAAA,EAAQ,YAAA,EAAc,UAAU,aAAA,EAAc;AAAA,EACxD,OAAA,EAAS,EAAE,MAAA,EAAQ,aAAA,EAAe,UAAU,aAAA,EAAc;AAAA,EAC1D,EAAA,EAAI,EAAE,MAAA,EAAQ,UAAA,EAAY,UAAU,aAAA;AACtC,CAAA;AAEA,IAAM,gBAAA,GAA4C;AAAA,EAChD,OAAA,EAAS,oCAAA;AAAA,EACT,OAAA,EAAS,kCAAA;AAAA,EACT,IAAA,EAAM,iCAAA;AAAA,EACN,OAAA,EAAS,qCAAA;AAAA,EACT,OAAA,EAAS,mCAAA;AAAA,EACT,MAAA,EAAQ,iCAAA;AAAA,EACR,OAAA,EAAS,qCAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,kBAAA,GAA8C;AAAA,EAClD,OAAA,EAAS,0DAAA;AAAA,EACT,OAAA,EAAS,yDAAA;AAAA,EACT,IAAA,EAAM,yDAAA;AAAA,EACN,OAAA,EAAS,8DAAA;AAAA,EACT,OAAA,EAAS,4DAAA;AAAA,EACT,MAAA,EAAQ,yDAAA;AAAA,EACR,OAAA,EAAS,yDAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAKA,IAAM,MAAA,GAAS,UAAA;AAAA,EACb,CACE;AAAA,IACE,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,QAAA;AAAA,IACP,KAAA;AAAA,IACA,WAAA;AAAA,IACA,gBAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,YAAA,GAAe,mBAAA,CAAoB,KAAK,CAAA,IAAK,mBAAA,CAAoB,OAAA;AACvE,IAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,KAAK,CAAA,IAAK,gBAAA,CAAiB,OAAA;AAC/D,IAAA,MAAM,WAAA,GAAc,kBAAA,CAAmB,KAAK,CAAA,IAAK,kBAAA,CAAmB,OAAA;AACpE,IAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,IAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,QAAA;AAAA,MAC5C,OAAA,CAAA,CAAS,YAAA,GAAe,OAAA,GAAU,cAAA,KAAmB,KAAK;AAAA,KAC5D;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,kBAAA,CAAmB,OAAA,CAAQ,OAAO,CAAC,CAAA;AAAA,MACrC;AAAA,IACF,CAAA,EAAG,CAAC,OAAA,EAAS,YAAY,CAAC,CAAA;AAE1B,IAAA,MAAM,cAAA,GAAiB,YAAA,GAAe,OAAA,CAAQ,OAAO,CAAA,GAAI,eAAA;AAEzD,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAyC;AAC7D,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,kBAAA,CAAmB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,MACzC;AACA,MAAA,QAAA,GAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,IAAI,CAAA,IAAK,UAAA,CAAW,MAAA;AACtD,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,IAAI,CAAA,IAAK,UAAA,CAAW,MAAA;AACtD,IAAA,MAAM,eAAA,GAAkB,cAAA,CAAe,IAAI,CAAA,IAAK,cAAA,CAAe,MAAA;AAE/D,IAAA,MAAM,YAAA,GAAe,WAAW,+BAAA,GAAkC,gBAAA;AAElE,IAAA,uBACE,IAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,OAAA,CAAQ,qCAAA,EAAuC,YAAA,EAAc,gBAAgB,CAAA;AAAA,QAExF,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,mCAAA,EACd,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACE,GAAG,IAAA;AAAA,gBACJ,IAAA,EAAK,UAAA;AAAA,gBACL,GAAA;AAAA,gBACA,OAAA,EAAS,cAAA;AAAA,gBACT,QAAA,EAAU,YAAA;AAAA,gBACV,QAAA;AAAA,gBACA,SAAA,EAAU;AAAA;AAAA,aACZ;AAAA,4BACA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,OAAA;AAAA,kBACT,0EAAA;AAAA,kBACA,cAAA;AAAA,kBACA,cAAA,GAAiB,YAAA,CAAa,MAAA,GAAS,YAAA,CAAa,QAAA;AAAA,kBACpD,QAAA,IAAY,aAAA;AAAA,kBACZ,4DAAA;AAAA,kBACA,UAAA;AAAA,kBACA;AAAA,iBACF;AAAA,gBACA,aAAA,EAAW,IAAA;AAAA,gBAEX,QAAA,kBAAA,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,OAAA;AAAA,sBACT,oHAAA;AAAA,sBACA,cAAA;AAAA,sBACA,cAAA,IAAkB,eAAA;AAAA,sBAClB,cAAA,IAAkB,WAAA;AAAA,sBAClB,QAAA,IAAY;AAAA;AACd;AAAA;AACF;AAAA;AACF,WAAA,EACF,CAAA;AAAA,UAAA,CAEE,KAAA,IAAS,gCACT,IAAA,CAAC,MAAA,EAAA,EAAK,WAAW,OAAA,CAAQ,6BAAA,EAA+B,cAAc,CAAA,EACnE,QAAA,EAAA;AAAA,YAAA,KAAA,oBAAS,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EAAqC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,YACpE,WAAA,oBAAe,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAyB,QAAA,EAAA,WAAA,EAAY;AAAA,WAAA,EACvE;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF,CAAA;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AAErB,IAAO,cAAA,GAAQ","file":"chunk-5LWU5T2C.js","sourcesContent":["import { forwardRef, type ChangeEvent, useEffect, useState } from 'react';\nimport type { Palette } from '@lindle/linoardo/global.types';\nimport { twMerge } from 'tailwind-merge';\nimport type { SwitchProps, SwitchSize } from './types.switch';\n\nconst trackSizes: Record<SwitchSize, string> = {\n small: 'w-10 h-6',\n medium: 'w-12 h-7',\n large: 'w-14 h-8'\n};\n\nconst thumbSizes: Record<SwitchSize, string> = {\n small: 'w-5 h-5',\n medium: 'w-6 h-6',\n large: 'w-7 h-7'\n};\n\nconst thumbTranslate: Record<SwitchSize, string> = {\n small: 'translate-x-4',\n medium: 'translate-x-5',\n large: 'translate-x-6'\n};\n\nconst paletteTrackClasses: Record<Palette, { active: string; inactive: string }> = {\n primary: { active: 'bg-primary', inactive: 'bg-gray-300' },\n neutral: { active: 'bg-gray-600', inactive: 'bg-gray-300' },\n info: { active: 'bg-sky-500', inactive: 'bg-gray-300' },\n success: { active: 'bg-emerald-500', inactive: 'bg-gray-300' },\n warning: { active: 'bg-amber-500', inactive: 'bg-gray-300' },\n danger: { active: 'bg-red-500', inactive: 'bg-gray-300' },\n surface: { active: 'bg-gray-900', inactive: 'bg-gray-300' },\n bw: { active: 'bg-black', inactive: 'bg-gray-200' }\n};\n\nconst focusRingClasses: Record<Palette, string> = {\n primary: 'peer-focus-visible:ring-primary/40',\n neutral: 'peer-focus-visible:ring-gray-400',\n info: 'peer-focus-visible:ring-sky-400',\n success: 'peer-focus-visible:ring-emerald-400',\n warning: 'peer-focus-visible:ring-amber-400',\n danger: 'peer-focus-visible:ring-red-400',\n surface: 'peer-focus-visible:ring-gray-800/70',\n bw: 'peer-focus-visible:ring-black/50'\n};\n\nconst thumbActiveClasses: Record<Palette, string> = {\n primary: 'border-primary shadow-[0_4px_12px_rgba(99,102,241,0.35)]',\n neutral: 'border-gray-600 shadow-[0_4px_12px_rgba(75,85,99,0.35)]',\n info: 'border-sky-500 shadow-[0_4px_12px_rgba(2,132,199,0.32)]',\n success: 'border-emerald-500 shadow-[0_4px_12px_rgba(16,185,129,0.32)]',\n warning: 'border-amber-500 shadow-[0_4px_12px_rgba(245,158,11,0.32)]',\n danger: 'border-red-500 shadow-[0_4px_12px_rgba(239,68,68,0.32)]',\n surface: 'border-gray-900 shadow-[0_4px_12px_rgba(15,23,42,0.32)]',\n bw: 'border-black shadow-[0_4px_12px_rgba(0,0,0,0.32)]'\n};\n\n/**\n * Toggle switch supporting controlled/uncontrolled usage, palette colors and size tokens.\n */\nconst Switch = forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n color = 'primary',\n size = 'medium',\n label,\n description,\n wrapperClassName,\n className,\n labelClassName,\n disabled,\n onChange,\n checked,\n defaultChecked,\n ...rest\n },\n ref\n ) => {\n const paletteTrack = paletteTrackClasses[color] ?? paletteTrackClasses.primary;\n const focusClass = focusRingClasses[color] ?? focusRingClasses.primary;\n const thumbActive = thumbActiveClasses[color] ?? thumbActiveClasses.primary;\n const isControlled = checked !== undefined;\n const [internalChecked, setInternalChecked] = useState<boolean>(\n Boolean((isControlled ? checked : defaultChecked) ?? false)\n );\n\n useEffect(() => {\n if (isControlled) {\n setInternalChecked(Boolean(checked));\n }\n }, [checked, isControlled]);\n\n const currentChecked = isControlled ? Boolean(checked) : internalChecked;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(event.target.checked);\n }\n onChange?.(event);\n };\n\n const sizeTrackClass = trackSizes[size] ?? trackSizes.medium;\n const sizeThumbClass = thumbSizes[size] ?? thumbSizes.medium;\n const thumbShiftClass = thumbTranslate[size] ?? thumbTranslate.medium;\n\n const pointerClass = disabled ? 'cursor-not-allowed opacity-60' : 'cursor-pointer';\n\n return (\n <label\n className={twMerge('flex items-center gap-3 select-none', pointerClass, wrapperClassName)}\n >\n <span className='relative inline-flex items-center'>\n <input\n {...rest}\n type='checkbox'\n ref={ref}\n checked={currentChecked}\n onChange={handleChange}\n disabled={disabled}\n className='peer sr-only'\n />\n <span\n className={twMerge(\n 'block rounded-full border border-transparent transition-all duration-200',\n sizeTrackClass,\n currentChecked ? paletteTrack.active : paletteTrack.inactive,\n disabled && 'bg-gray-200',\n 'peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2',\n focusClass,\n className\n )}\n aria-hidden\n >\n <span\n className={twMerge(\n 'absolute left-0.5 top-0.5 rounded-full bg-white shadow-md border border-gray-200 transition-transform duration-200',\n sizeThumbClass,\n currentChecked && thumbShiftClass,\n currentChecked && thumbActive,\n disabled && 'border-gray-300'\n )}\n />\n </span>\n </span>\n\n {(label || description) && (\n <span className={twMerge('flex flex-col leading-tight', labelClassName)}>\n {label && <span className='text-sm font-medium text-gray-900'>{label}</span>}\n {description && <span className='text-xs text-gray-600'>{description}</span>}\n </span>\n )}\n </label>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Containment/ExpansionPanel/context.ts","../src/Containment/ExpansionPanel/ExpansionPanelItem.tsx"],"names":[],"mappings":"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","file":"chunk-AUVYU7M5.js","sourcesContent":["import { cloneElement, isValidElement } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\n\nimport type { ExpansionPanelContextValue } from './types.expansion-panel';\n\nexport const EXPANSION_PANEL_CONTEXT_PROP = '__expansionPanelContext' as const;\nconst EXPANSION_PANEL_ITEM_MARKER = '__isExpansionPanelItem';\n\ntype MarkerTarget = Record<string | number | symbol, unknown> & {\n type?: unknown;\n};\n\ntype ElementProps = Record<string | number | symbol, unknown> & {\n children?: ReactNode;\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)[EXPANSION_PANEL_ITEM_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\nconst traverseNode = (\n node: ReactNode,\n value: ExpansionPanelContextValue\n): { node: ReactNode; changed: boolean } => {\n if (Array.isArray(node)) {\n let changed = false;\n const nextArray = node.map(child => {\n const result = traverseNode(child, value);\n if (result.changed) {\n changed = true;\n }\n return result.node;\n });\n return { node: changed ? nextArray : node, changed };\n }\n\n if (\n node === null ||\n node === undefined ||\n typeof node === 'boolean' ||\n typeof node === 'string' ||\n typeof node === 'number'\n ) {\n return { node, changed: false };\n }\n\n if (!isValidElement<ElementProps>(node)) {\n return { node, changed: false };\n }\n\n const element = node as ReactElement<ElementProps>;\n\n const { node: mappedChildren, changed: childrenChanged } = traverseNode(\n element.props.children,\n value\n );\n const shouldInject = hasMarker(element.type);\n\n if (!shouldInject && !childrenChanged) {\n return { node, changed: false };\n }\n\n const injectedProps = shouldInject\n ? ({ [EXPANSION_PANEL_CONTEXT_PROP]: value } as Partial<ElementProps>)\n : undefined;\n const cloned =\n mappedChildren === undefined\n ? cloneElement(element, injectedProps)\n : cloneElement(element, injectedProps, mappedChildren);\n\n return { node: cloned, changed: true };\n};\n\nexport const injectExpansionPanelContext = (\n children: ReactNode,\n value: ExpansionPanelContextValue\n): ReactNode => traverseNode(children, value).node;\n\nexport const markExpansionPanelItem = (component: unknown) => {\n if (typeof component !== 'function' && (typeof component !== 'object' || component === null)) {\n return;\n }\n\n (component as MarkerTarget)[EXPANSION_PANEL_ITEM_MARKER] = true;\n};\n","import { forwardRef } from 'react';\nimport type { Ref } from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport { markExpansionPanelItem } from './context';\nimport type {\n ExpansionPanelDensity,\n ExpansionPanelItemProps,\n ExpansionPanelContextValue\n} from './types.expansion-panel';\nimport type { Palette } from '@lindle/linoardo/global.types';\n\nconst densityClasses: Record<ExpansionPanelDensity, string> = {\n comfortable: 'py-5',\n default: 'py-4',\n compact: 'py-3'\n};\n\nconst roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl'\n};\n\nconst itemVariantClasses = {\n elevated: 'bg-white border border-gray-200 shadow-sm shadow-gray-900/5',\n outlined: 'bg-white border border-gray-200',\n tonal: 'bg-gray-50 border border-gray-100',\n plain: 'bg-transparent border border-transparent'\n};\n\nconst accentClasses: Record<Palette, { text: string; bg: string; border: string }> = {\n primary: { text: 'text-primary', bg: 'bg-primary/5', border: 'border-primary/30' },\n neutral: { text: 'text-gray-900', bg: 'bg-gray-100', border: 'border-gray-200' },\n info: { text: 'text-sky-600', bg: 'bg-sky-50', border: 'border-sky-200' },\n success: { text: 'text-emerald-600', bg: 'bg-emerald-50', border: 'border-emerald-200' },\n warning: { text: 'text-amber-600', bg: 'bg-amber-50', border: 'border-amber-200' },\n danger: { text: 'text-red-600', bg: 'bg-red-50', border: 'border-red-200' },\n surface: { text: 'text-gray-900', bg: 'bg-gray-100', border: 'border-gray-200' },\n bw: { text: 'text-gray-900', bg: 'bg-gray-100', border: 'border-gray-200' }\n};\n\nlet uniqueIdCounter = 0;\nconst generateId = (prefix: string) => `${prefix}-${++uniqueIdCounter}`;\n\ntype ForwardedRef = Ref<HTMLDivElement>;\n\ninterface ExpansionPanelItemInnerProps extends ExpansionPanelItemProps {\n forwardedRef?: ForwardedRef;\n}\n\n/**\n * Single expandable section used inside `ExpansionPanel`, rendered with a CSS-only toggle.\n */\nconst ExpansionPanelItemInner = (props: ExpansionPanelItemInnerProps) => {\n const {\n value,\n title,\n subtitle,\n text,\n prepend,\n append,\n expandIcon,\n collapseIcon,\n hideToggleIcon = false,\n headerClassName,\n contentClassName,\n className,\n disabled = false,\n children,\n color: colorOverride,\n forwardedRef,\n __expansionPanelContext,\n ...rest\n } = props;\n\n const context: ExpansionPanelContextValue | null = __expansionPanelContext ?? null;\n const safeValue =\n typeof value === 'string' || typeof value === 'number' ? String(value) : null;\n const idBase = safeValue ?? generateId('expansion-panel');\n const inputId = `expansion-panel-toggle-${idBase}`;\n const density = context?.density ?? 'default';\n const color = colorOverride ?? context?.color ?? 'primary';\n const divider = context?.divider ?? true;\n const variant = context?.variant ?? 'elevated';\n const rounded = context?.rounded ?? 'lg';\n const isControlled = context?.controlled ?? false;\n const accent = accentClasses[color] ?? accentClasses.primary;\n const isExpanded =\n value !== null && value !== undefined\n ? context?.expandedValues.includes(value) ?? false\n : false;\n\n const rootSurface = divider ? 'bg-transparent border-0 shadow-none' : itemVariantClasses[variant];\n const shapeClass = divider ? undefined : roundedClasses[rounded] ?? roundedClasses.lg;\n const densityPadding = densityClasses[density] ?? densityClasses.default;\n const disabledClass = disabled ? 'cursor-not-allowed opacity-60' : 'cursor-pointer';\n const titleClass = isExpanded ? accent.text : undefined;\n const activeBorderClass = twMerge(\n 'border-l-2 border-transparent',\n isExpanded ? accent.border : undefined\n );\n const defaultToggleIcon = (\n <i\n className='mdi mdi-chevron-down text-lg leading-none transition-transform duration-200'\n aria-hidden\n />\n );\n\n const hasContent = Boolean(children ?? text);\n const toggleIconNode = hideToggleIcon\n ? null\n : isExpanded && collapseIcon\n ? collapseIcon\n : expandIcon ?? defaultToggleIcon;\n\n const shouldRotateDefaultIcon = !expandIcon && !collapseIcon && !hideToggleIcon;\n const toggleWrapperClass = twMerge(\n 'expansion-panel-item__icon ml-3 flex h-6 w-6 items-center justify-center text-gray-500 transition-transform duration-200',\n shouldRotateDefaultIcon && isExpanded ? 'rotate-180' : undefined\n );\n\n return (\n <div\n {...rest}\n ref={forwardedRef}\n className={twMerge(\n 'expansion-panel-item group flex flex-col overflow-hidden transition-colors duration-200',\n rootSurface,\n shapeClass,\n className\n )}\n data-state={isExpanded ? 'open' : 'closed'}\n data-disabled={disabled || undefined}\n >\n <input\n id={inputId}\n type='checkbox'\n className='expansion-panel-item__toggle'\n {...(isControlled ? { checked: isExpanded, readOnly: true } : { defaultChecked: isExpanded })}\n disabled={disabled}\n />\n <label\n htmlFor={inputId}\n className={twMerge(\n 'expansion-panel-item__header flex w-full list-none items-center gap-4 px-4 text-left',\n densityPadding,\n disabledClass,\n isExpanded ? accent.bg : undefined,\n headerClassName\n )}\n aria-disabled={disabled || undefined}\n data-state={isExpanded ? 'open' : 'closed'}\n >\n {prepend && (\n <span className='flex h-10 w-10 items-center justify-center text-gray-500'>\n {prepend}\n </span>\n )}\n <span className='flex min-w-0 flex-1 flex-col gap-0.5 text-left'>\n {title && (\n <span className={twMerge('truncate font-medium text-gray-900', titleClass)}>\n {title}\n </span>\n )}\n {subtitle && <span className='text-sm text-gray-500'>{subtitle}</span>}\n </span>\n {append && (\n <span className='ml-auto flex items-center gap-2 text-sm text-gray-500'>{append}</span>\n )}\n {!hideToggleIcon && <span className={toggleWrapperClass}>{toggleIconNode}</span>}\n </label>\n {hasContent && (\n <div\n className='expansion-panel-item__content overflow-hidden border-t border-gray-100'\n data-state={isExpanded ? 'open' : 'closed'}\n >\n <div\n className={twMerge(\n 'expansion-panel-item__body min-h-0 px-4 pt-0 text-sm text-gray-600',\n activeBorderClass,\n contentClassName\n )}\n >\n {children ?? text}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nconst ExpansionPanelItem = forwardRef<HTMLDivElement, ExpansionPanelItemProps>((props, ref) => (\n <ExpansionPanelItemInner {...props} forwardedRef={ref} />\n));\n\nExpansionPanelItem.displayName = 'ExpansionPanelItem';\nmarkExpansionPanelItem(ExpansionPanelItem);\n\nexport default ExpansionPanelItem;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Containment/Masonry/index.tsx"],"names":[],"mappings":"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","file":"chunk-HAXGOTZO.js","sourcesContent":["import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { MasonryComponent, MasonryProps, MasonryRenderItem } from './types.masonry';\n\nconst masonryBaseClass = 'masonry-grid w-full';\nconst itemBaseClass = 'masonry-item block break-inside-avoid';\n\nconst MasonryBase = <T,>(props: MasonryProps<T>, ref: React.ForwardedRef<HTMLDivElement>) => {\n const {\n items,\n renderItem,\n getKey,\n column = 2,\n columnWidth,\n maxColumn,\n gutter = 16,\n className,\n itemClassName,\n itemStyle,\n children,\n style,\n role = 'list',\n ...rest\n } = props;\n\n const resolvedGutter = toCssLength(gutter);\n const columnCount = resolveColumnCount(column, maxColumn, Boolean(columnWidth));\n\n const layoutStyle: React.CSSProperties = {\n columnGap: resolvedGutter,\n columnCount,\n columnWidth: columnWidth ? toCssLength(columnWidth) : undefined,\n columnFill: 'balance',\n ...style\n };\n\n const wrapItem = (content: React.ReactNode, key: React.Key) => (\n <div\n key={key}\n className={twMerge(itemBaseClass, itemClassName)}\n style={{ breakInside: 'avoid', marginBottom: resolvedGutter, width: '100%', ...itemStyle }}\n >\n {content}\n </div>\n );\n\n const renderedItems =\n items && items.length\n ? items.map((item, index) => {\n const content = resolveItemContent(item, index, renderItem);\n return wrapItem(content, resolveItemKey(item, index, getKey));\n })\n : React.Children.map(children, (child, index) => wrapItem(child, resolveChildKey(child, index))) ?? null;\n\n return (\n <div {...rest} ref={ref} role={role} className={twMerge(masonryBaseClass, className)} style={layoutStyle}>\n {renderedItems}\n </div>\n );\n};\n\nconst Masonry = React.forwardRef(MasonryBase) as MasonryComponent;\n\nMasonry.displayName = 'Masonry';\n\nexport type { MasonryProps, MasonryRenderItem } from './types.masonry';\nexport default Masonry;\n\nfunction toCssLength(value?: number | string) {\n if (value === undefined) return undefined;\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nfunction normalizeColumns(value?: number) {\n if (value === undefined) return undefined;\n if (!Number.isFinite(value)) return undefined;\n return Math.max(1, Math.floor(value));\n}\n\nfunction resolveColumnCount(column?: number, maxColumn?: number, hasColumnWidth?: boolean) {\n const normalizedMax = normalizeColumns(maxColumn);\n if (hasColumnWidth) {\n return normalizedMax;\n }\n\n const normalizedColumn = normalizeColumns(column);\n\n if (normalizedColumn && normalizedMax) {\n return Math.min(normalizedColumn, normalizedMax);\n }\n\n return normalizedColumn ?? normalizedMax;\n}\n\nfunction resolveItemKey<T>(item: T, index: number, getKey?: (item: T, index: number) => React.Key) {\n if (getKey) return getKey(item, index);\n if (React.isValidElement(item) && item.key != null) {\n return item.key;\n }\n return index;\n}\n\nfunction resolveChildKey(child: React.ReactNode, index: number) {\n if (React.isValidElement(child) && child.key != null) {\n return child.key;\n }\n return index;\n}\n\nfunction resolveItemContent<T>(item: T, index: number, renderItem?: MasonryRenderItem<T>) {\n if (renderItem) {\n return renderItem(item, index);\n }\n return item as React.ReactNode;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Miscellaneous/Icon/index.tsx"],"names":[],"mappings":";;;;AAaA,IAAM,WAAA,GAA0C;AAAA,EAC9C,SAAA,EAAW,SAAA;AAAA,EACX,KAAA,EAAO,SAAA;AAAA,EACP,MAAA,EAAQ,WAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,SAAA,EAAW;AACb,CAAA;AAEA,IAAM,YAAA,GAAwC;AAAA,EAC5C,OAAA,EAAS,cAAA;AAAA,EACT,OAAA,EAAS,eAAA;AAAA,EACT,IAAA,EAAM,cAAA;AAAA,EACN,OAAA,EAAS,kBAAA;AAAA,EACT,OAAA,EAAS,gBAAA;AAAA,EACT,MAAA,EAAQ,cAAA;AAAA,EACR,OAAA,EAAS,eAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAKA,IAAM,IAAA,GAA4B,CAAC,EAAE,SAAA,EAAW,MAAM,IAAA,EAAM,KAAA,EAAO,GAAG,IAAA,EAAK,KAAM;AAC/E,EAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAkB;AAC1C,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,EAAA;AAAA,IACT;AAEA,IAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AACzB,MAAA,OAAO,OAAA;AAAA,IACT;AAEA,IAAA,OAAO,QAAQ,UAAA,CAAW,MAAM,CAAA,GAAI,OAAA,GAAU,OAAO,OAAO,CAAA,CAAA;AAAA,EAC9D,CAAA;AAEA,EAAA,IAAI,SAAA,GAAoB,EAAA;AACxB,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,SAAA,GAAY,iBAAiB,IAAI,CAAA;AAAA,EACnC,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AAC9B,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,IAAA;AACtB,IAAA,IAAI,UAAU,KAAA,EAAO;AACnB,MAAA,SAAA,GAAY,iBAAiB,IAAI,CAAA;AAAA,IACnC;AAAA,EACF;AACA,EAAA,MAAM,SAAA,GAAY,KAAA;AAClB,EAAA,MAAM,YAAY,IAAA,GAAO,WAAA,CAAY,IAAI,CAAA,IAAK,YAAY,MAAA,GAAS,MAAA;AACnE,EAAA,MAAM,aAAa,KAAA,GAAQ,YAAA,CAAa,KAAK,CAAA,IAAK,aAAa,OAAA,GAAU,MAAA;AAEzE,EAAA,uBACE,GAAA,CAAC,GAAA,EAAA,EAAG,GAAG,IAAA,EAAM,SAAA,EAAW,OAAA,CAAQ,SAAA,EAAW,SAAA,EAAW,SAAA,EAAW,UAAA,EAAY,SAAS,CAAA,EAAG,CAAA;AAE7F,CAAA;AAEA,IAAO,YAAA,GAAQ","file":"chunk-HEXJCQRO.js","sourcesContent":["import { GlobalSize, Palette } from '@lindle/linoardo/global.types';\nimport { twMerge } from 'tailwind-merge';\n\ntype IconGroup = 'mdi';\n\ntype IconSet = [IconGroup, string];\n\ntype IconProps = {\n icon: string | IconSet;\n size?: GlobalSize;\n color?: Palette;\n} & React.HTMLAttributes<HTMLElement>;\n\nconst sizeClasses: Record<GlobalSize, string> = {\n 'x-small': 'text-xs',\n small: 'text-sm',\n medium: 'text-base',\n large: 'text-lg',\n 'x-large': 'text-2xl'\n};\n\nconst colorClasses: Record<Palette, string> = {\n primary: 'text-primary',\n neutral: 'text-gray-700',\n info: 'text-sky-600',\n success: 'text-emerald-600',\n warning: 'text-amber-600',\n danger: 'text-red-600',\n surface: 'text-gray-900',\n bw: 'text-black'\n};\n\n/**\n * Renders an icon from configured sets (currently MDI) via class-based glyphs.\n */\nconst Icon: React.FC<IconProps> = ({ className, icon, size, color, ...rest }) => {\n const normalizeMdiName = (value: string) => {\n const trimmed = value.trim();\n if (!trimmed) {\n return '';\n }\n\n if (trimmed.includes(' ')) {\n return trimmed;\n }\n\n return trimmed.startsWith('mdi-') ? trimmed : `mdi-${trimmed}`;\n };\n\n let iconValue: string = '';\n if (typeof icon === 'string') {\n iconValue = normalizeMdiName(icon);\n } else if (Array.isArray(icon)) {\n const [group, name] = icon;\n if (group === 'mdi') {\n iconValue = normalizeMdiName(name);\n }\n }\n const classBase = 'mdi';\n const sizeClass = size ? sizeClasses[size] ?? sizeClasses.medium : undefined;\n const colorClass = color ? colorClasses[color] ?? colorClasses.primary : undefined;\n\n return (\n <i {...rest} className={twMerge(classBase, iconValue, sizeClass, colorClass, className)}></i>\n );\n};\n\nexport default Icon;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Info/Alert/index.tsx"],"names":[],"mappings":";;;;AASA,IAAM,QAA8B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,MAAK,KAAM;AACxE,EAAA,MAAM,SAAA,GAAY,6CAAA;AAElB,EAAA,uBACE,IAAA,CAAC,SAAK,GAAG,IAAA,EAAM,WAAW,OAAA,CAAQ,iCAAA,EAAmC,SAAS,CAAA,EAC5E,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,sBAAA,EACb,8BAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2BAA0B,CAAA,EACzC,CAAA;AAAA,wBACC,KAAA,EAAA,EAAI,SAAA,EAAW,QAAQ,YAAA,EAAc,SAAS,GAAI,QAAA,EAAS;AAAA,GAAA,EAC9D,CAAA;AAEJ,CAAA;AACA,IAAO,aAAA,GAAQ","file":"chunk-KQOR3C7E.js","sourcesContent":["import { twMerge } from 'tailwind-merge';\n\nexport type AlertProps = {\n children?: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Informational banner layout with icon column and message body.\n */\nconst Alert: React.FC<AlertProps> = ({ className, children, ...rest }) => {\n const classBase = 'text-center p-4 bg-neutral-200 rounded-md ';\n\n return (\n <div {...rest} className={twMerge('grid grid-cols-7 bg-neutral-200', className)}>\n <div className='col-span-1 pt-4 pl-4'>\n <i className='mdi mdi-google text-2xl'></i>\n </div>\n <div className={twMerge('col-span-6', classBase)}>{children}</div>\n </div>\n );\n};\nexport default Alert;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Containment/Dialog/index.tsx"],"names":[],"mappings":"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","file":"chunk-NJU7XT54.js","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { twMerge } from 'tailwind-merge';\n\nconst containerBaseClasses =\n 'fixed inset-0 z-[70] flex items-center justify-center p-4 sm:p-8 data-[state=closed]:pointer-events-none';\nconst overlayBaseClasses =\n 'absolute inset-0 bg-gray-900/55 backdrop-blur-[2px] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100';\nconst panelWrapperClasses =\n 'relative z-10 flex w-full max-h-[95vh] justify-center transition-transform transition-opacity duration-200 data-[state=closed]:translate-y-4 data-[state=closed]:opacity-0 data-[state=open]:translate-y-0 data-[state=open]:opacity-100';\nconst panelBaseClasses =\n 'pointer-events-auto w-full max-h-[90vh] overflow-auto rounded-2xl bg-white p-6 text-gray-900 shadow-2xl shadow-black/20 ring-1 ring-black/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40';\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 DialogProps extends React.HTMLAttributes<HTMLDivElement> {\n activator?: React.ReactNode;\n open?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n fullscreen?: boolean;\n maxWidth?: string | number;\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 * Layered dialog container supporting scrim, fullscreen mode and controlled open state.\n */\nconst Dialog = React.forwardRef<HTMLDivElement, DialogProps>((props, forwardedRef) => {\n const {\n activator,\n children,\n open = false,\n keepMounted = false,\n scrim = true,\n fullscreen = false,\n maxWidth = '32rem',\n width,\n onClose,\n containerClassName,\n overlayClassName,\n overlayProps,\n portal = true,\n portalContainer,\n className,\n style,\n role: roleProp = 'dialog',\n tabIndex = -1,\n id,\n ['aria-modal']: ariaModalProp,\n ...rest\n } = props;\n\n const state = open ? 'open' : 'closed';\n const shouldRenderDialog = keepMounted || open;\n const resolvedPortalContainer =\n portalContainer ?? (typeof document !== 'undefined' ? document.body : null);\n\n const resolvedStyle: React.CSSProperties = { ...style };\n if (fullscreen) {\n if (resolvedStyle.maxWidth === undefined) {\n resolvedStyle.maxWidth = 'none';\n }\n if (resolvedStyle.width === undefined) {\n resolvedStyle.width = '100%';\n }\n if (resolvedStyle.height === undefined) {\n resolvedStyle.height = '100%';\n }\n if (resolvedStyle.maxHeight === undefined) {\n resolvedStyle.maxHeight = '100%';\n }\n } else {\n if (resolvedStyle.maxWidth === undefined) {\n resolvedStyle.maxWidth = resolveSizeValue(maxWidth);\n }\n if (width !== undefined && resolvedStyle.width === undefined) {\n resolvedStyle.width = resolveSizeValue(width);\n }\n }\n\n const ariaModal =\n ariaModalProp ?? (roleProp === 'dialog' || roleProp === 'alertdialog' ? true : undefined);\n\n const {\n className: overlayExtraClassName,\n onClick: overlayOnClick,\n ...restOverlayProps\n } = overlayProps ?? {};\n\n const overlayNode =\n shouldRenderDialog && scrim ? (\n <div\n {...restOverlayProps}\n className={twMerge(overlayBaseClasses, overlayClassName, overlayExtraClassName)}\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 dialogNode = shouldRenderDialog ? (\n <div\n className={twMerge(containerBaseClasses, containerClassName)}\n data-state={state}\n aria-hidden={!open}\n >\n {overlayNode}\n <div\n className={twMerge(panelWrapperClasses, fullscreen ? 'h-full items-stretch' : 'mx-auto')}\n data-state={state}\n >\n <div\n {...rest}\n ref={forwardedRef}\n id={id}\n role={roleProp}\n tabIndex={tabIndex}\n aria-modal={ariaModal}\n className={twMerge(\n panelBaseClasses,\n fullscreen ? 'h-full w-full max-w-none rounded-none' : undefined,\n className\n )}\n style={resolvedStyle}\n data-state={state}\n >\n {children}\n </div>\n </div>\n </div>\n ) : null;\n\n const outputNode =\n portal && resolvedPortalContainer && dialogNode\n ? createPortal(dialogNode, resolvedPortalContainer)\n : dialogNode;\n\n return (\n <>\n {activator ? <div className='inline-flex'>{activator}</div> : null}\n {outputNode}\n </>\n );\n});\n\nDialog.displayName = 'Dialog';\n\nexport default Dialog;\n"]}
|