@tremolo-ui/react 0.0.10 → 0.0.11
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/cjs/index.js +8 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/Slider/Thumb.d.ts.map +1 -1
- package/dist/cjs/types/components/Slider/Track.d.ts +0 -2
- package/dist/cjs/types/components/Slider/Track.d.ts.map +1 -1
- package/dist/cjs/types/components/Slider/context.d.ts +2 -10
- package/dist/cjs/types/components/Slider/context.d.ts.map +1 -1
- package/dist/cjs/types/components/Slider/index.d.ts.map +1 -1
- package/dist/cjs/types/hooks/useAnimationFrame.d.ts.map +1 -1
- package/dist/esm/index.js +8 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/Slider/Thumb.d.ts.map +1 -1
- package/dist/esm/types/components/Slider/Track.d.ts +0 -2
- package/dist/esm/types/components/Slider/Track.d.ts.map +1 -1
- package/dist/esm/types/components/Slider/context.d.ts +2 -10
- package/dist/esm/types/components/Slider/context.d.ts.map +1 -1
- package/dist/esm/types/components/Slider/index.d.ts.map +1 -1
- package/dist/esm/types/hooks/useAnimationFrame.d.ts.map +1 -1
- package/package.json +41 -40
- package/src/components/AnimationCanvas/index.tsx +1 -1
- package/src/components/NumberInput/context.tsx +1 -1
- package/src/components/Piano/index.tsx +1 -1
- package/src/components/Slider/Thumb.tsx +2 -0
- package/src/components/Slider/Track.tsx +0 -2
- package/src/components/Slider/context.tsx +5 -20
- package/src/components/Slider/index.tsx +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Slider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAEZ,aAAa,EAEb,YAAY,EAKb,MAAM,OAAO,CAAA;AAEd,OAAO,EAML,gBAAgB,EAGjB,MAAM,uBAAuB,CAAA;AAW9B,uBAAuB;AACvB,MAAM,WAAW,WAAW;IAE1B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IAGX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAA;CAEzC;AAED,uBAAuB;AACvB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,IAAI,EAAE,MAAM,IAAI,CAAA;CACjB;AAKD;;;GAGG;AACH,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Slider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAEZ,aAAa,EAEb,YAAY,EAKb,MAAM,OAAO,CAAA;AAEd,OAAO,EAML,gBAAgB,EAGjB,MAAM,uBAAuB,CAAA;AAW9B,uBAAuB;AACvB,MAAM,WAAW,WAAW;IAE1B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IAGX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAA;CAEzC;AAED,uBAAuB;AACvB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,IAAI,EAAE,MAAM,IAAI,CAAA;CACjB;AAKD;;;GAGG;AACH,eAAO,MAAM,MAAM,yMA4OlB,CAAA;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnimationFrame.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAnimationFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkC,MAAM,OAAO,CAAA;AAEtE,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useAnimationFrame.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAnimationFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkC,MAAM,OAAO,CAAA;AAEtE,eAAO,MAAM,iBAAiB,GAC5B,qBAAmB,EACnB,OAAM,cAAmB,SAa1B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tremolo-ui/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"description": "React component library for audio app",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -8,28 +8,43 @@
|
|
|
8
8
|
"types": "dist/cjs/types/index.d.ts",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"sb": "storybook dev -p 6006",
|
|
11
|
+
"typecheck": "tsc",
|
|
11
12
|
"build:sb": "storybook build",
|
|
12
13
|
"serve": "http-server ./storybook-static",
|
|
13
14
|
"lint": "eslint --fix --ext .ts,.tsx .",
|
|
14
15
|
"format": "prettier --write .",
|
|
15
16
|
"test": "echo 'No test yet.'",
|
|
16
|
-
"build:package": "rollup -c",
|
|
17
|
+
"build:package": "tsc && rollup -c",
|
|
17
18
|
"clean": "npm run clean:build && npm run clean:sb",
|
|
18
19
|
"clean:build": "rimraf ./dist .rollup.cache",
|
|
19
20
|
"clean:sb": "rimraf ./storybook-static"
|
|
20
21
|
},
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@storybook/addon-essentials": "^8.6.7",
|
|
24
|
+
"@storybook/addon-interactions": "^8.6.7",
|
|
25
|
+
"@storybook/addon-links": "^8.6.7",
|
|
26
|
+
"@storybook/blocks": "^8.6.7",
|
|
27
|
+
"@storybook/react": "^8.6.7",
|
|
28
|
+
"@storybook/react-vite": "^8.6.7",
|
|
29
|
+
"@storybook/test": "^8.6.7",
|
|
30
|
+
"@testing-library/react": "^16.0.1",
|
|
31
|
+
"@types/react": "^19.0.10",
|
|
32
|
+
"@types/react-dom": "^19.0.4",
|
|
33
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
34
|
+
"jotai": "^2.12.1",
|
|
35
|
+
"react": "19.x",
|
|
36
|
+
"react-dom": "19.x",
|
|
37
|
+
"storybook": "^8.6.7",
|
|
38
|
+
"tone": "^15.0.4"
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"react": "^18 ||^19",
|
|
42
|
+
"react-dom": "^18 || ^19"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@tremolo-ui/functions": "0.0.11",
|
|
46
|
+
"clsx": "^2.1.1",
|
|
47
|
+
"zustand": "^5.0.3"
|
|
33
48
|
},
|
|
34
49
|
"files": [
|
|
35
50
|
"dist",
|
|
@@ -56,31 +71,17 @@
|
|
|
56
71
|
"components",
|
|
57
72
|
"web-audio"
|
|
58
73
|
],
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"
|
|
71
|
-
"react-component-benchmark": "^2.0.0",
|
|
72
|
-
"react-dom": "^18.3.1",
|
|
73
|
-
"storybook": "^8.3.3",
|
|
74
|
-
"tone": "^15.0.4"
|
|
75
|
-
},
|
|
76
|
-
"peerDependencies": {
|
|
77
|
-
"@tremolo-ui/functions": "0.0.10",
|
|
78
|
-
"react": "18.x || 19.x",
|
|
79
|
-
"react-dom": "18.x || 19.x"
|
|
80
|
-
},
|
|
81
|
-
"dependencies": {
|
|
82
|
-
"@tremolo-ui/functions": "file:../functions",
|
|
83
|
-
"clsx": "^2.1.1",
|
|
84
|
-
"zustand": "^5.0.3"
|
|
74
|
+
"exports": {
|
|
75
|
+
".": {
|
|
76
|
+
"require": {
|
|
77
|
+
"types": "./dist/cjs/types/index.d.ts",
|
|
78
|
+
"default": "./dist/cjs/index.js"
|
|
79
|
+
},
|
|
80
|
+
"import": {
|
|
81
|
+
"types": "./dist/esm/types/index.d.ts",
|
|
82
|
+
"default": "./dist/esm/index.js"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"./styles/index.css": "./dist/styles/index.css"
|
|
85
86
|
}
|
|
86
87
|
}
|
|
@@ -92,7 +92,7 @@ export function AnimationCanvas({
|
|
|
92
92
|
>): ReactElement {
|
|
93
93
|
const canvasRef = useRef<HTMLCanvasElement>(null)
|
|
94
94
|
const memoCanvasRef = useRef<HTMLCanvasElement>(null)
|
|
95
|
-
const reqIdRef = useRef
|
|
95
|
+
const reqIdRef = useRef(-1)
|
|
96
96
|
const widthRef = useRef(0)
|
|
97
97
|
const heightRef = useRef(0)
|
|
98
98
|
|
|
@@ -109,7 +109,7 @@ export function NumberInputProvider({
|
|
|
109
109
|
children,
|
|
110
110
|
...props
|
|
111
111
|
}: NumberInputProviderProps) {
|
|
112
|
-
const storeRef = useRef<NumberInputStore>()
|
|
112
|
+
const storeRef = useRef<NumberInputStore>(null)
|
|
113
113
|
if (!storeRef.current) {
|
|
114
114
|
storeRef.current = createNumberInputStore(props)
|
|
115
115
|
}
|
|
@@ -78,7 +78,7 @@ export function Piano({
|
|
|
78
78
|
// -- state and ref ---
|
|
79
79
|
const [pressed, setPressed] = useState(false)
|
|
80
80
|
const [whiteNoteWidth, setWhiteNoteWidth] = useState(-1)
|
|
81
|
-
const keyRefs = useRef<RefObject<KeyMethods>[]>([])
|
|
81
|
+
const keyRefs = useRef<RefObject<KeyMethods | null>[]>([])
|
|
82
82
|
for (let i = 0; i < noteRange.last - noteRange.first + 1; i++) {
|
|
83
83
|
keyRefs.current[i] = createRef<KeyMethods>()
|
|
84
84
|
}
|
|
@@ -49,6 +49,7 @@ export const SliderThumb = forwardRef<SliderThumbMethods, SliderThumbProps>(
|
|
|
49
49
|
const wrapperRef = useRef<HTMLDivElement>(null)
|
|
50
50
|
const vertical = useSliderContext((s) => s.vertical)
|
|
51
51
|
const disabled = useSliderContext((s) => s.disabled)
|
|
52
|
+
const readonly = useSliderContext((s) => s.readonly)
|
|
52
53
|
|
|
53
54
|
useImperativeHandle(ref, () => {
|
|
54
55
|
return {
|
|
@@ -79,6 +80,7 @@ export const SliderThumb = forwardRef<SliderThumbMethods, SliderThumbProps>(
|
|
|
79
80
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
80
81
|
tabIndex={0}
|
|
81
82
|
aria-disabled={disabled}
|
|
83
|
+
aria-readonly={readonly}
|
|
82
84
|
style={{
|
|
83
85
|
width: size ?? width,
|
|
84
86
|
height: size ?? height,
|
|
@@ -9,16 +9,7 @@ type State = {
|
|
|
9
9
|
vertical: boolean
|
|
10
10
|
reverse: boolean
|
|
11
11
|
disabled: boolean
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
type Action = {
|
|
15
|
-
updateMin: (min: State['min']) => void
|
|
16
|
-
updateMax: (max: State['max']) => void
|
|
17
|
-
updateStep: (step: State['step']) => void
|
|
18
|
-
updateSkew: (skew: State['skew']) => void
|
|
19
|
-
updateVertical: (vertical: State['vertical']) => void
|
|
20
|
-
updateReverse: (reverse: State['reverse']) => void
|
|
21
|
-
updateDisabled: (disabled: State['disabled']) => void
|
|
12
|
+
readonly: boolean
|
|
22
13
|
}
|
|
23
14
|
|
|
24
15
|
type SliderStore = ReturnType<typeof createSliderStore>
|
|
@@ -32,18 +23,12 @@ const createSliderStore = (initProps?: Partial<State>) => {
|
|
|
32
23
|
vertical: false,
|
|
33
24
|
reverse: false,
|
|
34
25
|
disabled: false,
|
|
26
|
+
readonly: false,
|
|
35
27
|
}
|
|
36
28
|
|
|
37
|
-
return createStore<State
|
|
29
|
+
return createStore<State>()(() => ({
|
|
38
30
|
...DEFAULT_PROPS,
|
|
39
31
|
...initProps,
|
|
40
|
-
updateMin: (min) => set(() => ({ min: min })),
|
|
41
|
-
updateMax: (max) => set(() => ({ max: max })),
|
|
42
|
-
updateStep: (step) => set(() => ({ step: step })),
|
|
43
|
-
updateSkew: (skew) => set(() => ({ skew: skew })),
|
|
44
|
-
updateVertical: (vertical) => set(() => ({ vertical: vertical })),
|
|
45
|
-
updateReverse: (reverse) => set(() => ({ reverse: reverse })),
|
|
46
|
-
updateDisabled: (disabled) => set(() => ({ disabled: disabled })),
|
|
47
32
|
}))
|
|
48
33
|
}
|
|
49
34
|
|
|
@@ -52,7 +37,7 @@ const SliderContext = createContext<SliderStore | null>(null)
|
|
|
52
37
|
type SliderProviderProps = React.PropsWithChildren<Partial<State>>
|
|
53
38
|
|
|
54
39
|
export function SliderProvider({ children, ...props }: SliderProviderProps) {
|
|
55
|
-
const storeRef = useRef<SliderStore>()
|
|
40
|
+
const storeRef = useRef<SliderStore>(null)
|
|
56
41
|
if (!storeRef.current) {
|
|
57
42
|
storeRef.current = createSliderStore(props)
|
|
58
43
|
}
|
|
@@ -73,7 +58,7 @@ export function SliderProvider({ children, ...props }: SliderProviderProps) {
|
|
|
73
58
|
}
|
|
74
59
|
|
|
75
60
|
/** @category Slider */
|
|
76
|
-
export function useSliderContext<T>(selector: (state: State
|
|
61
|
+
export function useSliderContext<T>(selector: (state: State) => T): T {
|
|
77
62
|
const store = useContext(SliderContext)
|
|
78
63
|
if (!store) throw new Error('Missing SliderContext.Provider in the tree')
|
|
79
64
|
return useStore(store, selector)
|