File tree 5 files changed +79
-9
lines changed
5 files changed +79
-9
lines changed Original file line number Diff line number Diff line change 13
13
"ngrok" : " ngrok http --domain=esm.ngrok.dev 8000" ,
14
14
"build" : " tsup src/index.ts --format esm,cjs --dts --external react && tailwindcss -i ./src/styles.css -o ./dist/styles.css" ,
15
15
"release" : " pnpm run build && mkdir -p release && cp -Rf dist release/$npm_package_name@$npm_package_version" ,
16
- "dev" : " concurrently \" tsup src/index.tsx --format esm,cjs --dts --external react --watch\" \" tailwindcss -i ./src/styles.css -o ./dist/styles.css --watch\" " ,
16
+ "dev" : " concurrently \" tsup src/index.ts --format esm,cjs --dts --external react --watch\" \" tailwindcss -i ./src/styles.css -o ./dist/styles.css --watch\" " ,
17
17
"clean" : " rm -rf dist"
18
18
},
19
19
"peerDependencies" : {
Original file line number Diff line number Diff line change
1
+ import React from 'react'
2
+ import { useState } from 'react'
3
+
4
+ type InputTitlePropsT = {
5
+ title : string
6
+ info : boolean
7
+ infoContent : any
8
+ condition : boolean
9
+ } & React . DetailedHTMLProps <
10
+ React . InputHTMLAttributes < HTMLInputElement > ,
11
+ HTMLInputElement
12
+ >
13
+
14
+ export function InputTitle ( {
15
+ title,
16
+ info,
17
+ infoContent,
18
+ condition = false ,
19
+ } : InputTitlePropsT ) : JSX . Element {
20
+ const [ isMouseOver , setIsMouseOver ] = useState ( false )
21
+ return (
22
+ < div
23
+ className = 'w-[100px] flex items-center flex-shrink-0 gap-1'
24
+ style = { { fontFamily : 'Inter Medium' } }
25
+ >
26
+ < p className = 'font-medium whitespace-nowrap' >
27
+ { condition === true && < span className = 'opacity-30' > ↳ </ span > }
28
+ { title }
29
+ </ p >
30
+ { info === true && (
31
+ < div
32
+ className = 'flex items-center w-2 h-2 bg-[blue] gap-2 relative'
33
+ onMouseOver = { ( ) => setIsMouseOver ( true ) }
34
+ onMouseLeave = { ( ) => setIsMouseOver ( false ) }
35
+ >
36
+ < div
37
+ className = {
38
+ 'absolute text-[white] p-4 bg-[red] ' +
39
+ ( isMouseOver === true ? 'opacity-100' : 'opacity-0' )
40
+ }
41
+ >
42
+ { infoContent }
43
+ </ div >
44
+ </ div >
45
+ // <HoverMessage content={infoContent} isHovered={isMouseOver} />
46
+ ) }
47
+ </ div >
48
+ )
49
+ }
Original file line number Diff line number Diff line change 1
1
import ReactSlider from 'react-slider'
2
2
import { useState , useEffect } from 'react'
3
- import './slider.css'
3
+ // import './slider.css'
4
+ import { InputTitle } from './InputTitle'
4
5
5
6
type RangeSliderPropsT = {
6
7
title : string
@@ -10,6 +11,9 @@ type RangeSliderPropsT = {
10
11
step : number
11
12
min : number
12
13
max : number
14
+ info : boolean
15
+ infoContent : string
16
+ condition : boolean
13
17
}
14
18
15
19
export function RangeSlider ( {
@@ -19,6 +23,9 @@ export function RangeSlider({
19
23
step,
20
24
min,
21
25
max,
26
+ info,
27
+ infoContent,
28
+ condition,
22
29
} : RangeSliderPropsT ) : JSX . Element {
23
30
const [ rangeValue , setRangeValue ] = useState < [ number , number ] > ( defaultValue )
24
31
const [ isMouseOver , setIsMouseOver ] = useState ( false )
@@ -36,9 +43,12 @@ export function RangeSlider({
36
43
className = 'flex items-center w-full h-[26px] flex-row gap-2'
37
44
style = { { fontFamily : 'Inter Medium' } }
38
45
>
39
- < div className = 'w-[100px] flex-shrink-0 flex items-center' >
40
- < p className = 'font-medium whitespace-nowrap' > { title } </ p >
41
- </ div >
46
+ < InputTitle
47
+ title = { title }
48
+ info = { info }
49
+ infoContent = { infoContent }
50
+ condition = { condition }
51
+ />
42
52
< div
43
53
className = 'flex items-center w-full h-fit flex-row gap-2'
44
54
onMouseOver = { ( ) => setIsMouseOver ( true ) }
Original file line number Diff line number Diff line change 1
1
import ReactSlider from 'react-slider'
2
2
import { useState , useEffect } from 'react'
3
- import './slider.css'
3
+ // import './slider.css'
4
+ import { InputTitle } from './InputTitle'
4
5
5
6
type SliderPropsT = {
6
7
title : string
@@ -9,6 +10,9 @@ type SliderPropsT = {
9
10
step : number
10
11
min : number
11
12
max : number
13
+ info : boolean
14
+ infoContent : string
15
+ condition : boolean
12
16
} & React . DetailedHTMLProps <
13
17
React . InputHTMLAttributes < HTMLInputElement > ,
14
18
HTMLInputElement
@@ -21,6 +25,9 @@ export function Slider({
21
25
step,
22
26
min,
23
27
max,
28
+ info,
29
+ infoContent,
30
+ condition,
24
31
} : SliderPropsT ) : JSX . Element {
25
32
const [ sharedValue , setSharedValue ] = useState < any > ( defaultValue )
26
33
const [ isMouseOver , setIsMouseOver ] = useState < boolean > ( false )
@@ -42,9 +49,12 @@ export function Slider({
42
49
className = 'flex items-center w-full h-[26px] flex-row gap-2'
43
50
style = { { fontFamily : 'Inter Medium' } }
44
51
>
45
- < div className = 'w-[100px] flex items-center flex-shrink-0' >
46
- < p className = 'font-medium whitespace-nowrap' > { title } </ p >
47
- </ div >
52
+ < InputTitle
53
+ title = { title }
54
+ info = { info }
55
+ infoContent = { infoContent }
56
+ condition = { condition }
57
+ />
48
58
< div
49
59
className = 'flex items-center w-full h-fit flex-row gap-2'
50
60
onMouseOver = { ( ) => setIsMouseOver ( true ) }
Original file line number Diff line number Diff line change 1
1
export { Slider } from './Slider'
2
2
export { ColorInput } from './ColorInput'
3
3
export { RangeSlider } from './RangeSlider'
4
+ export { InputTitle } from './InputTitle'
You can’t perform that action at this time.
0 commit comments