@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.
Files changed (120) hide show
  1. package/dist/ExpansionPanelItem-Bd6ZWGkR.d.cts +58 -0
  2. package/dist/ExpansionPanelItem-DOjgDeB6.d.ts +58 -0
  3. package/dist/button.cjs +214 -0
  4. package/dist/button.cjs.map +1 -0
  5. package/dist/button.d.cts +20 -0
  6. package/dist/button.d.ts +20 -0
  7. package/dist/button.js +4 -0
  8. package/dist/button.js.map +1 -0
  9. package/dist/card.cjs +87 -0
  10. package/dist/card.cjs.map +1 -0
  11. package/dist/card.d.cts +34 -0
  12. package/dist/card.d.ts +34 -0
  13. package/dist/card.js +3 -0
  14. package/dist/card.js.map +1 -0
  15. package/dist/chip.cjs +247 -0
  16. package/dist/chip.cjs.map +1 -0
  17. package/dist/chip.d.cts +368 -0
  18. package/dist/chip.d.ts +368 -0
  19. package/dist/chip.js +4 -0
  20. package/dist/chip.js.map +1 -0
  21. package/dist/chunk-32KFNI6K.js +114 -0
  22. package/dist/chunk-32KFNI6K.js.map +1 -0
  23. package/dist/chunk-5GY2JCBO.js +92 -0
  24. package/dist/chunk-5GY2JCBO.js.map +1 -0
  25. package/dist/chunk-AOHXZ7OM.js +126 -0
  26. package/dist/chunk-AOHXZ7OM.js.map +1 -0
  27. package/dist/chunk-E32P5AHO.js +125 -0
  28. package/dist/chunk-E32P5AHO.js.map +1 -0
  29. package/dist/chunk-GA6HSRN6.js +235 -0
  30. package/dist/chunk-GA6HSRN6.js.map +1 -0
  31. package/dist/chunk-IEILIKS2.js +8 -0
  32. package/dist/chunk-IEILIKS2.js.map +1 -0
  33. package/dist/chunk-N65GNKRG.js +143 -0
  34. package/dist/chunk-N65GNKRG.js.map +1 -0
  35. package/dist/chunk-PWK6MLZT.js +239 -0
  36. package/dist/chunk-PWK6MLZT.js.map +1 -0
  37. package/dist/chunk-PYG5SDNO.js +98 -0
  38. package/dist/chunk-PYG5SDNO.js.map +1 -0
  39. package/dist/chunk-QGQ66FJD.js +155 -0
  40. package/dist/chunk-QGQ66FJD.js.map +1 -0
  41. package/dist/chunk-SZU6OYLS.js +187 -0
  42. package/dist/chunk-SZU6OYLS.js.map +1 -0
  43. package/dist/chunk-U6NAIIDI.js +99 -0
  44. package/dist/chunk-U6NAIIDI.js.map +1 -0
  45. package/dist/chunk-V4BVJOSC.js +85 -0
  46. package/dist/chunk-V4BVJOSC.js.map +1 -0
  47. package/dist/chunk-XFPBICJG.js +127 -0
  48. package/dist/chunk-XFPBICJG.js.map +1 -0
  49. package/dist/dialog.cjs +121 -0
  50. package/dist/dialog.cjs.map +1 -0
  51. package/dist/dialog.d.cts +17 -0
  52. package/dist/dialog.d.ts +17 -0
  53. package/dist/dialog.js +3 -0
  54. package/dist/dialog.js.map +1 -0
  55. package/dist/expansion-panel/item.cjs +195 -0
  56. package/dist/expansion-panel/item.cjs.map +1 -0
  57. package/dist/expansion-panel/item.d.cts +3 -0
  58. package/dist/expansion-panel/item.d.ts +3 -0
  59. package/dist/expansion-panel/item.js +3 -0
  60. package/dist/expansion-panel/item.js.map +1 -0
  61. package/dist/expansion-panel.cjs +356 -0
  62. package/dist/expansion-panel.cjs.map +1 -0
  63. package/dist/expansion-panel.d.cts +8 -0
  64. package/dist/expansion-panel.d.ts +8 -0
  65. package/dist/expansion-panel.js +4 -0
  66. package/dist/expansion-panel.js.map +1 -0
  67. package/dist/global.types-E2uVLemv.d.cts +7 -0
  68. package/dist/global.types-E2uVLemv.d.ts +7 -0
  69. package/dist/index-Md3BuoGM.d.cts +32 -0
  70. package/dist/index-d_JuI06O.d.ts +32 -0
  71. package/dist/index.cjs +557 -160
  72. package/dist/index.cjs.map +1 -1
  73. package/dist/index.d.cts +15 -549
  74. package/dist/index.d.ts +15 -549
  75. package/dist/index.js +14 -1330
  76. package/dist/index.js.map +1 -1
  77. package/dist/input.cjs +106 -0
  78. package/dist/input.cjs.map +1 -0
  79. package/dist/input.d.cts +22 -0
  80. package/dist/input.d.ts +22 -0
  81. package/dist/input.js +4 -0
  82. package/dist/input.js.map +1 -0
  83. package/dist/list/item.cjs +149 -0
  84. package/dist/list/item.cjs.map +1 -0
  85. package/dist/list/item.d.cts +3 -0
  86. package/dist/list/item.d.ts +3 -0
  87. package/dist/list/item.js +3 -0
  88. package/dist/list/item.js.map +1 -0
  89. package/dist/list.cjs +235 -0
  90. package/dist/list.cjs.map +1 -0
  91. package/dist/list.d.cts +17 -0
  92. package/dist/list.d.ts +17 -0
  93. package/dist/list.js +4 -0
  94. package/dist/list.js.map +1 -0
  95. package/dist/menu.cjs +177 -0
  96. package/dist/menu.cjs.map +1 -0
  97. package/dist/menu.d.cts +20 -0
  98. package/dist/menu.d.ts +20 -0
  99. package/dist/menu.js +3 -0
  100. package/dist/menu.js.map +1 -0
  101. package/dist/slider.cjs +128 -0
  102. package/dist/slider.cjs.map +1 -0
  103. package/dist/slider.d.cts +42 -0
  104. package/dist/slider.d.ts +42 -0
  105. package/dist/slider.js +3 -0
  106. package/dist/slider.js.map +1 -0
  107. package/dist/styles.css +334 -44
  108. package/dist/switch.cjs +145 -0
  109. package/dist/switch.cjs.map +1 -0
  110. package/dist/switch.d.cts +16 -0
  111. package/dist/switch.d.ts +16 -0
  112. package/dist/switch.js +3 -0
  113. package/dist/switch.js.map +1 -0
  114. package/dist/tooltip.cjs +136 -0
  115. package/dist/tooltip.cjs.map +1 -0
  116. package/dist/tooltip.d.cts +19 -0
  117. package/dist/tooltip.d.ts +19 -0
  118. package/dist/tooltip.js +3 -0
  119. package/dist/tooltip.js.map +1 -0
  120. package/package.json +67 -2
@@ -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 };
@@ -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,3 @@
1
+ export { Switch_default as default } from './chunk-N65GNKRG.js';
2
+ //# sourceMappingURL=switch.js.map
3
+ //# sourceMappingURL=switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"switch.js"}
@@ -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 };
@@ -0,0 +1,3 @@
1
+ export { ToolTip_default as default } from './chunk-32KFNI6K.js';
2
+ //# sourceMappingURL=tooltip.js.map
3
+ //# sourceMappingURL=tooltip.js.map
@@ -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.16",
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",