tyrell-react 1.0.0-TC10 → 1.0.0-TC12
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/components/TyButton.d.ts +2 -0
- package/dist/components/TyButton.d.ts.map +1 -1
- package/dist/components/TyButton.js +3 -1
- package/dist/components/TyButton.js.map +1 -1
- package/dist/components/TyCalendar.d.ts.map +1 -1
- package/dist/components/TyCalendar.js +6 -1
- package/dist/components/TyCalendar.js.map +1 -1
- package/dist/components/TyCheckbox.d.ts.map +1 -1
- package/dist/components/TyCheckbox.js +4 -0
- package/dist/components/TyCheckbox.js.map +1 -1
- package/dist/components/TyDatePicker.d.ts.map +1 -1
- package/dist/components/TyDatePicker.js +6 -1
- package/dist/components/TyDatePicker.js.map +1 -1
- package/dist/components/TyDropdown.d.ts +16 -5
- package/dist/components/TyDropdown.d.ts.map +1 -1
- package/dist/components/TyDropdown.js +11 -8
- package/dist/components/TyDropdown.js.map +1 -1
- package/dist/components/TyFileUpload.d.ts +31 -0
- package/dist/components/TyFileUpload.d.ts.map +1 -0
- package/dist/components/TyFileUpload.js +52 -0
- package/dist/components/TyFileUpload.js.map +1 -0
- package/dist/components/TyInput.d.ts.map +1 -1
- package/dist/components/TyInput.js +23 -1
- package/dist/components/TyInput.js.map +1 -1
- package/dist/components/TyMultiselect.d.ts +6 -0
- package/dist/components/TyMultiselect.d.ts.map +1 -1
- package/dist/components/TyMultiselect.js +7 -1
- package/dist/components/TyMultiselect.js.map +1 -1
- package/dist/components/TyRadio.d.ts.map +1 -1
- package/dist/components/TyRadio.js +15 -0
- package/dist/components/TyRadio.js.map +1 -1
- package/dist/components/TySwitch.d.ts.map +1 -1
- package/dist/components/TySwitch.js +15 -0
- package/dist/components/TySwitch.js.map +1 -1
- package/dist/components/TyTextarea.d.ts.map +1 -1
- package/dist/components/TyTextarea.js +20 -0
- package/dist/components/TyTextarea.js.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/utils/react-version.d.ts +2 -0
- package/dist/utils/react-version.d.ts.map +1 -0
- package/dist/utils/react-version.js +8 -0
- package/dist/utils/react-version.js.map +1 -0
- package/package.json +1 -1
- package/src/components/TyButton.tsx +6 -1
- package/src/components/TyCalendar.tsx +5 -1
- package/src/components/TyCheckbox.tsx +3 -0
- package/src/components/TyDatePicker.tsx +5 -1
- package/src/components/TyDropdown.tsx +35 -19
- package/src/components/TyFileUpload.tsx +103 -0
- package/src/components/TyInput.tsx +26 -1
- package/src/components/TyMultiselect.tsx +13 -1
- package/src/components/TyRadio.tsx +14 -0
- package/src/components/TySwitch.tsx +14 -0
- package/src/components/TyTextarea.tsx +23 -0
- package/src/components/index.ts +7 -0
- package/src/utils/react-version.ts +8 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
2
3
|
export const TySwitch = React.forwardRef(({ checked, value, name, disabled, required, size, flavor, onChange, onChangeCommit, ...props }, ref) => {
|
|
3
4
|
const elementRef = useRef(null);
|
|
4
5
|
useEffect(() => {
|
|
@@ -30,6 +31,20 @@ export const TySwitch = React.forwardRef(({ checked, value, name, disabled, requ
|
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
}, [ref]);
|
|
34
|
+
// Imperatively sync `checked` to the underlying property. React 18 sets
|
|
35
|
+
// boolean attributes as empty strings on first render but doesn't reliably
|
|
36
|
+
// remove them when the prop flips back to false on a custom element.
|
|
37
|
+
// React 19+ handles boolean prop-to-property bridging natively.
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (!needsPropertyBridge)
|
|
40
|
+
return;
|
|
41
|
+
const element = elementRef.current;
|
|
42
|
+
if (!element)
|
|
43
|
+
return;
|
|
44
|
+
if (Boolean(element.checked) !== Boolean(checked)) {
|
|
45
|
+
element.checked = Boolean(checked);
|
|
46
|
+
}
|
|
47
|
+
}, [checked]);
|
|
33
48
|
const webComponentProps = {
|
|
34
49
|
...props,
|
|
35
50
|
ref: elementRef,
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"TySwitch.js","sourceRoot":"","sources":["../../src/components/TySwitch.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TyTextarea.d.ts","sourceRoot":"","sources":["../../src/components/TyTextarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TyTextarea.d.ts","sourceRoot":"","sources":["../../src/components/TyTextarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAI9D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,KAAK,CAAC;CACtB;AAGD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvI,KAAK,CAAC,EAAE,OAAO,WAAW,EAAE,oBAAoB,CAAC;IACjD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAE/D;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAErE,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAEtC,0BAA0B;IAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AAMD,eAAO,MAAM,UAAU,qFA0HtB,CAAC"}
|
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
3
|
+
// One-time warning flag.
|
|
4
|
+
let _warnedOnInputProp = false;
|
|
2
5
|
// React wrapper for ty-textarea web component
|
|
3
6
|
export const TyTextarea = React.forwardRef(({ onChange, onChangeCommit, onFocus, onBlur, disabled, required, minHeight, maxHeight, ...props }, ref) => {
|
|
4
7
|
const elementRef = useRef(null);
|
|
8
|
+
// Same `onInput` → `onChange` redirect as TyInput. React's synthetic-event
|
|
9
|
+
// system strips event.detail; users hitting e.detail.value will crash.
|
|
10
|
+
const onInputProp = props.onInput;
|
|
11
|
+
if (onInputProp && !onChange) {
|
|
12
|
+
if (!_warnedOnInputProp) {
|
|
13
|
+
_warnedOnInputProp = true;
|
|
14
|
+
console.warn('[tyrell-react] <TyTextarea> received `onInput`. ' +
|
|
15
|
+
'React strips event.detail; use `onChange` instead — it receives the raw CustomEvent. ' +
|
|
16
|
+
'Forwarding for now, but please rename the prop.');
|
|
17
|
+
}
|
|
18
|
+
onChange = onInputProp;
|
|
19
|
+
}
|
|
20
|
+
delete props.onInput;
|
|
5
21
|
// Map onChange to input event (React convention)
|
|
6
22
|
const handleInput = useCallback((event) => {
|
|
7
23
|
if (onChange) {
|
|
@@ -71,7 +87,11 @@ export const TyTextarea = React.forwardRef(({ onChange, onChangeCommit, onFocus,
|
|
|
71
87
|
}
|
|
72
88
|
}, [ref]);
|
|
73
89
|
// Imperatively sync `value` to the underlying element's property.
|
|
90
|
+
// React 18 workaround: prop-to-property bridging is unreliable for empty
|
|
91
|
+
// strings on custom elements. React 19+ handles this natively.
|
|
74
92
|
useEffect(() => {
|
|
93
|
+
if (!needsPropertyBridge)
|
|
94
|
+
return;
|
|
75
95
|
const element = elementRef.current;
|
|
76
96
|
if (!element)
|
|
77
97
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TyTextarea.js","sourceRoot":"","sources":["../../src/components/TyTextarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"TyTextarea.js","sourceRoot":"","sources":["../../src/components/TyTextarea.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,8 @@ export { TyRadioGroup } from './TyRadioGroup';
|
|
|
34
34
|
export type { TyRadioGroupProps, TyRadioGroupEventDetail } from './TyRadioGroup';
|
|
35
35
|
export { TyCopy } from './TyCopy';
|
|
36
36
|
export type { TyCopyProps } from './TyCopy';
|
|
37
|
+
export { TyFileUpload } from './TyFileUpload';
|
|
38
|
+
export type { TyFileUploadProps, TyFileUploadEventDetail } from './TyFileUpload';
|
|
37
39
|
export { TyTabs } from './TyTabs';
|
|
38
40
|
export type { TyTabsProps, TabChangeDetail } from './TyTabs';
|
|
39
41
|
export { TyTab } from './TyTab';
|
|
@@ -68,6 +70,7 @@ export { TySwitch as Switch } from './TySwitch';
|
|
|
68
70
|
export { TyRadio as Radio } from './TyRadio';
|
|
69
71
|
export { TyRadioGroup as RadioGroup } from './TyRadioGroup';
|
|
70
72
|
export { TyCopy as Copy } from './TyCopy';
|
|
73
|
+
export { TyFileUpload as FileUpload } from './TyFileUpload';
|
|
71
74
|
export { TyTabs as Tabs } from './TyTabs';
|
|
72
75
|
export { TyTab as Tab } from './TyTab';
|
|
73
76
|
export { TyCalendarMonth as CalendarMonth } from './TyCalendarMonth';
|
|
@@ -94,6 +97,7 @@ export type { TySwitchProps as SwitchProps, TySwitchEventDetail as SwitchEventDe
|
|
|
94
97
|
export type { TyRadioProps as RadioProps } from './TyRadio';
|
|
95
98
|
export type { TyRadioGroupProps as RadioGroupProps, TyRadioGroupEventDetail as RadioGroupEventDetail } from './TyRadioGroup';
|
|
96
99
|
export type { TyCopyProps as CopyProps } from './TyCopy';
|
|
100
|
+
export type { TyFileUploadProps as FileUploadProps, TyFileUploadEventDetail as FileUploadEventDetail } from './TyFileUpload';
|
|
97
101
|
export type { TyTabsProps as TabsProps } from './TyTabs';
|
|
98
102
|
export type { TyTabProps as TabProps } from './TyTab';
|
|
99
103
|
export type { TyCalendarMonthProps as CalendarMonthProps } from './TyCalendarMonth';
|
|
@@ -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
|
@@ -27,6 +27,7 @@ export { TySwitch } from './TySwitch';
|
|
|
27
27
|
export { TyRadio } from './TyRadio';
|
|
28
28
|
export { TyRadioGroup } from './TyRadioGroup';
|
|
29
29
|
export { TyCopy } from './TyCopy';
|
|
30
|
+
export { TyFileUpload } from './TyFileUpload';
|
|
30
31
|
export { TyTabs } from './TyTabs';
|
|
31
32
|
export { TyTab } from './TyTab';
|
|
32
33
|
export { TyCalendarMonth } from './TyCalendarMonth';
|
|
@@ -56,6 +57,7 @@ export { TySwitch as Switch } from './TySwitch';
|
|
|
56
57
|
export { TyRadio as Radio } from './TyRadio';
|
|
57
58
|
export { TyRadioGroup as RadioGroup } from './TyRadioGroup';
|
|
58
59
|
export { TyCopy as Copy } from './TyCopy';
|
|
60
|
+
export { TyFileUpload as FileUpload } from './TyFileUpload';
|
|
59
61
|
export { TyTabs as Tabs } from './TyTabs';
|
|
60
62
|
export { TyTab as Tab } from './TyTab';
|
|
61
63
|
export { TyCalendarMonth as CalendarMonth } from './TyCalendarMonth';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-version.d.ts","sourceRoot":"","sources":["../../src/utils/react-version.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,SAAmC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
// React 19 natively bridges props to custom-element properties (including
|
|
3
|
+
// empty strings, `false` booleans, functions, and objects). On React 18 we
|
|
4
|
+
// must imperatively assign these properties via useEffect. Wrappers gate
|
|
5
|
+
// their bridging effects on this flag so the workaround is dead code on
|
|
6
|
+
// React 19+ and removable when React 18 support is eventually dropped.
|
|
7
|
+
export const needsPropertyBridge = parseInt(React.version, 10) < 19;
|
|
8
|
+
//# sourceMappingURL=react-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-version.js","sourceRoot":"","sources":["../../src/utils/react-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useRef
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
2
|
|
|
3
3
|
type BuiltinFlavor = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
|
|
4
4
|
type ShadedFlavor = BuiltinFlavor | `${BuiltinFlavor}+` | `${BuiltinFlavor}-`;
|
|
@@ -38,6 +38,9 @@ export interface TyButtonProps extends Omit<React.HTMLAttributes<HTMLElement>, '
|
|
|
38
38
|
/** Disable the button */
|
|
39
39
|
disabled?: boolean;
|
|
40
40
|
|
|
41
|
+
/** Loading state — shows a centered spinner, blocks click, preserves width */
|
|
42
|
+
loading?: boolean;
|
|
43
|
+
|
|
41
44
|
/** Pill-shaped button (rounded ends) */
|
|
42
45
|
pill?: boolean;
|
|
43
46
|
|
|
@@ -66,6 +69,7 @@ export const TyButton = React.forwardRef<HTMLElement, TyButtonProps>(
|
|
|
66
69
|
type,
|
|
67
70
|
appearance,
|
|
68
71
|
disabled,
|
|
72
|
+
loading,
|
|
69
73
|
pill,
|
|
70
74
|
action,
|
|
71
75
|
wide,
|
|
@@ -124,6 +128,7 @@ export const TyButton = React.forwardRef<HTMLElement, TyButtonProps>(
|
|
|
124
128
|
};
|
|
125
129
|
|
|
126
130
|
if (disabled) webComponentProps.disabled = '';
|
|
131
|
+
if (loading) webComponentProps.loading = '';
|
|
127
132
|
if (pill) webComponentProps.pill = '';
|
|
128
133
|
if (action) webComponentProps.action = '';
|
|
129
134
|
if (wide) webComponentProps.wide = '';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
2
3
|
|
|
3
4
|
// Type definitions for Ty Calendar component
|
|
4
5
|
export interface TyCalendarChangeEventDetail {
|
|
@@ -155,8 +156,11 @@ export const TyCalendar = React.forwardRef<HTMLElement, TyCalendarProps>(
|
|
|
155
156
|
};
|
|
156
157
|
}, [handleChange, handleNavigate, onChange, onNavigate]);
|
|
157
158
|
|
|
158
|
-
// Set function properties directly on the element
|
|
159
|
+
// Set function/object properties directly on the element. Required on
|
|
160
|
+
// React 18, which can't bridge non-string props onto custom elements.
|
|
161
|
+
// React 19+ handles function/object prop-to-property bridging natively.
|
|
159
162
|
useEffect(() => {
|
|
163
|
+
if (!needsPropertyBridge) return;
|
|
160
164
|
const element = elementRef.current;
|
|
161
165
|
if (!element) return;
|
|
162
166
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
2
3
|
|
|
3
4
|
// Type definitions for Ty Checkbox component
|
|
4
5
|
export interface TyCheckboxProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange' | 'onInput'> {
|
|
@@ -112,7 +113,9 @@ export const TyCheckbox = React.forwardRef<HTMLElement, TyCheckboxProps>(
|
|
|
112
113
|
// Imperatively sync `checked` to the underlying property. React 18 sets
|
|
113
114
|
// boolean attributes as empty strings on first render but doesn't reliably
|
|
114
115
|
// remove them when the prop flips back to false on a custom element.
|
|
116
|
+
// React 19+ handles boolean prop-to-property bridging natively.
|
|
115
117
|
useEffect(() => {
|
|
118
|
+
if (!needsPropertyBridge) return;
|
|
116
119
|
const element = elementRef.current as any;
|
|
117
120
|
if (!element) return;
|
|
118
121
|
if (Boolean(element.checked) !== Boolean(checked)) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
2
3
|
|
|
3
4
|
// Type definitions for Ty DatePicker component
|
|
4
5
|
export interface TyDatePickerEventDetail {
|
|
@@ -92,8 +93,11 @@ export const TyDatePicker = React.forwardRef<HTMLElement, TyDatePickerProps>(
|
|
|
92
93
|
}
|
|
93
94
|
}, [ref]);
|
|
94
95
|
|
|
95
|
-
// Sync value property with the web component
|
|
96
|
+
// Sync value property with the web component.
|
|
97
|
+
// React 18 workaround: prop-to-property bridging is unreliable for empty
|
|
98
|
+
// strings on custom elements. React 19+ handles this natively.
|
|
96
99
|
useEffect(() => {
|
|
100
|
+
if (!needsPropertyBridge) return;
|
|
97
101
|
const element = elementRef.current;
|
|
98
102
|
if (element && value !== undefined) {
|
|
99
103
|
// Set the value property directly on the element
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
2
3
|
|
|
3
4
|
// Option data structure for data-driven approach
|
|
4
5
|
export interface OptionData {
|
|
@@ -32,30 +33,42 @@ export interface TyDropdownProps extends Omit<React.HTMLAttributes<HTMLElement>,
|
|
|
32
33
|
|
|
33
34
|
/** Disable the dropdown */
|
|
34
35
|
disabled?: boolean;
|
|
35
|
-
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Loading state — replaces the open popup options list with a centered
|
|
39
|
+
* spinner. Search input stays usable. Pair with `externalSearch` while
|
|
40
|
+
* fetching results from a parent-owned data source.
|
|
41
|
+
*/
|
|
42
|
+
loading?: boolean;
|
|
43
|
+
|
|
36
44
|
/** Make dropdown readonly */
|
|
37
45
|
readonly?: boolean;
|
|
38
46
|
|
|
39
47
|
/** Required field */
|
|
40
48
|
required?: boolean;
|
|
41
49
|
|
|
42
|
-
/** Enable search functionality */
|
|
43
|
-
searchable?: boolean;
|
|
44
|
-
|
|
45
50
|
/** Show clear button */
|
|
46
51
|
clearable?: boolean;
|
|
47
|
-
|
|
52
|
+
|
|
48
53
|
/** Disable clear button (alias for clearable={false}) */
|
|
49
54
|
notClearable?: boolean;
|
|
50
|
-
|
|
55
|
+
|
|
51
56
|
/** Debounce in milliseconds (0-5000) */
|
|
52
57
|
debounce?: number;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Switch to external (remote) search mode. Default is `false` — the dropdown
|
|
61
|
+
* filters its options locally. When `true`, the dropdown stops filtering and
|
|
62
|
+
* dispatches `search` events on each keystroke; the parent owns filtering
|
|
63
|
+
* and updates the children.
|
|
64
|
+
*/
|
|
58
65
|
externalSearch?: boolean;
|
|
66
|
+
|
|
67
|
+
/** @deprecated Use `externalSearch` instead. */
|
|
68
|
+
notSearchable?: boolean;
|
|
69
|
+
|
|
70
|
+
/** @deprecated Use `externalSearch` instead. Pass `searchable={false}` was equivalent to `externalSearch={true}`. */
|
|
71
|
+
searchable?: boolean;
|
|
59
72
|
|
|
60
73
|
/** Form field name for form submission */
|
|
61
74
|
name?: string;
|
|
@@ -79,8 +92,10 @@ export const TyDropdown = React.forwardRef<HTMLElement, TyDropdownProps>(
|
|
|
79
92
|
onChange,
|
|
80
93
|
onSearch,
|
|
81
94
|
disabled,
|
|
82
|
-
|
|
95
|
+
loading,
|
|
83
96
|
externalSearch,
|
|
97
|
+
notSearchable,
|
|
98
|
+
searchable,
|
|
84
99
|
clearable,
|
|
85
100
|
notClearable,
|
|
86
101
|
debounce,
|
|
@@ -129,7 +144,9 @@ export const TyDropdown = React.forwardRef<HTMLElement, TyDropdownProps>(
|
|
|
129
144
|
// it changes. React 18's prop-to-property bridging for custom elements is
|
|
130
145
|
// unreliable for empty strings (programmatic resets), so we set the
|
|
131
146
|
// property directly to guarantee the dropdown clears on `value=""`.
|
|
147
|
+
// React 19+ handles this natively, so the effect short-circuits there.
|
|
132
148
|
useEffect(() => {
|
|
149
|
+
if (!needsPropertyBridge) return;
|
|
133
150
|
const element = elementRef.current as any;
|
|
134
151
|
if (!element) return;
|
|
135
152
|
if (element.value !== value) {
|
|
@@ -177,13 +194,12 @@ export const TyDropdown = React.forwardRef<HTMLElement, TyDropdownProps>(
|
|
|
177
194
|
|
|
178
195
|
// Add conditional attributes
|
|
179
196
|
if (disabled) webComponentProps.disabled = '';
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
webComponentProps['not-searchable'] = '';
|
|
197
|
+
if (loading) webComponentProps.loading = '';
|
|
198
|
+
|
|
199
|
+
// External search mode: parent owns filtering, dropdown dispatches search events.
|
|
200
|
+
// `notSearchable` and `searchable={false}` are deprecated aliases for `externalSearch`.
|
|
201
|
+
if (externalSearch || notSearchable || searchable === false) {
|
|
202
|
+
webComponentProps['external-search'] = '';
|
|
187
203
|
}
|
|
188
204
|
|
|
189
205
|
// Handle clearable functionality
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
// Type definitions for Ty File Upload component
|
|
4
|
+
export interface TyFileUploadProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'> {
|
|
5
|
+
/** Form field name — used as the FormData key */
|
|
6
|
+
name?: string;
|
|
7
|
+
|
|
8
|
+
/** Allow selecting multiple files */
|
|
9
|
+
multiple?: boolean;
|
|
10
|
+
|
|
11
|
+
/** File type filter passed to the underlying input (e.g. "image/*", ".pdf,.docx") */
|
|
12
|
+
accept?: string;
|
|
13
|
+
|
|
14
|
+
/** Field label rendered above the drop zone */
|
|
15
|
+
label?: string;
|
|
16
|
+
|
|
17
|
+
/** Hint text shown inside the drop zone when no files are selected */
|
|
18
|
+
placeholder?: string;
|
|
19
|
+
|
|
20
|
+
/** Disable interaction */
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
|
|
23
|
+
/** Mark the field as required (shows asterisk) */
|
|
24
|
+
required?: boolean;
|
|
25
|
+
|
|
26
|
+
/** Validation error message — also applies danger border styling */
|
|
27
|
+
error?: string;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Fires when the selection changes — browse, drag-drop, or remove.
|
|
31
|
+
* Maps to the native 'change' event from ty-file-upload.
|
|
32
|
+
*/
|
|
33
|
+
onChange?: (event: CustomEvent<TyFileUploadEventDetail>) => void;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface TyFileUploadEventDetail {
|
|
37
|
+
value: File[];
|
|
38
|
+
files: File[];
|
|
39
|
+
names: string[];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// React wrapper for ty-file-upload web component
|
|
43
|
+
export const TyFileUpload = React.forwardRef<HTMLElement, TyFileUploadProps>(
|
|
44
|
+
({
|
|
45
|
+
name,
|
|
46
|
+
multiple,
|
|
47
|
+
accept,
|
|
48
|
+
label,
|
|
49
|
+
placeholder,
|
|
50
|
+
disabled,
|
|
51
|
+
required,
|
|
52
|
+
error,
|
|
53
|
+
onChange,
|
|
54
|
+
...props
|
|
55
|
+
}, ref) => {
|
|
56
|
+
const elementRef = useRef<HTMLElement>(null);
|
|
57
|
+
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
const element = elementRef.current;
|
|
60
|
+
if (!element) return;
|
|
61
|
+
|
|
62
|
+
const handleChange = (event: Event) => {
|
|
63
|
+
if (onChange) {
|
|
64
|
+
onChange(event as CustomEvent<TyFileUploadEventDetail>);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
element.addEventListener('change', handleChange);
|
|
69
|
+
return () => {
|
|
70
|
+
element.removeEventListener('change', handleChange);
|
|
71
|
+
};
|
|
72
|
+
}, [onChange]);
|
|
73
|
+
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
if (ref && elementRef.current) {
|
|
76
|
+
if (typeof ref === 'function') {
|
|
77
|
+
ref(elementRef.current);
|
|
78
|
+
} else {
|
|
79
|
+
ref.current = elementRef.current;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}, [ref]);
|
|
83
|
+
|
|
84
|
+
const webComponentProps: Record<string, any> = {
|
|
85
|
+
...props,
|
|
86
|
+
ref: elementRef,
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
if (multiple) webComponentProps.multiple = '';
|
|
90
|
+
if (disabled) webComponentProps.disabled = '';
|
|
91
|
+
if (required) webComponentProps.required = '';
|
|
92
|
+
|
|
93
|
+
if (name) webComponentProps.name = name;
|
|
94
|
+
if (accept) webComponentProps.accept = accept;
|
|
95
|
+
if (label) webComponentProps.label = label;
|
|
96
|
+
if (placeholder) webComponentProps.placeholder = placeholder;
|
|
97
|
+
if (error) webComponentProps.error = error;
|
|
98
|
+
|
|
99
|
+
return React.createElement('ty-file-upload', webComponentProps);
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
TyFileUpload.displayName = 'TyFileUpload';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
2
3
|
|
|
3
4
|
// Event detail structure for ty-input events
|
|
4
5
|
export interface TyInputEventDetail {
|
|
@@ -86,11 +87,33 @@ export interface TyInputProps extends Omit<React.HTMLAttributes<HTMLElement>, 'o
|
|
|
86
87
|
onBlur?: (event: FocusEvent) => void;
|
|
87
88
|
}
|
|
88
89
|
|
|
90
|
+
// One-time global warning flags so we don't spam the console.
|
|
91
|
+
let _warnedOnInputProp = false;
|
|
92
|
+
|
|
89
93
|
// React wrapper for ty-input web component
|
|
90
94
|
export const TyInput = React.forwardRef<HTMLElement, TyInputProps>(
|
|
91
95
|
({ onChange, onChangeCommit, onFocus, onBlur, disabled, name, checked, debounce, ...props }, ref) => {
|
|
92
96
|
const elementRef = useRef<HTMLElement>(null);
|
|
93
97
|
|
|
98
|
+
// Catch the most common mistake: passing `onInput` (React's prop) instead
|
|
99
|
+
// of `onChange` (our wrapper's prop). React's synthetic-event system
|
|
100
|
+
// strips event.detail, so the user's handler crashes on `e.detail.value`.
|
|
101
|
+
// Forward to onChange and log a one-shot warning.
|
|
102
|
+
const onInputProp = (props as any).onInput as ((e: any) => void) | undefined;
|
|
103
|
+
if (onInputProp && !onChange) {
|
|
104
|
+
if (!_warnedOnInputProp) {
|
|
105
|
+
_warnedOnInputProp = true;
|
|
106
|
+
console.warn(
|
|
107
|
+
'[tyrell-react] <TyInput> received `onInput`. ' +
|
|
108
|
+
'React strips event.detail; use `onChange` instead — it receives the raw CustomEvent. ' +
|
|
109
|
+
'Forwarding for now, but please rename the prop.'
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
onChange = onInputProp;
|
|
113
|
+
}
|
|
114
|
+
// Either way, drop onInput from spread so React doesn't double-wire it.
|
|
115
|
+
delete (props as any).onInput;
|
|
116
|
+
|
|
94
117
|
// Map onChange to input event (React convention)
|
|
95
118
|
const handleInput = useCallback((event: CustomEvent<TyInputEventDetail>) => {
|
|
96
119
|
if (onChange) {
|
|
@@ -171,8 +194,10 @@ export const TyInput = React.forwardRef<HTMLElement, TyInputProps>(
|
|
|
171
194
|
// Imperatively sync `value` to the underlying element's property whenever
|
|
172
195
|
// the React prop changes. React 18's prop-to-property bridging for custom
|
|
173
196
|
// elements is unreliable for empty strings, so we set the property directly
|
|
174
|
-
// to guarantee resets (`value=""`) clear the visible content.
|
|
197
|
+
// to guarantee resets (`value=""`) clear the visible content. React 19+
|
|
198
|
+
// handles this natively, so the effect short-circuits there.
|
|
175
199
|
useEffect(() => {
|
|
200
|
+
if (!needsPropertyBridge) return;
|
|
176
201
|
const element = elementRef.current as any;
|
|
177
202
|
if (!element) return;
|
|
178
203
|
const next = (props as any).value ?? '';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
2
3
|
|
|
3
4
|
// Type definitions for Ty Multiselect component
|
|
4
5
|
export interface TyMultiselectEventDetail {
|
|
@@ -20,7 +21,14 @@ export interface TyMultiselectProps extends Omit<React.HTMLAttributes<HTMLElemen
|
|
|
20
21
|
|
|
21
22
|
/** Disable the multiselect component */
|
|
22
23
|
disabled?: boolean;
|
|
23
|
-
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Loading state — replaces the available-options area with a centered
|
|
27
|
+
* spinner. Search input stays usable. Pair with `externalSearch` while
|
|
28
|
+
* fetching results from a parent-owned data source.
|
|
29
|
+
*/
|
|
30
|
+
loading?: boolean;
|
|
31
|
+
|
|
24
32
|
/** Make the multiselect read-only */
|
|
25
33
|
readonly?: boolean;
|
|
26
34
|
|
|
@@ -67,6 +75,7 @@ export const TyMultiselect = React.forwardRef<HTMLElement, TyMultiselectProps>(
|
|
|
67
75
|
value,
|
|
68
76
|
placeholder,
|
|
69
77
|
disabled,
|
|
78
|
+
loading,
|
|
70
79
|
readonly,
|
|
71
80
|
flavor,
|
|
72
81
|
label,
|
|
@@ -95,7 +104,9 @@ export const TyMultiselect = React.forwardRef<HTMLElement, TyMultiselectProps>(
|
|
|
95
104
|
|
|
96
105
|
// Imperatively sync `value` to the underlying property so resets
|
|
97
106
|
// (`value=""` or null) reliably clear the visible selection.
|
|
107
|
+
// React 18 workaround; React 19+ handles this natively.
|
|
98
108
|
useEffect(() => {
|
|
109
|
+
if (!needsPropertyBridge) return;
|
|
99
110
|
const element = elementRef.current as any;
|
|
100
111
|
if (!element) return;
|
|
101
112
|
const next = (props as any).value ?? '';
|
|
@@ -150,6 +161,7 @@ export const TyMultiselect = React.forwardRef<HTMLElement, TyMultiselectProps>(
|
|
|
150
161
|
webComponentProps.placeholder = placeholder;
|
|
151
162
|
}
|
|
152
163
|
|
|
164
|
+
if (loading) webComponentProps.loading = '';
|
|
153
165
|
if (disabled) {
|
|
154
166
|
webComponentProps.disabled = ''; // Boolean attributes as empty string
|
|
155
167
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
2
3
|
|
|
3
4
|
export interface TyRadioProps extends React.HTMLAttributes<HTMLElement> {
|
|
4
5
|
/** Form field value (selected by parent ty-radio-group when matches its `value`) */
|
|
@@ -37,6 +38,19 @@ export const TyRadio = React.forwardRef<HTMLElement, TyRadioProps>(
|
|
|
37
38
|
}
|
|
38
39
|
}, [ref]);
|
|
39
40
|
|
|
41
|
+
// Imperatively sync `checked` to the underlying property. React 18 sets
|
|
42
|
+
// boolean attributes as empty strings on first render but doesn't reliably
|
|
43
|
+
// remove them when the prop flips back to false on a custom element.
|
|
44
|
+
// React 19+ handles boolean prop-to-property bridging natively.
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (!needsPropertyBridge) return;
|
|
47
|
+
const element = elementRef.current as any;
|
|
48
|
+
if (!element) return;
|
|
49
|
+
if (Boolean(element.checked) !== Boolean(checked)) {
|
|
50
|
+
element.checked = Boolean(checked);
|
|
51
|
+
}
|
|
52
|
+
}, [checked]);
|
|
53
|
+
|
|
40
54
|
const webComponentProps: Record<string, any> = {
|
|
41
55
|
...props,
|
|
42
56
|
ref: elementRef,
|