Skip to content

Commit cf6bf01

Browse files
committed
Merge remote-tracking branch 'origin/migrate-to-ui-package'
2 parents 01ee680 + a74576d commit cf6bf01

File tree

5 files changed

+79
-9
lines changed

5 files changed

+79
-9
lines changed

packages/ui/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"ngrok": "ngrok http --domain=esm.ngrok.dev 8000",
1414
"build": "tsup src/index.ts --format esm,cjs --dts --external react && tailwindcss -i ./src/styles.css -o ./dist/styles.css",
1515
"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\"",
1717
"clean": "rm -rf dist"
1818
},
1919
"peerDependencies": {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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+
}

packages/ui/src/ShaderGradientUI/RangeSlider.tsx

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import ReactSlider from 'react-slider'
22
import { useState, useEffect } from 'react'
3-
import './slider.css'
3+
// import './slider.css'
4+
import { InputTitle } from './InputTitle'
45

56
type RangeSliderPropsT = {
67
title: string
@@ -10,6 +11,9 @@ type RangeSliderPropsT = {
1011
step: number
1112
min: number
1213
max: number
14+
info: boolean
15+
infoContent: string
16+
condition: boolean
1317
}
1418

1519
export function RangeSlider({
@@ -19,6 +23,9 @@ export function RangeSlider({
1923
step,
2024
min,
2125
max,
26+
info,
27+
infoContent,
28+
condition,
2229
}: RangeSliderPropsT): JSX.Element {
2330
const [rangeValue, setRangeValue] = useState<[number, number]>(defaultValue)
2431
const [isMouseOver, setIsMouseOver] = useState(false)
@@ -36,9 +43,12 @@ export function RangeSlider({
3643
className='flex items-center w-full h-[26px] flex-row gap-2'
3744
style={{ fontFamily: 'Inter Medium' }}
3845
>
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+
/>
4252
<div
4353
className='flex items-center w-full h-fit flex-row gap-2'
4454
onMouseOver={() => setIsMouseOver(true)}

packages/ui/src/ShaderGradientUI/Slider.tsx

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import ReactSlider from 'react-slider'
22
import { useState, useEffect } from 'react'
3-
import './slider.css'
3+
// import './slider.css'
4+
import { InputTitle } from './InputTitle'
45

56
type SliderPropsT = {
67
title: string
@@ -9,6 +10,9 @@ type SliderPropsT = {
910
step: number
1011
min: number
1112
max: number
13+
info: boolean
14+
infoContent: string
15+
condition: boolean
1216
} & React.DetailedHTMLProps<
1317
React.InputHTMLAttributes<HTMLInputElement>,
1418
HTMLInputElement
@@ -21,6 +25,9 @@ export function Slider({
2125
step,
2226
min,
2327
max,
28+
info,
29+
infoContent,
30+
condition,
2431
}: SliderPropsT): JSX.Element {
2532
const [sharedValue, setSharedValue] = useState<any>(defaultValue)
2633
const [isMouseOver, setIsMouseOver] = useState<boolean>(false)
@@ -42,9 +49,12 @@ export function Slider({
4249
className='flex items-center w-full h-[26px] flex-row gap-2'
4350
style={{ fontFamily: 'Inter Medium' }}
4451
>
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+
/>
4858
<div
4959
className='flex items-center w-full h-fit flex-row gap-2'
5060
onMouseOver={() => setIsMouseOver(true)}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export { Slider } from './Slider'
22
export { ColorInput } from './ColorInput'
33
export { RangeSlider } from './RangeSlider'
4+
export { InputTitle } from './InputTitle'

0 commit comments

Comments
 (0)