tyrell-react 1.0.0-TC7 → 1.0.0-TC9
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/README.md +34 -10
- package/dist/components/TyButton.d.ts.map +1 -1
- package/dist/components/TyButton.js +26 -21
- package/dist/components/TyButton.js.map +1 -1
- package/dist/components/TyDropdown.d.ts.map +1 -1
- package/dist/components/TyDropdown.js +13 -1
- package/dist/components/TyDropdown.js.map +1 -1
- package/dist/components/TyRadio.d.ts +20 -0
- package/dist/components/TyRadio.d.ts.map +1 -0
- package/dist/components/TyRadio.js +31 -0
- package/dist/components/TyRadio.js.map +1 -0
- package/dist/components/TyRadioGroup.d.ts +40 -0
- package/dist/components/TyRadioGroup.d.ts.map +1 -0
- package/dist/components/TyRadioGroup.js +58 -0
- package/dist/components/TyRadioGroup.js.map +1 -0
- package/dist/components/TySwitch.d.ts +35 -0
- package/dist/components/TySwitch.d.ts.map +1 -0
- package/dist/components/TySwitch.js +54 -0
- package/dist/components/TySwitch.js.map +1 -0
- package/dist/components/index.d.ts +12 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +6 -0
- package/dist/components/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/TyButton.tsx +26 -21
- package/src/components/TyDropdown.tsx +20 -7
- package/src/components/TyRadio.tsx +56 -0
- package/src/components/TyRadioGroup.tsx +121 -0
- package/src/components/TySwitch.tsx +108 -0
- package/src/components/index.ts +21 -0
package/README.md
CHANGED
|
@@ -259,18 +259,31 @@ for everything else (spacing, layout, typography). Don't mix `bg-blue-500` with
|
|
|
259
259
|
|
|
260
260
|
## 🎨 Icons (3000+ Available)
|
|
261
261
|
|
|
262
|
-
|
|
262
|
+
Import only the icons you need (tree-shaking) and register them once at app startup
|
|
263
|
+
via the global `window.tyIcons` API exposed by `tyrell-components`:
|
|
263
264
|
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
window.
|
|
270
|
-
|
|
265
|
+
```tsx
|
|
266
|
+
// app/icons.ts (or wherever your app boots)
|
|
267
|
+
import { check, heart, star } from 'tyrell-components/icons/lucide';
|
|
268
|
+
|
|
269
|
+
export function registerIcons() {
|
|
270
|
+
window.tyIcons.register({ check, heart, star });
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
```tsx
|
|
275
|
+
// app/layout.tsx (call once, e.g. in a top-level effect)
|
|
276
|
+
'use client';
|
|
277
|
+
import { useEffect } from 'react';
|
|
278
|
+
import { registerIcons } from './icons';
|
|
279
|
+
|
|
280
|
+
export default function RootLayout({ children }) {
|
|
281
|
+
useEffect(() => { registerIcons(); }, []);
|
|
282
|
+
return <>{children}</>;
|
|
283
|
+
}
|
|
271
284
|
```
|
|
272
285
|
|
|
273
|
-
Then use in React:
|
|
286
|
+
Then use icons anywhere in React:
|
|
274
287
|
|
|
275
288
|
```tsx
|
|
276
289
|
import { TyIcon, TyButton } from 'tyrell-react';
|
|
@@ -279,7 +292,7 @@ function IconExample() {
|
|
|
279
292
|
return (
|
|
280
293
|
<>
|
|
281
294
|
<TyIcon name="check" size="lg" />
|
|
282
|
-
|
|
295
|
+
|
|
283
296
|
<TyButton flavor="primary">
|
|
284
297
|
<TyIcon name="heart" />
|
|
285
298
|
Like
|
|
@@ -289,6 +302,17 @@ function IconExample() {
|
|
|
289
302
|
}
|
|
290
303
|
```
|
|
291
304
|
|
|
305
|
+
CDN alternative (vanilla HTML, no bundler):
|
|
306
|
+
|
|
307
|
+
```html
|
|
308
|
+
<script type="module">
|
|
309
|
+
import { check, heart, star }
|
|
310
|
+
from 'https://cdn.jsdelivr.net/npm/tyrell-components@latest/lib/icons/lucide.js';
|
|
311
|
+
|
|
312
|
+
window.tyIcons.register({ check, heart, star });
|
|
313
|
+
</script>
|
|
314
|
+
```
|
|
315
|
+
|
|
292
316
|
## 📘 TypeScript Support
|
|
293
317
|
|
|
294
318
|
Full TypeScript definitions included:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TyButton.d.ts","sourceRoot":"","sources":["../../src/components/TyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,KAAK,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAC5F,KAAK,YAAY,GAAG,aAAa,GAAG,GAAG,aAAa,GAAG,GAAG,GAAG,aAAa,GAAG,CAAC;AAC9E,KAAK,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,aAAa;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IACrF,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,kBAAkB;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAErC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wBAAwB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"TyButton.d.ts","sourceRoot":"","sources":["../../src/components/TyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,KAAK,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAC5F,KAAK,YAAY,GAAG,aAAa,GAAG,GAAG,aAAa,GAAG,GAAG,GAAG,aAAa,GAAG,CAAC;AAC9E,KAAK,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,aAAa;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IACrF,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,kBAAkB;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAErC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wBAAwB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,QAAQ,mFAgFpB,CAAC"}
|
|
@@ -1,30 +1,35 @@
|
|
|
1
|
-
import React, { useEffect, useRef
|
|
2
|
-
export const TyButton = React.forwardRef(({ children, type, appearance, disabled, pill, action, wide, label, name, value, ...props }, ref) => {
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
export const TyButton = React.forwardRef(({ children, type, appearance, disabled, pill, action, wide, label, name, value, onClick, ...props }, ref) => {
|
|
3
3
|
const elementRef = useRef(null);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const form = element.closest('form');
|
|
9
|
-
if (!form)
|
|
10
|
-
return;
|
|
11
|
-
event.preventDefault();
|
|
12
|
-
event.stopPropagation();
|
|
13
|
-
const syntheticEvent = new Event('submit', {
|
|
14
|
-
bubbles: true,
|
|
15
|
-
cancelable: true
|
|
16
|
-
});
|
|
17
|
-
form.dispatchEvent(syntheticEvent);
|
|
18
|
-
}, [type]);
|
|
4
|
+
// Imperatively attach the click listener so onClick reliably fires for the
|
|
5
|
+
// CustomEvent('click') that <ty-button> re-dispatches on its host (the
|
|
6
|
+
// inner <button> calls stopPropagation, so React's delegated onClick can
|
|
7
|
+
// miss it). Also handles type=submit by dispatching a synthetic submit.
|
|
19
8
|
useEffect(() => {
|
|
20
9
|
const element = elementRef.current;
|
|
21
|
-
if (!element
|
|
10
|
+
if (!element)
|
|
22
11
|
return;
|
|
23
|
-
|
|
12
|
+
const handler = (event) => {
|
|
13
|
+
if (type === 'submit') {
|
|
14
|
+
const form = element.closest('form');
|
|
15
|
+
if (form) {
|
|
16
|
+
event.preventDefault();
|
|
17
|
+
event.stopPropagation();
|
|
18
|
+
form.dispatchEvent(new Event('submit', {
|
|
19
|
+
bubbles: true,
|
|
20
|
+
cancelable: true,
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (onClick) {
|
|
25
|
+
onClick(event);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
element.addEventListener('click', handler);
|
|
24
29
|
return () => {
|
|
25
|
-
element.removeEventListener('click',
|
|
30
|
+
element.removeEventListener('click', handler);
|
|
26
31
|
};
|
|
27
|
-
}, [type,
|
|
32
|
+
}, [type, onClick]);
|
|
28
33
|
useEffect(() => {
|
|
29
34
|
if (ref && elementRef.current) {
|
|
30
35
|
if (typeof ref === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TyButton.js","sourceRoot":"","sources":["../../src/components/TyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"TyButton.js","sourceRoot":"","sources":["../../src/components/TyButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TyDropdown.d.ts","sourceRoot":"","sources":["../../src/components/TyDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,CAAC;CACrB;AAGD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACpG,KAAK,CAAC,EAAE,OAAO,WAAW,EAAE,oBAAoB,CAAC;IACjD,+BAA+B;IAC/B,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAEhF,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IAGvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAGjF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"TyDropdown.d.ts","sourceRoot":"","sources":["../../src/components/TyDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,CAAC;CACrB;AAGD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACpG,KAAK,CAAC,EAAE,OAAO,WAAW,EAAE,oBAAoB,CAAC;IACjD,+BAA+B;IAC/B,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAEhF,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IAGvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAGjF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,eAAO,MAAM,UAAU,qFA6ItB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useCallback } from 'react';
|
|
2
2
|
// React wrapper for ty-dropdown web component
|
|
3
|
-
export const TyDropdown = React.forwardRef(({ options, children, onChange, onSearch, disabled, notSearchable, externalSearch, clearable, notClearable, debounce, name, ...props }, ref) => {
|
|
3
|
+
export const TyDropdown = React.forwardRef(({ options, children, onChange, onSearch, disabled, notSearchable, externalSearch, clearable, notClearable, debounce, name, value, ...props }, ref) => {
|
|
4
4
|
const elementRef = useRef(null);
|
|
5
5
|
const handleChange = useCallback((event) => {
|
|
6
6
|
if (onChange) {
|
|
@@ -32,6 +32,18 @@ export const TyDropdown = React.forwardRef(({ options, children, onChange, onSea
|
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
34
|
}, [handleChange, handleSearch, onChange, onSearch]);
|
|
35
|
+
// Imperatively sync `value` to the underlying element's property whenever
|
|
36
|
+
// it changes. React 18's prop-to-property bridging for custom elements is
|
|
37
|
+
// unreliable for empty strings (programmatic resets), so we set the
|
|
38
|
+
// property directly to guarantee the dropdown clears on `value=""`.
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
const element = elementRef.current;
|
|
41
|
+
if (!element)
|
|
42
|
+
return;
|
|
43
|
+
if (element.value !== value) {
|
|
44
|
+
element.value = value ?? '';
|
|
45
|
+
}
|
|
46
|
+
}, [value]);
|
|
35
47
|
// Handle ref forwarding
|
|
36
48
|
useEffect(() => {
|
|
37
49
|
if (ref && elementRef.current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TyDropdown.js","sourceRoot":"","sources":["../../src/components/TyDropdown.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TyDropdown.js","sourceRoot":"","sources":["../../src/components/TyDropdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TyRadioProps extends React.HTMLAttributes<HTMLElement> {
|
|
3
|
+
/** Form field value (selected by parent ty-radio-group when matches its `value`) */
|
|
4
|
+
value?: string;
|
|
5
|
+
/**
|
|
6
|
+
* Selected state. Usually managed by the parent `<TyRadioGroup>` based on its
|
|
7
|
+
* own `value`; set explicitly only when using `ty-radio` outside a group.
|
|
8
|
+
*/
|
|
9
|
+
checked?: boolean;
|
|
10
|
+
/** Disable this individual radio */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
/** Radio size — typically inherited from the parent group */
|
|
13
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
14
|
+
/** Semantic styling variant — typically inherited from the parent group */
|
|
15
|
+
flavor?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
|
|
16
|
+
/** Label content (wrap in a `<label>` for click delegation, see ty-radio docs) */
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export declare const TyRadio: React.ForwardRefExoticComponent<TyRadioProps & React.RefAttributes<HTMLElement>>;
|
|
20
|
+
//# sourceMappingURL=TyRadio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyRadio.d.ts","sourceRoot":"","sources":["../../src/components/TyRadio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACrE,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAEhF,kFAAkF;IAClF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,OAAO,kFA4BnB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
export const TyRadio = React.forwardRef(({ children, value, checked, disabled, size, flavor, ...props }, ref) => {
|
|
3
|
+
const elementRef = useRef(null);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
if (ref && elementRef.current) {
|
|
6
|
+
if (typeof ref === 'function') {
|
|
7
|
+
ref(elementRef.current);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
ref.current = elementRef.current;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}, [ref]);
|
|
14
|
+
const webComponentProps = {
|
|
15
|
+
...props,
|
|
16
|
+
ref: elementRef,
|
|
17
|
+
};
|
|
18
|
+
if (checked)
|
|
19
|
+
webComponentProps.checked = '';
|
|
20
|
+
if (disabled)
|
|
21
|
+
webComponentProps.disabled = '';
|
|
22
|
+
if (value !== undefined)
|
|
23
|
+
webComponentProps.value = value;
|
|
24
|
+
if (size)
|
|
25
|
+
webComponentProps.size = size;
|
|
26
|
+
if (flavor)
|
|
27
|
+
webComponentProps.flavor = flavor;
|
|
28
|
+
return React.createElement('ty-radio', webComponentProps, children);
|
|
29
|
+
});
|
|
30
|
+
TyRadio.displayName = 'TyRadio';
|
|
31
|
+
//# sourceMappingURL=TyRadio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyRadio.js","sourceRoot":"","sources":["../../src/components/TyRadio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAyBjD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CACrC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,iBAAiB,GAAwB;QAC7C,GAAG,KAAK;QACR,GAAG,EAAE,UAAU;KAChB,CAAC;IAEF,IAAI,OAAO;QAAE,iBAAiB,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5C,IAAI,QAAQ;QAAE,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAC;IAE9C,IAAI,KAAK,KAAK,SAAS;QAAE,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;IACzD,IAAI,IAAI;QAAE,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,IAAI,MAAM;QAAE,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;IAE9C,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AACtE,CAAC,CACF,CAAC;AAEF,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TyRadioGroupProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange' | 'onInput'> {
|
|
3
|
+
/** Currently selected value (matches one child `<TyRadio value="...">`) */
|
|
4
|
+
value?: string;
|
|
5
|
+
/** Form field name */
|
|
6
|
+
name?: string;
|
|
7
|
+
/** Group label rendered above the radios */
|
|
8
|
+
label?: string;
|
|
9
|
+
/** Disable the entire group */
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/** Required field — renders required-icon next to the label */
|
|
12
|
+
required?: boolean;
|
|
13
|
+
/** Error message rendered below the group */
|
|
14
|
+
error?: string;
|
|
15
|
+
/** Layout direction for radio children */
|
|
16
|
+
orientation?: 'vertical' | 'horizontal';
|
|
17
|
+
/** Group size — propagates to all `<TyRadio>` children */
|
|
18
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
19
|
+
/** Group flavor — propagates to all `<TyRadio>` children */
|
|
20
|
+
flavor?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
|
|
21
|
+
/**
|
|
22
|
+
* Fires when selection changes (React convention)
|
|
23
|
+
* Maps to native 'input' event from ty-radio-group
|
|
24
|
+
*/
|
|
25
|
+
onChange?: (event: CustomEvent<TyRadioGroupEventDetail>) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Fires on blur if value changed (native DOM behavior)
|
|
28
|
+
* Maps to native 'change' event from ty-radio-group
|
|
29
|
+
*/
|
|
30
|
+
onChangeCommit?: (event: CustomEvent<TyRadioGroupEventDetail>) => void;
|
|
31
|
+
/** `<TyRadio>` children */
|
|
32
|
+
children?: React.ReactNode;
|
|
33
|
+
}
|
|
34
|
+
export interface TyRadioGroupEventDetail {
|
|
35
|
+
value: string;
|
|
36
|
+
formValue: string;
|
|
37
|
+
originalEvent: Event;
|
|
38
|
+
}
|
|
39
|
+
export declare const TyRadioGroup: React.ForwardRefExoticComponent<TyRadioGroupProps & React.RefAttributes<HTMLElement>>;
|
|
40
|
+
//# sourceMappingURL=TyRadioGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyRadioGroup.d.ts","sourceRoot":"","sources":["../../src/components/TyRadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACxG,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0CAA0C;IAC1C,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IAExC,0DAA0D;IAC1D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAEhF;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;IAEjE;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;IAEvE,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,KAAK,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,uFAkExB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
export const TyRadioGroup = React.forwardRef(({ children, value, name, label, disabled, required, error, orientation, size, flavor, onChange, onChangeCommit, ...props }, ref) => {
|
|
3
|
+
const elementRef = useRef(null);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
const element = elementRef.current;
|
|
6
|
+
if (!element)
|
|
7
|
+
return;
|
|
8
|
+
const handleInput = (event) => {
|
|
9
|
+
if (onChange)
|
|
10
|
+
onChange(event);
|
|
11
|
+
};
|
|
12
|
+
const handleChangeCommit = (event) => {
|
|
13
|
+
if (onChangeCommit)
|
|
14
|
+
onChangeCommit(event);
|
|
15
|
+
};
|
|
16
|
+
element.addEventListener('input', handleInput);
|
|
17
|
+
element.addEventListener('change', handleChangeCommit);
|
|
18
|
+
return () => {
|
|
19
|
+
element.removeEventListener('input', handleInput);
|
|
20
|
+
element.removeEventListener('change', handleChangeCommit);
|
|
21
|
+
};
|
|
22
|
+
}, [onChange, onChangeCommit]);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (ref && elementRef.current) {
|
|
25
|
+
if (typeof ref === 'function') {
|
|
26
|
+
ref(elementRef.current);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
ref.current = elementRef.current;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}, [ref]);
|
|
33
|
+
const webComponentProps = {
|
|
34
|
+
...props,
|
|
35
|
+
ref: elementRef,
|
|
36
|
+
};
|
|
37
|
+
if (disabled)
|
|
38
|
+
webComponentProps.disabled = '';
|
|
39
|
+
if (required)
|
|
40
|
+
webComponentProps.required = '';
|
|
41
|
+
if (value !== undefined)
|
|
42
|
+
webComponentProps.value = value;
|
|
43
|
+
if (name)
|
|
44
|
+
webComponentProps.name = name;
|
|
45
|
+
if (label)
|
|
46
|
+
webComponentProps.label = label;
|
|
47
|
+
if (error)
|
|
48
|
+
webComponentProps.error = error;
|
|
49
|
+
if (orientation)
|
|
50
|
+
webComponentProps.orientation = orientation;
|
|
51
|
+
if (size)
|
|
52
|
+
webComponentProps.size = size;
|
|
53
|
+
if (flavor)
|
|
54
|
+
webComponentProps.flavor = flavor;
|
|
55
|
+
return React.createElement('ty-radio-group', webComponentProps, children);
|
|
56
|
+
});
|
|
57
|
+
TyRadioGroup.displayName = 'TyRadioGroup';
|
|
58
|
+
//# sourceMappingURL=TyRadioGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyRadioGroup.js","sourceRoot":"","sources":["../../src/components/TyRadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAoDjD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAC1C,CAAC,EACC,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,WAAW,EACX,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,cAAc,EACd,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YACnC,IAAI,QAAQ;gBAAE,QAAQ,CAAC,KAA6C,CAAC,CAAC;QACxE,CAAC,CAAC;QACF,MAAM,kBAAkB,GAAG,CAAC,KAAY,EAAE,EAAE;YAC1C,IAAI,cAAc;gBAAE,cAAc,CAAC,KAA6C,CAAC,CAAC;QACpF,CAAC,CAAC;QAEF,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/C,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAEvD,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAClD,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC5D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,iBAAiB,GAAwB;QAC7C,GAAG,KAAK;QACR,GAAG,EAAE,UAAU;KAChB,CAAC;IAEF,IAAI,QAAQ;QAAE,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC9C,IAAI,QAAQ;QAAE,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAC;IAE9C,IAAI,KAAK,KAAK,SAAS;QAAE,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;IACzD,IAAI,IAAI;QAAE,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,IAAI,KAAK;QAAE,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3C,IAAI,KAAK;QAAE,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3C,IAAI,WAAW;QAAE,iBAAiB,CAAC,WAAW,GAAG,WAAW,CAAC;IAC7D,IAAI,IAAI;QAAE,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,IAAI,MAAM;QAAE,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;IAE9C,OAAO,KAAK,CAAC,aAAa,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAC5E,CAAC,CACF,CAAC;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TySwitchProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange' | 'onInput'> {
|
|
3
|
+
/** Checked (on) state */
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
/** Form field value when checked */
|
|
6
|
+
value?: string;
|
|
7
|
+
/** Form field name */
|
|
8
|
+
name?: string;
|
|
9
|
+
/** Disable the switch */
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/** Required field */
|
|
12
|
+
required?: boolean;
|
|
13
|
+
/** Switch size */
|
|
14
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
15
|
+
/** Semantic styling variant */
|
|
16
|
+
flavor?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
|
|
17
|
+
/**
|
|
18
|
+
* Fires when switch state changes (React convention)
|
|
19
|
+
* Maps to native 'input' event from ty-switch
|
|
20
|
+
*/
|
|
21
|
+
onChange?: (event: CustomEvent<TySwitchEventDetail>) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Fires on blur if value changed (native DOM behavior)
|
|
24
|
+
* Maps to native 'change' event from ty-switch
|
|
25
|
+
*/
|
|
26
|
+
onChangeCommit?: (event: CustomEvent<TySwitchEventDetail>) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface TySwitchEventDetail {
|
|
29
|
+
value: boolean;
|
|
30
|
+
checked: boolean;
|
|
31
|
+
formValue: string | null;
|
|
32
|
+
originalEvent: Event;
|
|
33
|
+
}
|
|
34
|
+
export declare const TySwitch: React.ForwardRefExoticComponent<TySwitchProps & React.RefAttributes<HTMLElement>>;
|
|
35
|
+
//# sourceMappingURL=TySwitch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TySwitch.d.ts","sourceRoot":"","sources":["../../src/components/TySwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpG,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kBAAkB;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,+BAA+B;IAC/B,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAEhF;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAE7D;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,KAAK,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,mFA6DpB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
export const TySwitch = React.forwardRef(({ checked, value, name, disabled, required, size, flavor, onChange, onChangeCommit, ...props }, ref) => {
|
|
3
|
+
const elementRef = useRef(null);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
const element = elementRef.current;
|
|
6
|
+
if (!element)
|
|
7
|
+
return;
|
|
8
|
+
const handleInput = (event) => {
|
|
9
|
+
if (onChange)
|
|
10
|
+
onChange(event);
|
|
11
|
+
};
|
|
12
|
+
const handleChangeCommit = (event) => {
|
|
13
|
+
if (onChangeCommit)
|
|
14
|
+
onChangeCommit(event);
|
|
15
|
+
};
|
|
16
|
+
element.addEventListener('input', handleInput);
|
|
17
|
+
element.addEventListener('change', handleChangeCommit);
|
|
18
|
+
return () => {
|
|
19
|
+
element.removeEventListener('input', handleInput);
|
|
20
|
+
element.removeEventListener('change', handleChangeCommit);
|
|
21
|
+
};
|
|
22
|
+
}, [onChange, onChangeCommit]);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (ref && elementRef.current) {
|
|
25
|
+
if (typeof ref === 'function') {
|
|
26
|
+
ref(elementRef.current);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
ref.current = elementRef.current;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}, [ref]);
|
|
33
|
+
const webComponentProps = {
|
|
34
|
+
...props,
|
|
35
|
+
ref: elementRef,
|
|
36
|
+
};
|
|
37
|
+
if (checked)
|
|
38
|
+
webComponentProps.checked = '';
|
|
39
|
+
if (disabled)
|
|
40
|
+
webComponentProps.disabled = '';
|
|
41
|
+
if (required)
|
|
42
|
+
webComponentProps.required = '';
|
|
43
|
+
if (value)
|
|
44
|
+
webComponentProps.value = value;
|
|
45
|
+
if (name)
|
|
46
|
+
webComponentProps.name = name;
|
|
47
|
+
if (size)
|
|
48
|
+
webComponentProps.size = size;
|
|
49
|
+
if (flavor)
|
|
50
|
+
webComponentProps.flavor = flavor;
|
|
51
|
+
return React.createElement('ty-switch', webComponentProps);
|
|
52
|
+
});
|
|
53
|
+
TySwitch.displayName = 'TySwitch';
|
|
54
|
+
//# sourceMappingURL=TySwitch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TySwitch.js","sourceRoot":"","sources":["../../src/components/TySwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AA4CjD,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CACtC,CAAC,EACC,OAAO,EACP,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,cAAc,EACd,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YACnC,IAAI,QAAQ;gBAAE,QAAQ,CAAC,KAAyC,CAAC,CAAC;QACpE,CAAC,CAAC;QACF,MAAM,kBAAkB,GAAG,CAAC,KAAY,EAAE,EAAE;YAC1C,IAAI,cAAc;gBAAE,cAAc,CAAC,KAAyC,CAAC,CAAC;QAChF,CAAC,CAAC;QAEF,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/C,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAEvD,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAClD,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC5D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,iBAAiB,GAAwB;QAC7C,GAAG,KAAK;QACR,GAAG,EAAE,UAAU;KAChB,CAAC;IAEF,IAAI,OAAO;QAAE,iBAAiB,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5C,IAAI,QAAQ;QAAE,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC9C,IAAI,QAAQ;QAAE,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAC;IAE9C,IAAI,KAAK;QAAE,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3C,IAAI,IAAI;QAAE,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,IAAI,IAAI;QAAE,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,IAAI,MAAM;QAAE,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;IAE9C,OAAO,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAC7D,CAAC,CACF,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC"}
|
|
@@ -26,6 +26,12 @@ export { TyPopup } from './TyPopup';
|
|
|
26
26
|
export type { TyPopupProps, TyPopupElement } from './TyPopup';
|
|
27
27
|
export { TyCheckbox } from './TyCheckbox';
|
|
28
28
|
export type { TyCheckboxProps, TyCheckboxEventDetail } from './TyCheckbox';
|
|
29
|
+
export { TySwitch } from './TySwitch';
|
|
30
|
+
export type { TySwitchProps, TySwitchEventDetail } from './TySwitch';
|
|
31
|
+
export { TyRadio } from './TyRadio';
|
|
32
|
+
export type { TyRadioProps } from './TyRadio';
|
|
33
|
+
export { TyRadioGroup } from './TyRadioGroup';
|
|
34
|
+
export type { TyRadioGroupProps, TyRadioGroupEventDetail } from './TyRadioGroup';
|
|
29
35
|
export { TyCopy } from './TyCopy';
|
|
30
36
|
export type { TyCopyProps } from './TyCopy';
|
|
31
37
|
export { TyTabs } from './TyTabs';
|
|
@@ -58,6 +64,9 @@ export { TyCalendar as Calendar } from './TyCalendar';
|
|
|
58
64
|
export { TyDatePicker as DatePicker } from './TyDatePicker';
|
|
59
65
|
export { TyPopup as Popup } from './TyPopup';
|
|
60
66
|
export { TyCheckbox as Checkbox } from './TyCheckbox';
|
|
67
|
+
export { TySwitch as Switch } from './TySwitch';
|
|
68
|
+
export { TyRadio as Radio } from './TyRadio';
|
|
69
|
+
export { TyRadioGroup as RadioGroup } from './TyRadioGroup';
|
|
61
70
|
export { TyCopy as Copy } from './TyCopy';
|
|
62
71
|
export { TyTabs as Tabs } from './TyTabs';
|
|
63
72
|
export { TyTab as Tab } from './TyTab';
|
|
@@ -81,6 +90,9 @@ export type { TyCalendarProps as CalendarProps, TyCalendarChangeEventDetail as C
|
|
|
81
90
|
export type { TyDatePickerProps as DatePickerProps, TyDatePickerEventDetail as DatePickerEventDetail } from './TyDatePicker';
|
|
82
91
|
export type { TyPopupProps as PopupProps, TyPopupElement as PopupElement } from './TyPopup';
|
|
83
92
|
export type { TyCheckboxProps as CheckboxProps, TyCheckboxEventDetail as CheckboxEventDetail } from './TyCheckbox';
|
|
93
|
+
export type { TySwitchProps as SwitchProps, TySwitchEventDetail as SwitchEventDetail } from './TySwitch';
|
|
94
|
+
export type { TyRadioProps as RadioProps } from './TyRadio';
|
|
95
|
+
export type { TyRadioGroupProps as RadioGroupProps, TyRadioGroupEventDetail as RadioGroupEventDetail } from './TyRadioGroup';
|
|
84
96
|
export type { TyCopyProps as CopyProps } from './TyCopy';
|
|
85
97
|
export type { TyTabsProps as TabsProps } from './TyTabs';
|
|
86
98
|
export type { TyTabProps as TabProps } from './TyTab';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -23,6 +23,9 @@ export { TyCalendar } from './TyCalendar';
|
|
|
23
23
|
export { TyDatePicker } from './TyDatePicker';
|
|
24
24
|
export { TyPopup } from './TyPopup';
|
|
25
25
|
export { TyCheckbox } from './TyCheckbox';
|
|
26
|
+
export { TySwitch } from './TySwitch';
|
|
27
|
+
export { TyRadio } from './TyRadio';
|
|
28
|
+
export { TyRadioGroup } from './TyRadioGroup';
|
|
26
29
|
export { TyCopy } from './TyCopy';
|
|
27
30
|
export { TyTabs } from './TyTabs';
|
|
28
31
|
export { TyTab } from './TyTab';
|
|
@@ -49,6 +52,9 @@ export { TyCalendar as Calendar } from './TyCalendar';
|
|
|
49
52
|
export { TyDatePicker as DatePicker } from './TyDatePicker';
|
|
50
53
|
export { TyPopup as Popup } from './TyPopup';
|
|
51
54
|
export { TyCheckbox as Checkbox } from './TyCheckbox';
|
|
55
|
+
export { TySwitch as Switch } from './TySwitch';
|
|
56
|
+
export { TyRadio as Radio } from './TyRadio';
|
|
57
|
+
export { TyRadioGroup as RadioGroup } from './TyRadioGroup';
|
|
52
58
|
export { TyCopy as Copy } from './TyCopy';
|
|
53
59
|
export { TyTabs as Tabs } from './TyTabs';
|
|
54
60
|
export { TyTab as Tab } from './TyTab';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,+BAA+B;AAC/B,sEAAsE;AACtE,0EAA0E;AAC1E,gFAAgF;AAChF,iFAAiF;AACjF,EAAE;AACF,sDAAsD;AAEtD,sEAAsE;AACtE,6DAA6D;AAC7D,sEAAsE;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,sEAAsE;AACtE,sDAAsD;AACtD,sEAAsE;AAEtE,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,eAAe,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,oBAAoB,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,gBAAgB,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,iBAAiB,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -72,36 +72,41 @@ export const TyButton = React.forwardRef<HTMLElement, TyButtonProps>(
|
|
|
72
72
|
label,
|
|
73
73
|
name,
|
|
74
74
|
value,
|
|
75
|
+
onClick,
|
|
75
76
|
...props
|
|
76
77
|
}, ref) => {
|
|
77
78
|
const elementRef = useRef<HTMLElement>(null);
|
|
78
79
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const form = element.closest('form');
|
|
84
|
-
if (!form) return;
|
|
85
|
-
|
|
86
|
-
event.preventDefault();
|
|
87
|
-
event.stopPropagation();
|
|
88
|
-
|
|
89
|
-
const syntheticEvent = new Event('submit', {
|
|
90
|
-
bubbles: true,
|
|
91
|
-
cancelable: true
|
|
92
|
-
});
|
|
93
|
-
form.dispatchEvent(syntheticEvent);
|
|
94
|
-
}, [type]);
|
|
95
|
-
|
|
80
|
+
// Imperatively attach the click listener so onClick reliably fires for the
|
|
81
|
+
// CustomEvent('click') that <ty-button> re-dispatches on its host (the
|
|
82
|
+
// inner <button> calls stopPropagation, so React's delegated onClick can
|
|
83
|
+
// miss it). Also handles type=submit by dispatching a synthetic submit.
|
|
96
84
|
useEffect(() => {
|
|
97
85
|
const element = elementRef.current;
|
|
98
|
-
if (!element
|
|
86
|
+
if (!element) return;
|
|
87
|
+
|
|
88
|
+
const handler = (event: Event) => {
|
|
89
|
+
if (type === 'submit') {
|
|
90
|
+
const form = element.closest('form');
|
|
91
|
+
if (form) {
|
|
92
|
+
event.preventDefault();
|
|
93
|
+
event.stopPropagation();
|
|
94
|
+
form.dispatchEvent(new Event('submit', {
|
|
95
|
+
bubbles: true,
|
|
96
|
+
cancelable: true,
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (onClick) {
|
|
101
|
+
onClick(event as unknown as React.MouseEvent<HTMLElement>);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
99
104
|
|
|
100
|
-
element.addEventListener('click',
|
|
105
|
+
element.addEventListener('click', handler);
|
|
101
106
|
return () => {
|
|
102
|
-
element.removeEventListener('click',
|
|
107
|
+
element.removeEventListener('click', handler);
|
|
103
108
|
};
|
|
104
|
-
}, [type,
|
|
109
|
+
}, [type, onClick]);
|
|
105
110
|
|
|
106
111
|
useEffect(() => {
|
|
107
112
|
if (ref && elementRef.current) {
|
|
@@ -73,18 +73,19 @@ export interface TyDropdownProps extends Omit<React.HTMLAttributes<HTMLElement>,
|
|
|
73
73
|
|
|
74
74
|
// React wrapper for ty-dropdown web component
|
|
75
75
|
export const TyDropdown = React.forwardRef<HTMLElement, TyDropdownProps>(
|
|
76
|
-
({
|
|
77
|
-
options,
|
|
78
|
-
children,
|
|
79
|
-
onChange,
|
|
80
|
-
onSearch,
|
|
81
|
-
disabled,
|
|
76
|
+
({
|
|
77
|
+
options,
|
|
78
|
+
children,
|
|
79
|
+
onChange,
|
|
80
|
+
onSearch,
|
|
81
|
+
disabled,
|
|
82
82
|
notSearchable,
|
|
83
83
|
externalSearch,
|
|
84
84
|
clearable,
|
|
85
85
|
notClearable,
|
|
86
86
|
debounce,
|
|
87
87
|
name,
|
|
88
|
+
value,
|
|
88
89
|
...props
|
|
89
90
|
}, ref) => {
|
|
90
91
|
const elementRef = useRef<HTMLElement>(null);
|
|
@@ -109,7 +110,7 @@ export const TyDropdown = React.forwardRef<HTMLElement, TyDropdownProps>(
|
|
|
109
110
|
if (onChange) {
|
|
110
111
|
element.addEventListener('change', handleChange as EventListener);
|
|
111
112
|
}
|
|
112
|
-
|
|
113
|
+
|
|
113
114
|
if (onSearch) {
|
|
114
115
|
element.addEventListener('search', handleSearch as EventListener);
|
|
115
116
|
}
|
|
@@ -124,6 +125,18 @@ export const TyDropdown = React.forwardRef<HTMLElement, TyDropdownProps>(
|
|
|
124
125
|
};
|
|
125
126
|
}, [handleChange, handleSearch, onChange, onSearch]);
|
|
126
127
|
|
|
128
|
+
// Imperatively sync `value` to the underlying element's property whenever
|
|
129
|
+
// it changes. React 18's prop-to-property bridging for custom elements is
|
|
130
|
+
// unreliable for empty strings (programmatic resets), so we set the
|
|
131
|
+
// property directly to guarantee the dropdown clears on `value=""`.
|
|
132
|
+
useEffect(() => {
|
|
133
|
+
const element = elementRef.current as any;
|
|
134
|
+
if (!element) return;
|
|
135
|
+
if (element.value !== value) {
|
|
136
|
+
element.value = value ?? '';
|
|
137
|
+
}
|
|
138
|
+
}, [value]);
|
|
139
|
+
|
|
127
140
|
// Handle ref forwarding
|
|
128
141
|
useEffect(() => {
|
|
129
142
|
if (ref && elementRef.current) {
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface TyRadioProps extends React.HTMLAttributes<HTMLElement> {
|
|
4
|
+
/** Form field value (selected by parent ty-radio-group when matches its `value`) */
|
|
5
|
+
value?: string;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Selected state. Usually managed by the parent `<TyRadioGroup>` based on its
|
|
9
|
+
* own `value`; set explicitly only when using `ty-radio` outside a group.
|
|
10
|
+
*/
|
|
11
|
+
checked?: boolean;
|
|
12
|
+
|
|
13
|
+
/** Disable this individual radio */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
|
|
16
|
+
/** Radio size — typically inherited from the parent group */
|
|
17
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
18
|
+
|
|
19
|
+
/** Semantic styling variant — typically inherited from the parent group */
|
|
20
|
+
flavor?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
|
|
21
|
+
|
|
22
|
+
/** Label content (wrap in a `<label>` for click delegation, see ty-radio docs) */
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const TyRadio = React.forwardRef<HTMLElement, TyRadioProps>(
|
|
27
|
+
({ children, value, checked, disabled, size, flavor, ...props }, ref) => {
|
|
28
|
+
const elementRef = useRef<HTMLElement>(null);
|
|
29
|
+
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (ref && elementRef.current) {
|
|
32
|
+
if (typeof ref === 'function') {
|
|
33
|
+
ref(elementRef.current);
|
|
34
|
+
} else {
|
|
35
|
+
ref.current = elementRef.current;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}, [ref]);
|
|
39
|
+
|
|
40
|
+
const webComponentProps: Record<string, any> = {
|
|
41
|
+
...props,
|
|
42
|
+
ref: elementRef,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
if (checked) webComponentProps.checked = '';
|
|
46
|
+
if (disabled) webComponentProps.disabled = '';
|
|
47
|
+
|
|
48
|
+
if (value !== undefined) webComponentProps.value = value;
|
|
49
|
+
if (size) webComponentProps.size = size;
|
|
50
|
+
if (flavor) webComponentProps.flavor = flavor;
|
|
51
|
+
|
|
52
|
+
return React.createElement('ty-radio', webComponentProps, children);
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
TyRadio.displayName = 'TyRadio';
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface TyRadioGroupProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange' | 'onInput'> {
|
|
4
|
+
/** Currently selected value (matches one child `<TyRadio value="...">`) */
|
|
5
|
+
value?: string;
|
|
6
|
+
|
|
7
|
+
/** Form field name */
|
|
8
|
+
name?: string;
|
|
9
|
+
|
|
10
|
+
/** Group label rendered above the radios */
|
|
11
|
+
label?: string;
|
|
12
|
+
|
|
13
|
+
/** Disable the entire group */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
|
|
16
|
+
/** Required field — renders required-icon next to the label */
|
|
17
|
+
required?: boolean;
|
|
18
|
+
|
|
19
|
+
/** Error message rendered below the group */
|
|
20
|
+
error?: string;
|
|
21
|
+
|
|
22
|
+
/** Layout direction for radio children */
|
|
23
|
+
orientation?: 'vertical' | 'horizontal';
|
|
24
|
+
|
|
25
|
+
/** Group size — propagates to all `<TyRadio>` children */
|
|
26
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
27
|
+
|
|
28
|
+
/** Group flavor — propagates to all `<TyRadio>` children */
|
|
29
|
+
flavor?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Fires when selection changes (React convention)
|
|
33
|
+
* Maps to native 'input' event from ty-radio-group
|
|
34
|
+
*/
|
|
35
|
+
onChange?: (event: CustomEvent<TyRadioGroupEventDetail>) => void;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Fires on blur if value changed (native DOM behavior)
|
|
39
|
+
* Maps to native 'change' event from ty-radio-group
|
|
40
|
+
*/
|
|
41
|
+
onChangeCommit?: (event: CustomEvent<TyRadioGroupEventDetail>) => void;
|
|
42
|
+
|
|
43
|
+
/** `<TyRadio>` children */
|
|
44
|
+
children?: React.ReactNode;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface TyRadioGroupEventDetail {
|
|
48
|
+
value: string;
|
|
49
|
+
formValue: string;
|
|
50
|
+
originalEvent: Event;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export const TyRadioGroup = React.forwardRef<HTMLElement, TyRadioGroupProps>(
|
|
54
|
+
({
|
|
55
|
+
children,
|
|
56
|
+
value,
|
|
57
|
+
name,
|
|
58
|
+
label,
|
|
59
|
+
disabled,
|
|
60
|
+
required,
|
|
61
|
+
error,
|
|
62
|
+
orientation,
|
|
63
|
+
size,
|
|
64
|
+
flavor,
|
|
65
|
+
onChange,
|
|
66
|
+
onChangeCommit,
|
|
67
|
+
...props
|
|
68
|
+
}, ref) => {
|
|
69
|
+
const elementRef = useRef<HTMLElement>(null);
|
|
70
|
+
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
const element = elementRef.current;
|
|
73
|
+
if (!element) return;
|
|
74
|
+
|
|
75
|
+
const handleInput = (event: Event) => {
|
|
76
|
+
if (onChange) onChange(event as CustomEvent<TyRadioGroupEventDetail>);
|
|
77
|
+
};
|
|
78
|
+
const handleChangeCommit = (event: Event) => {
|
|
79
|
+
if (onChangeCommit) onChangeCommit(event as CustomEvent<TyRadioGroupEventDetail>);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
element.addEventListener('input', handleInput);
|
|
83
|
+
element.addEventListener('change', handleChangeCommit);
|
|
84
|
+
|
|
85
|
+
return () => {
|
|
86
|
+
element.removeEventListener('input', handleInput);
|
|
87
|
+
element.removeEventListener('change', handleChangeCommit);
|
|
88
|
+
};
|
|
89
|
+
}, [onChange, onChangeCommit]);
|
|
90
|
+
|
|
91
|
+
useEffect(() => {
|
|
92
|
+
if (ref && elementRef.current) {
|
|
93
|
+
if (typeof ref === 'function') {
|
|
94
|
+
ref(elementRef.current);
|
|
95
|
+
} else {
|
|
96
|
+
ref.current = elementRef.current;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}, [ref]);
|
|
100
|
+
|
|
101
|
+
const webComponentProps: Record<string, any> = {
|
|
102
|
+
...props,
|
|
103
|
+
ref: elementRef,
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
if (disabled) webComponentProps.disabled = '';
|
|
107
|
+
if (required) webComponentProps.required = '';
|
|
108
|
+
|
|
109
|
+
if (value !== undefined) webComponentProps.value = value;
|
|
110
|
+
if (name) webComponentProps.name = name;
|
|
111
|
+
if (label) webComponentProps.label = label;
|
|
112
|
+
if (error) webComponentProps.error = error;
|
|
113
|
+
if (orientation) webComponentProps.orientation = orientation;
|
|
114
|
+
if (size) webComponentProps.size = size;
|
|
115
|
+
if (flavor) webComponentProps.flavor = flavor;
|
|
116
|
+
|
|
117
|
+
return React.createElement('ty-radio-group', webComponentProps, children);
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
TyRadioGroup.displayName = 'TyRadioGroup';
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface TySwitchProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange' | 'onInput'> {
|
|
4
|
+
/** Checked (on) state */
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
|
|
7
|
+
/** Form field value when checked */
|
|
8
|
+
value?: string;
|
|
9
|
+
|
|
10
|
+
/** Form field name */
|
|
11
|
+
name?: string;
|
|
12
|
+
|
|
13
|
+
/** Disable the switch */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
|
|
16
|
+
/** Required field */
|
|
17
|
+
required?: boolean;
|
|
18
|
+
|
|
19
|
+
/** Switch size */
|
|
20
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
21
|
+
|
|
22
|
+
/** Semantic styling variant */
|
|
23
|
+
flavor?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Fires when switch state changes (React convention)
|
|
27
|
+
* Maps to native 'input' event from ty-switch
|
|
28
|
+
*/
|
|
29
|
+
onChange?: (event: CustomEvent<TySwitchEventDetail>) => void;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Fires on blur if value changed (native DOM behavior)
|
|
33
|
+
* Maps to native 'change' event from ty-switch
|
|
34
|
+
*/
|
|
35
|
+
onChangeCommit?: (event: CustomEvent<TySwitchEventDetail>) => void;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface TySwitchEventDetail {
|
|
39
|
+
value: boolean;
|
|
40
|
+
checked: boolean;
|
|
41
|
+
formValue: string | null;
|
|
42
|
+
originalEvent: Event;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export const TySwitch = React.forwardRef<HTMLElement, TySwitchProps>(
|
|
46
|
+
({
|
|
47
|
+
checked,
|
|
48
|
+
value,
|
|
49
|
+
name,
|
|
50
|
+
disabled,
|
|
51
|
+
required,
|
|
52
|
+
size,
|
|
53
|
+
flavor,
|
|
54
|
+
onChange,
|
|
55
|
+
onChangeCommit,
|
|
56
|
+
...props
|
|
57
|
+
}, ref) => {
|
|
58
|
+
const elementRef = useRef<HTMLElement>(null);
|
|
59
|
+
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
const element = elementRef.current;
|
|
62
|
+
if (!element) return;
|
|
63
|
+
|
|
64
|
+
const handleInput = (event: Event) => {
|
|
65
|
+
if (onChange) onChange(event as CustomEvent<TySwitchEventDetail>);
|
|
66
|
+
};
|
|
67
|
+
const handleChangeCommit = (event: Event) => {
|
|
68
|
+
if (onChangeCommit) onChangeCommit(event as CustomEvent<TySwitchEventDetail>);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
element.addEventListener('input', handleInput);
|
|
72
|
+
element.addEventListener('change', handleChangeCommit);
|
|
73
|
+
|
|
74
|
+
return () => {
|
|
75
|
+
element.removeEventListener('input', handleInput);
|
|
76
|
+
element.removeEventListener('change', handleChangeCommit);
|
|
77
|
+
};
|
|
78
|
+
}, [onChange, onChangeCommit]);
|
|
79
|
+
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (ref && elementRef.current) {
|
|
82
|
+
if (typeof ref === 'function') {
|
|
83
|
+
ref(elementRef.current);
|
|
84
|
+
} else {
|
|
85
|
+
ref.current = elementRef.current;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}, [ref]);
|
|
89
|
+
|
|
90
|
+
const webComponentProps: Record<string, any> = {
|
|
91
|
+
...props,
|
|
92
|
+
ref: elementRef,
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
if (checked) webComponentProps.checked = '';
|
|
96
|
+
if (disabled) webComponentProps.disabled = '';
|
|
97
|
+
if (required) webComponentProps.required = '';
|
|
98
|
+
|
|
99
|
+
if (value) webComponentProps.value = value;
|
|
100
|
+
if (name) webComponentProps.name = name;
|
|
101
|
+
if (size) webComponentProps.size = size;
|
|
102
|
+
if (flavor) webComponentProps.flavor = flavor;
|
|
103
|
+
|
|
104
|
+
return React.createElement('ty-switch', webComponentProps);
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
TySwitch.displayName = 'TySwitch';
|
package/src/components/index.ts
CHANGED
|
@@ -53,6 +53,15 @@ export type { TyPopupProps, TyPopupElement } from './TyPopup';
|
|
|
53
53
|
export { TyCheckbox } from './TyCheckbox';
|
|
54
54
|
export type { TyCheckboxProps, TyCheckboxEventDetail } from './TyCheckbox';
|
|
55
55
|
|
|
56
|
+
export { TySwitch } from './TySwitch';
|
|
57
|
+
export type { TySwitchProps, TySwitchEventDetail } from './TySwitch';
|
|
58
|
+
|
|
59
|
+
export { TyRadio } from './TyRadio';
|
|
60
|
+
export type { TyRadioProps } from './TyRadio';
|
|
61
|
+
|
|
62
|
+
export { TyRadioGroup } from './TyRadioGroup';
|
|
63
|
+
export type { TyRadioGroupProps, TyRadioGroupEventDetail } from './TyRadioGroup';
|
|
64
|
+
|
|
56
65
|
export { TyCopy } from './TyCopy';
|
|
57
66
|
export type { TyCopyProps } from './TyCopy';
|
|
58
67
|
|
|
@@ -99,6 +108,9 @@ export { TyCalendar as Calendar } from './TyCalendar';
|
|
|
99
108
|
export { TyDatePicker as DatePicker } from './TyDatePicker';
|
|
100
109
|
export { TyPopup as Popup } from './TyPopup';
|
|
101
110
|
export { TyCheckbox as Checkbox } from './TyCheckbox';
|
|
111
|
+
export { TySwitch as Switch } from './TySwitch';
|
|
112
|
+
export { TyRadio as Radio } from './TyRadio';
|
|
113
|
+
export { TyRadioGroup as RadioGroup } from './TyRadioGroup';
|
|
102
114
|
export { TyCopy as Copy } from './TyCopy';
|
|
103
115
|
export { TyTabs as Tabs } from './TyTabs';
|
|
104
116
|
export { TyTab as Tab } from './TyTab';
|
|
@@ -155,6 +167,15 @@ export type { TyPopupProps as PopupProps, TyPopupElement as PopupElement } from
|
|
|
155
167
|
// Checkbox types
|
|
156
168
|
export type { TyCheckboxProps as CheckboxProps, TyCheckboxEventDetail as CheckboxEventDetail } from './TyCheckbox';
|
|
157
169
|
|
|
170
|
+
// Switch types
|
|
171
|
+
export type { TySwitchProps as SwitchProps, TySwitchEventDetail as SwitchEventDetail } from './TySwitch';
|
|
172
|
+
|
|
173
|
+
// Radio types
|
|
174
|
+
export type { TyRadioProps as RadioProps } from './TyRadio';
|
|
175
|
+
|
|
176
|
+
// RadioGroup types
|
|
177
|
+
export type { TyRadioGroupProps as RadioGroupProps, TyRadioGroupEventDetail as RadioGroupEventDetail } from './TyRadioGroup';
|
|
178
|
+
|
|
158
179
|
// Copy types
|
|
159
180
|
export type { TyCopyProps as CopyProps } from './TyCopy';
|
|
160
181
|
|