@lindle/linoardo 1.0.16 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ExpansionPanelItem-Bd6ZWGkR.d.cts +58 -0
- package/dist/ExpansionPanelItem-DOjgDeB6.d.ts +58 -0
- package/dist/button.cjs +214 -0
- package/dist/button.cjs.map +1 -0
- package/dist/button.d.cts +20 -0
- package/dist/button.d.ts +20 -0
- package/dist/button.js +4 -0
- package/dist/button.js.map +1 -0
- package/dist/card.cjs +87 -0
- package/dist/card.cjs.map +1 -0
- package/dist/card.d.cts +34 -0
- package/dist/card.d.ts +34 -0
- package/dist/card.js +3 -0
- package/dist/card.js.map +1 -0
- package/dist/chip.cjs +247 -0
- package/dist/chip.cjs.map +1 -0
- package/dist/chip.d.cts +368 -0
- package/dist/chip.d.ts +368 -0
- package/dist/chip.js +4 -0
- package/dist/chip.js.map +1 -0
- package/dist/chunk-32KFNI6K.js +114 -0
- package/dist/chunk-32KFNI6K.js.map +1 -0
- package/dist/chunk-5GY2JCBO.js +92 -0
- package/dist/chunk-5GY2JCBO.js.map +1 -0
- package/dist/chunk-AOHXZ7OM.js +126 -0
- package/dist/chunk-AOHXZ7OM.js.map +1 -0
- package/dist/chunk-E32P5AHO.js +125 -0
- package/dist/chunk-E32P5AHO.js.map +1 -0
- package/dist/chunk-GA6HSRN6.js +235 -0
- package/dist/chunk-GA6HSRN6.js.map +1 -0
- package/dist/chunk-IEILIKS2.js +8 -0
- package/dist/chunk-IEILIKS2.js.map +1 -0
- package/dist/chunk-N65GNKRG.js +143 -0
- package/dist/chunk-N65GNKRG.js.map +1 -0
- package/dist/chunk-PWK6MLZT.js +239 -0
- package/dist/chunk-PWK6MLZT.js.map +1 -0
- package/dist/chunk-PYG5SDNO.js +98 -0
- package/dist/chunk-PYG5SDNO.js.map +1 -0
- package/dist/chunk-QGQ66FJD.js +155 -0
- package/dist/chunk-QGQ66FJD.js.map +1 -0
- package/dist/chunk-SZU6OYLS.js +187 -0
- package/dist/chunk-SZU6OYLS.js.map +1 -0
- package/dist/chunk-U6NAIIDI.js +99 -0
- package/dist/chunk-U6NAIIDI.js.map +1 -0
- package/dist/chunk-V4BVJOSC.js +85 -0
- package/dist/chunk-V4BVJOSC.js.map +1 -0
- package/dist/chunk-XFPBICJG.js +127 -0
- package/dist/chunk-XFPBICJG.js.map +1 -0
- package/dist/dialog.cjs +121 -0
- package/dist/dialog.cjs.map +1 -0
- package/dist/dialog.d.cts +17 -0
- package/dist/dialog.d.ts +17 -0
- package/dist/dialog.js +3 -0
- package/dist/dialog.js.map +1 -0
- package/dist/expansion-panel/item.cjs +195 -0
- package/dist/expansion-panel/item.cjs.map +1 -0
- package/dist/expansion-panel/item.d.cts +3 -0
- package/dist/expansion-panel/item.d.ts +3 -0
- package/dist/expansion-panel/item.js +3 -0
- package/dist/expansion-panel/item.js.map +1 -0
- package/dist/expansion-panel.cjs +356 -0
- package/dist/expansion-panel.cjs.map +1 -0
- package/dist/expansion-panel.d.cts +8 -0
- package/dist/expansion-panel.d.ts +8 -0
- package/dist/expansion-panel.js +4 -0
- package/dist/expansion-panel.js.map +1 -0
- package/dist/global.types-E2uVLemv.d.cts +7 -0
- package/dist/global.types-E2uVLemv.d.ts +7 -0
- package/dist/index-Md3BuoGM.d.cts +32 -0
- package/dist/index-d_JuI06O.d.ts +32 -0
- package/dist/index.cjs +557 -160
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -549
- package/dist/index.d.ts +15 -549
- package/dist/index.js +14 -1330
- package/dist/index.js.map +1 -1
- package/dist/input.cjs +106 -0
- package/dist/input.cjs.map +1 -0
- package/dist/input.d.cts +22 -0
- package/dist/input.d.ts +22 -0
- package/dist/input.js +4 -0
- package/dist/input.js.map +1 -0
- package/dist/list/item.cjs +149 -0
- package/dist/list/item.cjs.map +1 -0
- package/dist/list/item.d.cts +3 -0
- package/dist/list/item.d.ts +3 -0
- package/dist/list/item.js +3 -0
- package/dist/list/item.js.map +1 -0
- package/dist/list.cjs +235 -0
- package/dist/list.cjs.map +1 -0
- package/dist/list.d.cts +17 -0
- package/dist/list.d.ts +17 -0
- package/dist/list.js +4 -0
- package/dist/list.js.map +1 -0
- package/dist/menu.cjs +177 -0
- package/dist/menu.cjs.map +1 -0
- package/dist/menu.d.cts +20 -0
- package/dist/menu.d.ts +20 -0
- package/dist/menu.js +3 -0
- package/dist/menu.js.map +1 -0
- package/dist/slider.cjs +128 -0
- package/dist/slider.cjs.map +1 -0
- package/dist/slider.d.cts +42 -0
- package/dist/slider.d.ts +42 -0
- package/dist/slider.js +3 -0
- package/dist/slider.js.map +1 -0
- package/dist/styles.css +334 -44
- package/dist/switch.cjs +145 -0
- package/dist/switch.cjs.map +1 -0
- package/dist/switch.d.cts +16 -0
- package/dist/switch.d.ts +16 -0
- package/dist/switch.js +3 -0
- package/dist/switch.js.map +1 -0
- package/dist/tooltip.cjs +136 -0
- package/dist/tooltip.cjs.map +1 -0
- package/dist/tooltip.d.cts +19 -0
- package/dist/tooltip.d.ts +19 -0
- package/dist/tooltip.js +3 -0
- package/dist/tooltip.js.map +1 -0
- package/package.json +67 -2
package/dist/switch.cjs
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var tailwindMerge = require('tailwind-merge');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
// src/Form/Switch/index.tsx
|
|
8
|
+
var trackSizes = {
|
|
9
|
+
small: "w-10 h-6",
|
|
10
|
+
medium: "w-12 h-7",
|
|
11
|
+
large: "w-14 h-8"
|
|
12
|
+
};
|
|
13
|
+
var thumbSizes = {
|
|
14
|
+
small: "w-5 h-5",
|
|
15
|
+
medium: "w-6 h-6",
|
|
16
|
+
large: "w-7 h-7"
|
|
17
|
+
};
|
|
18
|
+
var thumbTranslate = {
|
|
19
|
+
small: "translate-x-4",
|
|
20
|
+
medium: "translate-x-5",
|
|
21
|
+
large: "translate-x-6"
|
|
22
|
+
};
|
|
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" }
|
|
32
|
+
};
|
|
33
|
+
var focusRingClasses = {
|
|
34
|
+
primary: "peer-focus-visible:ring-primary/40",
|
|
35
|
+
neutral: "peer-focus-visible:ring-gray-400",
|
|
36
|
+
info: "peer-focus-visible:ring-sky-400",
|
|
37
|
+
success: "peer-focus-visible:ring-emerald-400",
|
|
38
|
+
warning: "peer-focus-visible:ring-amber-400",
|
|
39
|
+
danger: "peer-focus-visible:ring-red-400",
|
|
40
|
+
surface: "peer-focus-visible:ring-gray-800/70",
|
|
41
|
+
bw: "peer-focus-visible:ring-black/50"
|
|
42
|
+
};
|
|
43
|
+
var thumbActiveClasses = {
|
|
44
|
+
primary: "border-primary shadow-[0_4px_12px_rgba(99,102,241,0.35)]",
|
|
45
|
+
neutral: "border-gray-600 shadow-[0_4px_12px_rgba(75,85,99,0.35)]",
|
|
46
|
+
info: "border-sky-500 shadow-[0_4px_12px_rgba(2,132,199,0.32)]",
|
|
47
|
+
success: "border-emerald-500 shadow-[0_4px_12px_rgba(16,185,129,0.32)]",
|
|
48
|
+
warning: "border-amber-500 shadow-[0_4px_12px_rgba(245,158,11,0.32)]",
|
|
49
|
+
danger: "border-red-500 shadow-[0_4px_12px_rgba(239,68,68,0.32)]",
|
|
50
|
+
surface: "border-gray-900 shadow-[0_4px_12px_rgba(15,23,42,0.32)]",
|
|
51
|
+
bw: "border-black shadow-[0_4px_12px_rgba(0,0,0,0.32)]"
|
|
52
|
+
};
|
|
53
|
+
var Switch = react.forwardRef(
|
|
54
|
+
({
|
|
55
|
+
color = "primary",
|
|
56
|
+
size = "medium",
|
|
57
|
+
label,
|
|
58
|
+
description,
|
|
59
|
+
wrapperClassName,
|
|
60
|
+
className,
|
|
61
|
+
labelClassName,
|
|
62
|
+
disabled,
|
|
63
|
+
onChange,
|
|
64
|
+
checked,
|
|
65
|
+
defaultChecked,
|
|
66
|
+
...rest
|
|
67
|
+
}, ref) => {
|
|
68
|
+
const paletteTrack = paletteTrackClasses[color] ?? paletteTrackClasses.primary;
|
|
69
|
+
const focusClass = focusRingClasses[color] ?? focusRingClasses.primary;
|
|
70
|
+
const thumbActive = thumbActiveClasses[color] ?? thumbActiveClasses.primary;
|
|
71
|
+
const isControlled = checked !== void 0;
|
|
72
|
+
const [internalChecked, setInternalChecked] = react.useState(
|
|
73
|
+
Boolean((isControlled ? checked : defaultChecked) ?? false)
|
|
74
|
+
);
|
|
75
|
+
react.useEffect(() => {
|
|
76
|
+
if (isControlled) {
|
|
77
|
+
setInternalChecked(Boolean(checked));
|
|
78
|
+
}
|
|
79
|
+
}, [checked, isControlled]);
|
|
80
|
+
const currentChecked = isControlled ? Boolean(checked) : internalChecked;
|
|
81
|
+
const handleChange = (event) => {
|
|
82
|
+
if (!isControlled) {
|
|
83
|
+
setInternalChecked(event.target.checked);
|
|
84
|
+
}
|
|
85
|
+
onChange?.(event);
|
|
86
|
+
};
|
|
87
|
+
const sizeTrackClass = trackSizes[size] ?? trackSizes.medium;
|
|
88
|
+
const sizeThumbClass = thumbSizes[size] ?? thumbSizes.medium;
|
|
89
|
+
const thumbShiftClass = thumbTranslate[size] ?? thumbTranslate.medium;
|
|
90
|
+
const pointerClass = disabled ? "cursor-not-allowed opacity-60" : "cursor-pointer";
|
|
91
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: tailwindMerge.twMerge("flex items-center gap-3 select-none", pointerClass, wrapperClassName), children: [
|
|
92
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative inline-flex items-center", children: [
|
|
93
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
94
|
+
"input",
|
|
95
|
+
{
|
|
96
|
+
...rest,
|
|
97
|
+
type: "checkbox",
|
|
98
|
+
ref,
|
|
99
|
+
checked: currentChecked,
|
|
100
|
+
onChange: handleChange,
|
|
101
|
+
disabled,
|
|
102
|
+
className: "peer sr-only"
|
|
103
|
+
}
|
|
104
|
+
),
|
|
105
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
106
|
+
"span",
|
|
107
|
+
{
|
|
108
|
+
className: tailwindMerge.twMerge(
|
|
109
|
+
"block rounded-full border border-transparent transition-all duration-200",
|
|
110
|
+
sizeTrackClass,
|
|
111
|
+
currentChecked ? paletteTrack.active : paletteTrack.inactive,
|
|
112
|
+
disabled && "bg-gray-200",
|
|
113
|
+
"peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2",
|
|
114
|
+
focusClass,
|
|
115
|
+
className
|
|
116
|
+
),
|
|
117
|
+
"aria-hidden": true,
|
|
118
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
119
|
+
"span",
|
|
120
|
+
{
|
|
121
|
+
className: tailwindMerge.twMerge(
|
|
122
|
+
"absolute left-0.5 top-0.5 rounded-full bg-white shadow-md border border-gray-200 transition-transform duration-200",
|
|
123
|
+
sizeThumbClass,
|
|
124
|
+
currentChecked && thumbShiftClass,
|
|
125
|
+
currentChecked && thumbActive,
|
|
126
|
+
disabled && "border-gray-300"
|
|
127
|
+
)
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
)
|
|
132
|
+
] }),
|
|
133
|
+
(label || description) && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: tailwindMerge.twMerge("flex flex-col leading-tight", labelClassName), children: [
|
|
134
|
+
label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-900", children: label }),
|
|
135
|
+
description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-600", children: description })
|
|
136
|
+
] })
|
|
137
|
+
] });
|
|
138
|
+
}
|
|
139
|
+
);
|
|
140
|
+
Switch.displayName = "Switch";
|
|
141
|
+
var Switch_default = Switch;
|
|
142
|
+
|
|
143
|
+
module.exports = Switch_default;
|
|
144
|
+
//# sourceMappingURL=switch.cjs.map
|
|
145
|
+
//# sourceMappingURL=switch.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Form/Switch/index.tsx"],"names":["forwardRef","useState","useEffect","twMerge","jsxs","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\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 className={twMerge('flex items-center gap-3 select-none', pointerClass, wrapperClassName)}>\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"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { P as Palette } from './global.types-E2uVLemv.cjs';
|
|
3
|
+
|
|
4
|
+
type SwitchSize = 'small' | 'medium' | 'large';
|
|
5
|
+
|
|
6
|
+
declare const Switch: react.ForwardRefExoticComponent<Omit<react.InputHTMLAttributes<HTMLInputElement>, "type" | "size"> & {
|
|
7
|
+
color?: Palette;
|
|
8
|
+
size?: SwitchSize;
|
|
9
|
+
label?: React.ReactNode;
|
|
10
|
+
description?: React.ReactNode;
|
|
11
|
+
wrapperClassName?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
labelClassName?: string;
|
|
14
|
+
} & react.RefAttributes<HTMLInputElement>>;
|
|
15
|
+
|
|
16
|
+
export { Switch as default };
|
package/dist/switch.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { P as Palette } from './global.types-E2uVLemv.js';
|
|
3
|
+
|
|
4
|
+
type SwitchSize = 'small' | 'medium' | 'large';
|
|
5
|
+
|
|
6
|
+
declare const Switch: react.ForwardRefExoticComponent<Omit<react.InputHTMLAttributes<HTMLInputElement>, "type" | "size"> & {
|
|
7
|
+
color?: Palette;
|
|
8
|
+
size?: SwitchSize;
|
|
9
|
+
label?: React.ReactNode;
|
|
10
|
+
description?: React.ReactNode;
|
|
11
|
+
wrapperClassName?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
labelClassName?: string;
|
|
14
|
+
} & react.RefAttributes<HTMLInputElement>>;
|
|
15
|
+
|
|
16
|
+
export { Switch as default };
|
package/dist/switch.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"switch.js"}
|
package/dist/tooltip.cjs
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var tailwindMerge = require('tailwind-merge');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
function _interopNamespace(e) {
|
|
8
|
+
if (e && e.__esModule) return e;
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
26
|
+
|
|
27
|
+
// src/Containment/ToolTip/index.tsx
|
|
28
|
+
var tooltipBaseClasses = "absolute z-[60] max-w-xs rounded-lg border border-white/10 bg-gray-900 px-3 py-2 text-xs font-medium text-white shadow-lg shadow-black/30 ring-1 ring-black/40 transition-all duration-150";
|
|
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-lg shadow-black/20";
|
|
31
|
+
var resolveSizeValue = (value) => {
|
|
32
|
+
if (value === void 0) {
|
|
33
|
+
return void 0;
|
|
34
|
+
}
|
|
35
|
+
return typeof value === "number" ? `${value}px` : value;
|
|
36
|
+
};
|
|
37
|
+
var placementClasses = {
|
|
38
|
+
top: "bottom-full left-1/2 -translate-x-1/2 -translate-y-2 origin-bottom",
|
|
39
|
+
"top-start": "bottom-full left-0 -translate-y-2 origin-bottom-left",
|
|
40
|
+
"top-end": "bottom-full right-0 -translate-y-2 origin-bottom-right",
|
|
41
|
+
bottom: "top-full left-1/2 -translate-x-1/2 translate-y-2 origin-top",
|
|
42
|
+
"bottom-start": "top-full left-0 translate-y-2 origin-top-left",
|
|
43
|
+
"bottom-end": "top-full right-0 translate-y-2 origin-top-right",
|
|
44
|
+
left: "right-full top-1/2 -translate-y-1/2 -translate-x-2 origin-right",
|
|
45
|
+
"left-start": "right-full top-0 -translate-x-2 origin-top-right",
|
|
46
|
+
"left-end": "right-full bottom-0 -translate-x-2 origin-bottom-right",
|
|
47
|
+
right: "left-full top-1/2 -translate-y-1/2 translate-x-2 origin-left",
|
|
48
|
+
"right-start": "left-full top-0 translate-x-2 origin-top-left",
|
|
49
|
+
"right-end": "left-full bottom-0 translate-x-2 origin-bottom-left"
|
|
50
|
+
};
|
|
51
|
+
var arrowPlacementClasses = {
|
|
52
|
+
top: "left-1/2 top-full -translate-x-1/2 -translate-y-1/2",
|
|
53
|
+
"top-start": "left-4 top-full -translate-y-1/2",
|
|
54
|
+
"top-end": "right-4 top-full -translate-y-1/2",
|
|
55
|
+
bottom: "left-1/2 bottom-full -translate-x-1/2 translate-y-1/2",
|
|
56
|
+
"bottom-start": "left-4 bottom-full translate-y-1/2",
|
|
57
|
+
"bottom-end": "right-4 bottom-full translate-y-1/2",
|
|
58
|
+
left: "right-full top-1/2 -translate-y-1/2 translate-x-1/2",
|
|
59
|
+
"left-start": "right-full top-4 translate-x-1/2",
|
|
60
|
+
"left-end": "right-full bottom-4 translate-x-1/2",
|
|
61
|
+
right: "left-full top-1/2 -translate-y-1/2 -translate-x-1/2",
|
|
62
|
+
"right-start": "left-full top-4 -translate-x-1/2",
|
|
63
|
+
"right-end": "left-full bottom-4 -translate-x-1/2"
|
|
64
|
+
};
|
|
65
|
+
var ToolTip = React__namespace.forwardRef((props, forwardedRef) => {
|
|
66
|
+
const {
|
|
67
|
+
activator,
|
|
68
|
+
children,
|
|
69
|
+
placement = "top",
|
|
70
|
+
arrow = true,
|
|
71
|
+
disabled = false,
|
|
72
|
+
persistent = false,
|
|
73
|
+
showOnHover = true,
|
|
74
|
+
showOnFocus = true,
|
|
75
|
+
interactive = false,
|
|
76
|
+
keepMounted = false,
|
|
77
|
+
maxWidth = "18rem",
|
|
78
|
+
wrapperClassName,
|
|
79
|
+
className,
|
|
80
|
+
style,
|
|
81
|
+
id,
|
|
82
|
+
...rest
|
|
83
|
+
} = props;
|
|
84
|
+
const hasRenderableContent = children !== void 0 && children !== null;
|
|
85
|
+
const shouldEnableTriggers = !disabled && (persistent || showOnHover || showOnFocus);
|
|
86
|
+
const shouldRenderTooltip = hasRenderableContent && (shouldEnableTriggers || keepMounted);
|
|
87
|
+
const resolvedStyle = { ...style };
|
|
88
|
+
if (resolvedStyle.maxWidth === void 0) {
|
|
89
|
+
resolvedStyle.maxWidth = resolveSizeValue(maxWidth);
|
|
90
|
+
}
|
|
91
|
+
const baseVisibility = persistent ? "opacity-100 scale-100" : "opacity-0 scale-95";
|
|
92
|
+
const hoverClasses = !persistent && showOnHover ? " group-hover/tooltip:opacity-100 group-hover/tooltip:scale-100" : "";
|
|
93
|
+
const focusClasses = !persistent && showOnFocus ? " group-focus-within/tooltip:opacity-100 group-focus-within/tooltip:scale-100" : "";
|
|
94
|
+
const visibilityClasses = `${baseVisibility}${hoverClasses}${focusClasses}`;
|
|
95
|
+
const pointerClasses = (() => {
|
|
96
|
+
if (persistent) {
|
|
97
|
+
return "pointer-events-auto";
|
|
98
|
+
}
|
|
99
|
+
if (!interactive) {
|
|
100
|
+
return "pointer-events-none";
|
|
101
|
+
}
|
|
102
|
+
const classes = ["pointer-events-none"];
|
|
103
|
+
if (showOnHover) {
|
|
104
|
+
classes.push("group-hover/tooltip:pointer-events-auto");
|
|
105
|
+
}
|
|
106
|
+
if (showOnFocus) {
|
|
107
|
+
classes.push("group-focus-within/tooltip:pointer-events-auto");
|
|
108
|
+
}
|
|
109
|
+
return classes.join(" ");
|
|
110
|
+
})();
|
|
111
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: tailwindMerge.twMerge(wrapperBaseClasses, "group/tooltip", wrapperClassName), "data-disabled": disabled || void 0, children: [
|
|
112
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex max-w-full", children: activator }),
|
|
113
|
+
shouldRenderTooltip ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
114
|
+
"div",
|
|
115
|
+
{
|
|
116
|
+
...rest,
|
|
117
|
+
ref: forwardedRef,
|
|
118
|
+
role: "tooltip",
|
|
119
|
+
id,
|
|
120
|
+
"aria-hidden": persistent || disabled ? void 0 : true,
|
|
121
|
+
className: tailwindMerge.twMerge(tooltipBaseClasses, placementClasses[placement], visibilityClasses, pointerClasses, className),
|
|
122
|
+
style: resolvedStyle,
|
|
123
|
+
children: [
|
|
124
|
+
children,
|
|
125
|
+
arrow && /* @__PURE__ */ jsxRuntime.jsx("span", { className: tailwindMerge.twMerge(arrowBaseClasses, arrowPlacementClasses[placement]), "aria-hidden": true, "data-arrow": true })
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
) : null
|
|
129
|
+
] });
|
|
130
|
+
});
|
|
131
|
+
ToolTip.displayName = "ToolTip";
|
|
132
|
+
var ToolTip_default = ToolTip;
|
|
133
|
+
|
|
134
|
+
module.exports = ToolTip_default;
|
|
135
|
+
//# sourceMappingURL=tooltip.cjs.map
|
|
136
|
+
//# sourceMappingURL=tooltip.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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-white/10 bg-gray-900 px-3 py-2 text-xs font-medium text-white shadow-lg shadow-black/30 ring-1 ring-black/40 transition-all duration-150';\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-white/10 bg-gray-900 shadow-lg 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: 'right-full top-1/2 -translate-y-1/2 translate-x-1/2',\n 'left-start': 'right-full top-4 translate-x-1/2',\n 'left-end': 'right-full bottom-4 translate-x-1/2',\n right: 'left-full top-1/2 -translate-y-1/2 -translate-x-1/2',\n 'right-start': 'left-full top-4 -translate-x-1/2',\n 'right-end': 'left-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\nconst ToolTip = React.forwardRef<HTMLDivElement, ToolTipProps>((props, forwardedRef) => {\n const {\n activator,\n children,\n placement = 'top',\n arrow = true,\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 = !persistent && showOnHover ? ' group-hover/tooltip:opacity-100 group-hover/tooltip:scale-100' : '';\n const focusClasses = !persistent && showOnFocus ? ' group-focus-within/tooltip:opacity-100 group-focus-within/tooltip:scale-100' : '';\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 className={twMerge(wrapperBaseClasses, 'group/tooltip', wrapperClassName)} data-disabled={disabled || undefined}>\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(tooltipBaseClasses, placementClasses[placement], visibilityClasses, pointerClasses, className)}\n style={resolvedStyle}\n >\n {children}\n {arrow && (\n <span className={twMerge(arrowBaseClasses, arrowPlacementClasses[placement])} aria-hidden data-arrow />\n )}\n </div>\n ) : null}\n </span>\n );\n});\n\nToolTip.displayName = 'ToolTip';\n\nexport default ToolTip;\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
|
|
3
|
+
type ToolTipPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
|
|
4
|
+
interface ToolTipProps extends react.HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
activator: react.ReactNode;
|
|
6
|
+
placement?: ToolTipPlacement;
|
|
7
|
+
arrow?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
persistent?: boolean;
|
|
10
|
+
showOnHover?: boolean;
|
|
11
|
+
showOnFocus?: boolean;
|
|
12
|
+
interactive?: boolean;
|
|
13
|
+
keepMounted?: boolean;
|
|
14
|
+
maxWidth?: string | number;
|
|
15
|
+
wrapperClassName?: string;
|
|
16
|
+
}
|
|
17
|
+
declare const ToolTip: react.ForwardRefExoticComponent<ToolTipProps & react.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
|
|
19
|
+
export { type ToolTipPlacement, type ToolTipProps, ToolTip as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
|
|
3
|
+
type ToolTipPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
|
|
4
|
+
interface ToolTipProps extends react.HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
activator: react.ReactNode;
|
|
6
|
+
placement?: ToolTipPlacement;
|
|
7
|
+
arrow?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
persistent?: boolean;
|
|
10
|
+
showOnHover?: boolean;
|
|
11
|
+
showOnFocus?: boolean;
|
|
12
|
+
interactive?: boolean;
|
|
13
|
+
keepMounted?: boolean;
|
|
14
|
+
maxWidth?: string | number;
|
|
15
|
+
wrapperClassName?: string;
|
|
16
|
+
}
|
|
17
|
+
declare const ToolTip: react.ForwardRefExoticComponent<ToolTipProps & react.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
|
|
19
|
+
export { type ToolTipPlacement, type ToolTipProps, ToolTip as default };
|
package/dist/tooltip.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tooltip.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lindle/linoardo",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "",
|
|
@@ -45,12 +45,77 @@
|
|
|
45
45
|
"import": "./dist/index.js",
|
|
46
46
|
"require": "./dist/index.cjs"
|
|
47
47
|
},
|
|
48
|
+
"./button": {
|
|
49
|
+
"types": "./dist/button.d.ts",
|
|
50
|
+
"import": "./dist/button.js",
|
|
51
|
+
"require": "./dist/button.cjs"
|
|
52
|
+
},
|
|
53
|
+
"./chip": {
|
|
54
|
+
"types": "./dist/chip.d.ts",
|
|
55
|
+
"import": "./dist/chip.js",
|
|
56
|
+
"require": "./dist/chip.cjs"
|
|
57
|
+
},
|
|
58
|
+
"./list": {
|
|
59
|
+
"types": "./dist/list.d.ts",
|
|
60
|
+
"import": "./dist/list.js",
|
|
61
|
+
"require": "./dist/list.cjs"
|
|
62
|
+
},
|
|
63
|
+
"./list/item": {
|
|
64
|
+
"types": "./dist/list/item.d.ts",
|
|
65
|
+
"import": "./dist/list/item.js",
|
|
66
|
+
"require": "./dist/list/item.cjs"
|
|
67
|
+
},
|
|
68
|
+
"./menu": {
|
|
69
|
+
"types": "./dist/menu.d.ts",
|
|
70
|
+
"import": "./dist/menu.js",
|
|
71
|
+
"require": "./dist/menu.cjs"
|
|
72
|
+
},
|
|
73
|
+
"./expansion-panel": {
|
|
74
|
+
"types": "./dist/expansion-panel.d.ts",
|
|
75
|
+
"import": "./dist/expansion-panel.js",
|
|
76
|
+
"require": "./dist/expansion-panel.cjs"
|
|
77
|
+
},
|
|
78
|
+
"./expansion-panel/item": {
|
|
79
|
+
"types": "./dist/expansion-panel/item.d.ts",
|
|
80
|
+
"import": "./dist/expansion-panel/item.js",
|
|
81
|
+
"require": "./dist/expansion-panel/item.cjs"
|
|
82
|
+
},
|
|
83
|
+
"./dialog": {
|
|
84
|
+
"types": "./dist/dialog.d.ts",
|
|
85
|
+
"import": "./dist/dialog.js",
|
|
86
|
+
"require": "./dist/dialog.cjs"
|
|
87
|
+
},
|
|
88
|
+
"./tooltip": {
|
|
89
|
+
"types": "./dist/tooltip.d.ts",
|
|
90
|
+
"import": "./dist/tooltip.js",
|
|
91
|
+
"require": "./dist/tooltip.cjs"
|
|
92
|
+
},
|
|
93
|
+
"./card": {
|
|
94
|
+
"types": "./dist/card.d.ts",
|
|
95
|
+
"import": "./dist/card.js",
|
|
96
|
+
"require": "./dist/card.cjs"
|
|
97
|
+
},
|
|
98
|
+
"./input": {
|
|
99
|
+
"types": "./dist/input.d.ts",
|
|
100
|
+
"import": "./dist/input.js",
|
|
101
|
+
"require": "./dist/input.cjs"
|
|
102
|
+
},
|
|
103
|
+
"./slider": {
|
|
104
|
+
"types": "./dist/slider.d.ts",
|
|
105
|
+
"import": "./dist/slider.js",
|
|
106
|
+
"require": "./dist/slider.cjs"
|
|
107
|
+
},
|
|
108
|
+
"./switch": {
|
|
109
|
+
"types": "./dist/switch.d.ts",
|
|
110
|
+
"import": "./dist/switch.js",
|
|
111
|
+
"require": "./dist/switch.cjs"
|
|
112
|
+
},
|
|
48
113
|
"./styles.css": "./dist/styles.css"
|
|
49
114
|
},
|
|
50
115
|
"scripts": {
|
|
51
116
|
"build:js": "tsup",
|
|
52
117
|
"build:css": "postcss src/styles.css -o dist/styles.css && node ./scripts/fix-mdi-fonts.mjs",
|
|
53
|
-
"build": "npm run build:js && npm run build:css",
|
|
118
|
+
"build": "DEBUG=true npm run build:js && npm run build:css",
|
|
54
119
|
"storebook": "npm run storybook",
|
|
55
120
|
"storybook": "storybook dev -p 6006",
|
|
56
121
|
"storybook:build": "storybook build",
|