tyrell-react 1.0.0-RC6
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/LICENSE +21 -0
- package/README.md +410 -0
- package/dist/components/TyButton.d.ts +50 -0
- package/dist/components/TyButton.d.ts.map +1 -0
- package/dist/components/TyButton.js +68 -0
- package/dist/components/TyButton.js.map +1 -0
- package/dist/components/TyCalendar.d.ts +63 -0
- package/dist/components/TyCalendar.d.ts.map +1 -0
- package/dist/components/TyCalendar.js +127 -0
- package/dist/components/TyCalendar.js.map +1 -0
- package/dist/components/TyCalendarMonth.d.ts +32 -0
- package/dist/components/TyCalendarMonth.d.ts.map +1 -0
- package/dist/components/TyCalendarMonth.js +54 -0
- package/dist/components/TyCalendarMonth.js.map +1 -0
- package/dist/components/TyCalendarNavigation.d.ts +21 -0
- package/dist/components/TyCalendarNavigation.d.ts.map +1 -0
- package/dist/components/TyCalendarNavigation.js +50 -0
- package/dist/components/TyCalendarNavigation.js.map +1 -0
- package/dist/components/TyCheckbox.d.ts +39 -0
- package/dist/components/TyCheckbox.d.ts.map +1 -0
- package/dist/components/TyCheckbox.js +83 -0
- package/dist/components/TyCheckbox.js.map +1 -0
- package/dist/components/TyCopy.d.ts +21 -0
- package/dist/components/TyCopy.d.ts.map +1 -0
- package/dist/components/TyCopy.js +42 -0
- package/dist/components/TyCopy.js.map +1 -0
- package/dist/components/TyDatePicker.d.ts +45 -0
- package/dist/components/TyDatePicker.d.ts.map +1 -0
- package/dist/components/TyDatePicker.js +119 -0
- package/dist/components/TyDatePicker.js.map +1 -0
- package/dist/components/TyDropdown.d.ts +56 -0
- package/dist/components/TyDropdown.d.ts.map +1 -0
- package/dist/components/TyDropdown.js +110 -0
- package/dist/components/TyDropdown.js.map +1 -0
- package/dist/components/TyIcon.d.ts +17 -0
- package/dist/components/TyIcon.d.ts.map +1 -0
- package/dist/components/TyIcon.js +41 -0
- package/dist/components/TyIcon.js.map +1 -0
- package/dist/components/TyInput.d.ts +65 -0
- package/dist/components/TyInput.d.ts.map +1 -0
- package/dist/components/TyInput.js +127 -0
- package/dist/components/TyInput.js.map +1 -0
- package/dist/components/TyModal.d.ts +29 -0
- package/dist/components/TyModal.d.ts.map +1 -0
- package/dist/components/TyModal.js +74 -0
- package/dist/components/TyModal.js.map +1 -0
- package/dist/components/TyMultiselect.d.ts +51 -0
- package/dist/components/TyMultiselect.d.ts.map +1 -0
- package/dist/components/TyMultiselect.js +107 -0
- package/dist/components/TyMultiselect.js.map +1 -0
- package/dist/components/TyOption.d.ts +10 -0
- package/dist/components/TyOption.d.ts.map +1 -0
- package/dist/components/TyOption.js +25 -0
- package/dist/components/TyOption.js.map +1 -0
- package/dist/components/TyPopup.d.ts +24 -0
- package/dist/components/TyPopup.d.ts.map +1 -0
- package/dist/components/TyPopup.js +61 -0
- package/dist/components/TyPopup.js.map +1 -0
- package/dist/components/TyRadio.d.ts +20 -0
- package/dist/components/TyRadio.d.ts.map +1 -0
- package/dist/components/TyRadio.js +46 -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/TyResizeObserver.d.ts +11 -0
- package/dist/components/TyResizeObserver.d.ts.map +1 -0
- package/dist/components/TyResizeObserver.js +28 -0
- package/dist/components/TyResizeObserver.js.map +1 -0
- package/dist/components/TyScrollContainer.d.ts +25 -0
- package/dist/components/TyScrollContainer.d.ts.map +1 -0
- package/dist/components/TyScrollContainer.js +43 -0
- package/dist/components/TyScrollContainer.js.map +1 -0
- package/dist/components/TyStep.d.ts +17 -0
- package/dist/components/TyStep.d.ts.map +1 -0
- package/dist/components/TyStep.js +35 -0
- package/dist/components/TyStep.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 +69 -0
- package/dist/components/TySwitch.js.map +1 -0
- package/dist/components/TyTab.d.ts +13 -0
- package/dist/components/TyTab.d.ts.map +1 -0
- package/dist/components/TyTab.js +32 -0
- package/dist/components/TyTab.js.map +1 -0
- package/dist/components/TyTabs.d.ts +23 -0
- package/dist/components/TyTabs.d.ts.map +1 -0
- package/dist/components/TyTabs.js +48 -0
- package/dist/components/TyTabs.js.map +1 -0
- package/dist/components/TyTag.d.ts +22 -0
- package/dist/components/TyTag.d.ts.map +1 -0
- package/dist/components/TyTag.js +45 -0
- package/dist/components/TyTag.js.map +1 -0
- package/dist/components/TyTextarea.d.ts +37 -0
- package/dist/components/TyTextarea.d.ts.map +1 -0
- package/dist/components/TyTextarea.js +113 -0
- package/dist/components/TyTextarea.js.map +1 -0
- package/dist/components/TyTooltip.d.ts +17 -0
- package/dist/components/TyTooltip.d.ts.map +1 -0
- package/dist/components/TyTooltip.js +40 -0
- package/dist/components/TyTooltip.js.map +1 -0
- package/dist/components/TyWizard.d.ts +26 -0
- package/dist/components/TyWizard.d.ts.map +1 -0
- package/dist/components/TyWizard.js +50 -0
- package/dist/components/TyWizard.js.map +1 -0
- package/dist/components/index.d.ts +105 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +112 -0
- package/dist/components/index.js.map +1 -0
- 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 +46 -0
- package/src/components/EventConventionTest.tsx +155 -0
- package/src/components/TyButton.tsx +145 -0
- package/src/components/TyCalendar.tsx +248 -0
- package/src/components/TyCalendarMonth.tsx +108 -0
- package/src/components/TyCalendarNavigation.tsx +91 -0
- package/src/components/TyCheckbox.tsx +152 -0
- package/src/components/TyCopy.tsx +78 -0
- package/src/components/TyDatePicker.tsx +220 -0
- package/src/components/TyDropdown.tsx +225 -0
- package/src/components/TyIcon.tsx +72 -0
- package/src/components/TyInput.tsx +232 -0
- package/src/components/TyModal.tsx +142 -0
- package/src/components/TyMultiselect.tsx +203 -0
- package/src/components/TyOption.tsx +42 -0
- package/src/components/TyPopup.tsx +111 -0
- package/src/components/TyRadio.tsx +70 -0
- package/src/components/TyRadioGroup.tsx +121 -0
- package/src/components/TyResizeObserver.tsx +54 -0
- package/src/components/TyScrollContainer.tsx +87 -0
- package/src/components/TyStep.tsx +71 -0
- package/src/components/TySwitch.tsx +122 -0
- package/src/components/TyTab.tsx +63 -0
- package/src/components/TyTabs.tsx +93 -0
- package/src/components/TyTag.tsx +79 -0
- package/src/components/TyTextarea.tsx +177 -0
- package/src/components/TyTooltip.tsx +83 -0
- package/src/components/TyWizard.tsx +99 -0
- package/src/components/index.ts +251 -0
- package/src/utils/react-version.ts +8 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TyScrollContainerProps extends React.HTMLAttributes<HTMLElement> {
|
|
3
|
+
/** Maximum height of the scroll container */
|
|
4
|
+
maxHeight?: string;
|
|
5
|
+
/** Enable/disable scroll shadows (default: true) */
|
|
6
|
+
shadow?: boolean;
|
|
7
|
+
/** Hide native scrollbar */
|
|
8
|
+
hideScrollbar?: boolean;
|
|
9
|
+
/** Content to scroll */
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export interface TyScrollContainerRef {
|
|
13
|
+
/** Force update shadows (useful after dynamic content changes) */
|
|
14
|
+
updateShadows: () => void;
|
|
15
|
+
/** Scroll to top */
|
|
16
|
+
scrollToTop: (smooth?: boolean) => void;
|
|
17
|
+
/** Scroll to bottom */
|
|
18
|
+
scrollToBottom: (smooth?: boolean) => void;
|
|
19
|
+
/** Get the underlying scroll element */
|
|
20
|
+
scrollElement: HTMLElement | null;
|
|
21
|
+
/** Get the native element */
|
|
22
|
+
element: HTMLElement | null;
|
|
23
|
+
}
|
|
24
|
+
export declare const TyScrollContainer: React.ForwardRefExoticComponent<TyScrollContainerProps & React.RefAttributes<TyScrollContainerRef>>;
|
|
25
|
+
//# sourceMappingURL=TyScrollContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyScrollContainer.d.ts","sourceRoot":"","sources":["../../src/components/TyScrollContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAGtE,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IAC/E,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,oBAAoB;IACpB,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,uBAAuB;IACvB,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,wCAAwC;IACxC,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,6BAA6B;IAC7B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAGD,eAAO,MAAM,iBAAiB,qGAoD7B,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React, { useRef, useImperativeHandle } from 'react';
|
|
2
|
+
// React wrapper for ty-scroll-container web component
|
|
3
|
+
export const TyScrollContainer = React.forwardRef(({ children, maxHeight, shadow, hideScrollbar, ...props }, ref) => {
|
|
4
|
+
const elementRef = useRef(null);
|
|
5
|
+
// Expose imperative methods via ref
|
|
6
|
+
useImperativeHandle(ref, () => ({
|
|
7
|
+
updateShadows: () => {
|
|
8
|
+
const el = elementRef.current;
|
|
9
|
+
el?.updateShadows?.();
|
|
10
|
+
},
|
|
11
|
+
scrollToTop: (smooth = true) => {
|
|
12
|
+
const el = elementRef.current;
|
|
13
|
+
el?.scrollToTop?.(smooth);
|
|
14
|
+
},
|
|
15
|
+
scrollToBottom: (smooth = true) => {
|
|
16
|
+
const el = elementRef.current;
|
|
17
|
+
el?.scrollToBottom?.(smooth);
|
|
18
|
+
},
|
|
19
|
+
get scrollElement() {
|
|
20
|
+
const el = elementRef.current;
|
|
21
|
+
return el?.scrollElement ?? null;
|
|
22
|
+
},
|
|
23
|
+
get element() {
|
|
24
|
+
return elementRef.current;
|
|
25
|
+
}
|
|
26
|
+
}), []);
|
|
27
|
+
// Convert React props to web component attributes
|
|
28
|
+
const webComponentProps = {
|
|
29
|
+
...props,
|
|
30
|
+
ref: elementRef,
|
|
31
|
+
};
|
|
32
|
+
// Add string attributes
|
|
33
|
+
if (maxHeight)
|
|
34
|
+
webComponentProps['max-height'] = maxHeight;
|
|
35
|
+
// Add boolean attributes
|
|
36
|
+
if (shadow === false)
|
|
37
|
+
webComponentProps.shadow = 'false';
|
|
38
|
+
if (hideScrollbar)
|
|
39
|
+
webComponentProps['hide-scrollbar'] = true;
|
|
40
|
+
return React.createElement('ty-scroll-container', webComponentProps, children);
|
|
41
|
+
});
|
|
42
|
+
TyScrollContainer.displayName = 'TyScrollContainer';
|
|
43
|
+
//# sourceMappingURL=TyScrollContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyScrollContainer.js","sourceRoot":"","sources":["../../src/components/TyScrollContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,MAAM,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AA+BtE,sDAAsD;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAC/C,CAAC,EACC,QAAQ,EACR,SAAS,EACT,MAAM,EACN,aAAa,EACb,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,oCAAoC;IACpC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,aAAa,EAAE,GAAG,EAAE;YAClB,MAAM,EAAE,GAAG,UAAU,CAAC,OAAc,CAAC;YACrC,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC;QACxB,CAAC;QACD,WAAW,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE;YAC7B,MAAM,EAAE,GAAG,UAAU,CAAC,OAAc,CAAC;YACrC,EAAE,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE;YAChC,MAAM,EAAE,GAAG,UAAU,CAAC,OAAc,CAAC;YACrC,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,aAAa;YACf,MAAM,EAAE,GAAG,UAAU,CAAC,OAAc,CAAC;YACrC,OAAO,EAAE,EAAE,aAAa,IAAI,IAAI,CAAC;QACnC,CAAC;QACD,IAAI,OAAO;YACT,OAAO,UAAU,CAAC,OAAO,CAAC;QAC5B,CAAC;KACF,CAAC,EAAE,EAAE,CAAC,CAAC;IAER,kDAAkD;IAClD,MAAM,iBAAiB,GAAwB;QAC7C,GAAG,KAAK;QACR,GAAG,EAAE,UAAU;KAChB,CAAC;IAEF,wBAAwB;IACxB,IAAI,SAAS;QAAE,iBAAiB,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IAE3D,yBAAyB;IACzB,IAAI,MAAM,KAAK,KAAK;QAAE,iBAAiB,CAAC,MAAM,GAAG,OAAO,CAAC;IACzD,IAAI,aAAa;QAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAE9D,OAAO,KAAK,CAAC,aAAa,CACxB,qBAAqB,EACrB,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,iBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TyStepProps extends React.HTMLAttributes<HTMLElement> {
|
|
3
|
+
/** Required unique identifier for the step */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Main step title displayed in indicator */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Optional subtitle/description */
|
|
8
|
+
description?: string;
|
|
9
|
+
/** Whether the step is disabled */
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/** User-controlled status override */
|
|
12
|
+
status?: 'completed' | 'active' | 'pending' | 'error';
|
|
13
|
+
/** Step content */
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
export declare const TyStep: React.ForwardRefExoticComponent<TyStepProps & React.RefAttributes<HTMLElement>>;
|
|
17
|
+
//# sourceMappingURL=TyStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyStep.d.ts","sourceRoot":"","sources":["../../src/components/TyStep.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACpE,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IAEX,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sCAAsC;IACtC,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAEtD,mBAAmB;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,eAAO,MAAM,MAAM,iFA4ClB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
// React wrapper for ty-step web component
|
|
3
|
+
export const TyStep = React.forwardRef(({ children, id, label, description, disabled, status, ...props }, ref) => {
|
|
4
|
+
const elementRef = useRef(null);
|
|
5
|
+
// Combine refs if needed
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (ref && elementRef.current) {
|
|
8
|
+
if (typeof ref === 'function') {
|
|
9
|
+
ref(elementRef.current);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
ref.current = elementRef.current;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}, [ref]);
|
|
16
|
+
// Convert React props to web component attributes
|
|
17
|
+
const webComponentProps = {
|
|
18
|
+
...props,
|
|
19
|
+
ref: elementRef,
|
|
20
|
+
id,
|
|
21
|
+
};
|
|
22
|
+
// Add string attributes
|
|
23
|
+
if (label)
|
|
24
|
+
webComponentProps.label = label;
|
|
25
|
+
if (description)
|
|
26
|
+
webComponentProps.description = description;
|
|
27
|
+
if (status)
|
|
28
|
+
webComponentProps.status = status;
|
|
29
|
+
// Add boolean attributes
|
|
30
|
+
if (disabled)
|
|
31
|
+
webComponentProps.disabled = true;
|
|
32
|
+
return React.createElement('ty-step', webComponentProps, children);
|
|
33
|
+
});
|
|
34
|
+
TyStep.displayName = 'TyStep';
|
|
35
|
+
//# sourceMappingURL=TyStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyStep.js","sourceRoot":"","sources":["../../src/components/TyStep.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAuBjD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CACpC,CAAC,EACC,QAAQ,EACR,EAAE,EACF,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,yBAAyB;IACzB,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,kDAAkD;IAClD,MAAM,iBAAiB,GAAwB;QAC7C,GAAG,KAAK;QACR,GAAG,EAAE,UAAU;QACf,EAAE;KACH,CAAC;IAEF,wBAAwB;IACxB,IAAI,KAAK;QAAE,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3C,IAAI,WAAW;QAAE,iBAAiB,CAAC,WAAW,GAAG,WAAW,CAAC;IAC7D,IAAI,MAAM;QAAE,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;IAE9C,yBAAyB;IACzB,IAAI,QAAQ;QAAE,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;IAEhD,OAAO,KAAK,CAAC,aAAa,CACxB,SAAS,EACT,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,WAAW,GAAG,QAAQ,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;AAGjD,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,mFA0EpB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
3
|
+
export const TySwitch = React.forwardRef(({ checked, value, name, disabled, required, size, flavor, onChange, onChangeCommit, ...props }, ref) => {
|
|
4
|
+
const elementRef = useRef(null);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
const element = elementRef.current;
|
|
7
|
+
if (!element)
|
|
8
|
+
return;
|
|
9
|
+
const handleInput = (event) => {
|
|
10
|
+
if (onChange)
|
|
11
|
+
onChange(event);
|
|
12
|
+
};
|
|
13
|
+
const handleChangeCommit = (event) => {
|
|
14
|
+
if (onChangeCommit)
|
|
15
|
+
onChangeCommit(event);
|
|
16
|
+
};
|
|
17
|
+
element.addEventListener('input', handleInput);
|
|
18
|
+
element.addEventListener('change', handleChangeCommit);
|
|
19
|
+
return () => {
|
|
20
|
+
element.removeEventListener('input', handleInput);
|
|
21
|
+
element.removeEventListener('change', handleChangeCommit);
|
|
22
|
+
};
|
|
23
|
+
}, [onChange, onChangeCommit]);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (ref && elementRef.current) {
|
|
26
|
+
if (typeof ref === 'function') {
|
|
27
|
+
ref(elementRef.current);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
ref.current = elementRef.current;
|
|
31
|
+
}
|
|
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]);
|
|
48
|
+
const webComponentProps = {
|
|
49
|
+
...props,
|
|
50
|
+
ref: elementRef,
|
|
51
|
+
};
|
|
52
|
+
if (checked)
|
|
53
|
+
webComponentProps.checked = '';
|
|
54
|
+
if (disabled)
|
|
55
|
+
webComponentProps.disabled = '';
|
|
56
|
+
if (required)
|
|
57
|
+
webComponentProps.required = '';
|
|
58
|
+
if (value)
|
|
59
|
+
webComponentProps.value = value;
|
|
60
|
+
if (name)
|
|
61
|
+
webComponentProps.name = name;
|
|
62
|
+
if (size)
|
|
63
|
+
webComponentProps.size = size;
|
|
64
|
+
if (flavor)
|
|
65
|
+
webComponentProps.flavor = flavor;
|
|
66
|
+
return React.createElement('ty-switch', webComponentProps);
|
|
67
|
+
});
|
|
68
|
+
TySwitch.displayName = 'TySwitch';
|
|
69
|
+
//# sourceMappingURL=TySwitch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TySwitch.js","sourceRoot":"","sources":["../../src/components/TySwitch.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TyTabProps extends React.HTMLAttributes<HTMLElement> {
|
|
3
|
+
/** Required unique identifier */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Simple text label */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Whether the tab is disabled */
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
/** Tab content */
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare const TyTab: React.ForwardRefExoticComponent<TyTabProps & React.RefAttributes<HTMLElement>>;
|
|
13
|
+
//# sourceMappingURL=TyTab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyTab.d.ts","sourceRoot":"","sources":["../../src/components/TyTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACnE,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IAEX,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kBAAkB;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,eAAO,MAAM,KAAK,gFA0CjB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
// React wrapper for ty-tab web component
|
|
3
|
+
export const TyTab = React.forwardRef(({ children, id, label, disabled, ...props }, ref) => {
|
|
4
|
+
const elementRef = useRef(null);
|
|
5
|
+
// Combine refs if needed
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (ref && elementRef.current) {
|
|
8
|
+
if (typeof ref === 'function') {
|
|
9
|
+
ref(elementRef.current);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
ref.current = elementRef.current;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}, [ref]);
|
|
16
|
+
// Convert React props to web component attributes
|
|
17
|
+
const webComponentProps = {
|
|
18
|
+
...props,
|
|
19
|
+
ref: elementRef,
|
|
20
|
+
};
|
|
21
|
+
// Add required attribute
|
|
22
|
+
webComponentProps.id = id;
|
|
23
|
+
// Add boolean attributes
|
|
24
|
+
if (disabled)
|
|
25
|
+
webComponentProps.disabled = '';
|
|
26
|
+
// Add string attributes
|
|
27
|
+
if (label)
|
|
28
|
+
webComponentProps.label = label;
|
|
29
|
+
return React.createElement('ty-tab', webComponentProps, children);
|
|
30
|
+
});
|
|
31
|
+
TyTab.displayName = 'TyTab';
|
|
32
|
+
//# sourceMappingURL=TyTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyTab.js","sourceRoot":"","sources":["../../src/components/TyTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAiBjD,yCAAyC;AACzC,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EACC,QAAQ,EACR,EAAE,EACF,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,yBAAyB;IACzB,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,kDAAkD;IAClD,MAAM,iBAAiB,GAAwB;QAC7C,GAAG,KAAK;QACR,GAAG,EAAE,UAAU;KAChB,CAAC;IAEF,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC;IAE1B,yBAAyB;IACzB,IAAI,QAAQ;QAAE,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAC;IAE9C,wBAAwB;IACxB,IAAI,KAAK;QAAE,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;IAE3C,OAAO,KAAK,CAAC,aAAa,CACxB,QAAQ,EACR,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TyTabsProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'> {
|
|
3
|
+
/** Content area width (accepts px or %) */
|
|
4
|
+
width?: string;
|
|
5
|
+
/** Total container height including buttons */
|
|
6
|
+
height?: string;
|
|
7
|
+
/** ID of currently active tab */
|
|
8
|
+
active?: string;
|
|
9
|
+
/** Position of tab buttons */
|
|
10
|
+
placement?: 'top' | 'bottom';
|
|
11
|
+
/** Tab change event handler */
|
|
12
|
+
onChange?: (event: CustomEvent<TabChangeDetail>) => void;
|
|
13
|
+
/** Tabs content (TyTab components) */
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
export interface TabChangeDetail {
|
|
17
|
+
activeId: string;
|
|
18
|
+
activeIndex: number;
|
|
19
|
+
previousId: string | null;
|
|
20
|
+
previousIndex: number | null;
|
|
21
|
+
}
|
|
22
|
+
export declare const TyTabs: React.ForwardRefExoticComponent<TyTabsProps & React.RefAttributes<HTMLElement>>;
|
|
23
|
+
//# sourceMappingURL=TyTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyTabs.d.ts","sourceRoot":"","sources":["../../src/components/TyTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IACtF,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAE7B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IAEzD,sCAAsC;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAGD,eAAO,MAAM,MAAM,iFA2DlB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
// React wrapper for ty-tabs web component
|
|
3
|
+
export const TyTabs = React.forwardRef(({ children, width, height, active, placement, onChange, ...props }, ref) => {
|
|
4
|
+
const elementRef = useRef(null);
|
|
5
|
+
// Handle change events
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
const element = elementRef.current;
|
|
8
|
+
if (!element)
|
|
9
|
+
return;
|
|
10
|
+
const handleChange = (event) => {
|
|
11
|
+
if (onChange) {
|
|
12
|
+
onChange(event);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
element.addEventListener('ty-tab-change', handleChange);
|
|
16
|
+
return () => {
|
|
17
|
+
element.removeEventListener('ty-tab-change', handleChange);
|
|
18
|
+
};
|
|
19
|
+
}, [onChange]);
|
|
20
|
+
// Combine refs if needed
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (ref && elementRef.current) {
|
|
23
|
+
if (typeof ref === 'function') {
|
|
24
|
+
ref(elementRef.current);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
ref.current = elementRef.current;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}, [ref]);
|
|
31
|
+
// Convert React props to web component attributes
|
|
32
|
+
const webComponentProps = {
|
|
33
|
+
...props,
|
|
34
|
+
ref: elementRef,
|
|
35
|
+
};
|
|
36
|
+
// Add string attributes
|
|
37
|
+
if (width)
|
|
38
|
+
webComponentProps.width = width;
|
|
39
|
+
if (height)
|
|
40
|
+
webComponentProps.height = height;
|
|
41
|
+
if (active)
|
|
42
|
+
webComponentProps.active = active;
|
|
43
|
+
if (placement)
|
|
44
|
+
webComponentProps.placement = placement;
|
|
45
|
+
return React.createElement('ty-tabs', webComponentProps, children);
|
|
46
|
+
});
|
|
47
|
+
TyTabs.displayName = 'TyTabs';
|
|
48
|
+
//# sourceMappingURL=TyTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyTabs.js","sourceRoot":"","sources":["../../src/components/TyTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AA8BjD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CACpC,CAAC,EACC,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,uBAAuB;IACvB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAqC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAExD,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,yBAAyB;IACzB,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,kDAAkD;IAClD,MAAM,iBAAiB,GAAwB;QAC7C,GAAG,KAAK;QACR,GAAG,EAAE,UAAU;KAChB,CAAC;IAEF,wBAAwB;IACxB,IAAI,KAAK;QAAE,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3C,IAAI,MAAM;QAAE,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9C,IAAI,MAAM;QAAE,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9C,IAAI,SAAS;QAAE,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;IAEvD,OAAO,KAAK,CAAC,aAAa,CACxB,SAAS,EACT,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TyTagCSSProperties extends React.CSSProperties {
|
|
3
|
+
'--tag-bg'?: string;
|
|
4
|
+
'--tag-color'?: string;
|
|
5
|
+
'--tag-border-color'?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface TyTagProps extends Omit<React.HTMLAttributes<HTMLElement>, 'style' | 'onClick'> {
|
|
8
|
+
flavor?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
|
|
9
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
10
|
+
notPill?: boolean;
|
|
11
|
+
clickable?: boolean;
|
|
12
|
+
dismissible?: boolean;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
selected?: boolean;
|
|
15
|
+
value?: string;
|
|
16
|
+
style?: TyTagCSSProperties;
|
|
17
|
+
onClick?: (event: CustomEvent) => void;
|
|
18
|
+
onTagDismiss?: (event: CustomEvent) => void;
|
|
19
|
+
children?: React.ReactNode;
|
|
20
|
+
}
|
|
21
|
+
export declare const TyTag: React.ForwardRefExoticComponent<TyTagProps & React.RefAttributes<HTMLElement>>;
|
|
22
|
+
//# sourceMappingURL=TyTag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyTag.d.ts","sourceRoot":"","sources":["../../src/components/TyTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,aAAa;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAGD,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9F,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAChF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAE3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,eAAO,MAAM,KAAK,gFAiDjB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
// React wrapper for ty-tag web component
|
|
3
|
+
export const TyTag = React.forwardRef(({ children, onClick, onTagDismiss, notPill, clickable, dismissible, disabled, selected, ...props }, ref) => {
|
|
4
|
+
const elementRef = useRef(null);
|
|
5
|
+
const handleDismiss = useCallback((event) => {
|
|
6
|
+
if (onTagDismiss) {
|
|
7
|
+
onTagDismiss(event);
|
|
8
|
+
}
|
|
9
|
+
}, [onTagDismiss]);
|
|
10
|
+
// dismiss is a custom event — React doesn't know about it, so we need a manual listener
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
const element = elementRef.current;
|
|
13
|
+
if (!element || !onTagDismiss)
|
|
14
|
+
return;
|
|
15
|
+
element.addEventListener('dismiss', handleDismiss);
|
|
16
|
+
return () => {
|
|
17
|
+
element.removeEventListener('dismiss', handleDismiss);
|
|
18
|
+
};
|
|
19
|
+
}, [handleDismiss, onTagDismiss]);
|
|
20
|
+
// Handle ref forwarding
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (ref && elementRef.current) {
|
|
23
|
+
if (typeof ref === 'function') {
|
|
24
|
+
ref(elementRef.current);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
ref.current = elementRef.current;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}, [ref]);
|
|
31
|
+
return React.createElement('ty-tag', {
|
|
32
|
+
...props,
|
|
33
|
+
// click is dispatched as composed CustomEvent by the web component — React's
|
|
34
|
+
// synthetic onClick already catches it, so we just pass it through as onClick
|
|
35
|
+
...(onClick && { onClick }),
|
|
36
|
+
...(notPill && { 'not-pill': "" }),
|
|
37
|
+
...(clickable && { clickable: "" }),
|
|
38
|
+
...(dismissible && { dismissible: "" }),
|
|
39
|
+
...(disabled && { disabled: "" }),
|
|
40
|
+
...(selected && { selected: "" }),
|
|
41
|
+
ref: elementRef,
|
|
42
|
+
}, children);
|
|
43
|
+
});
|
|
44
|
+
TyTag.displayName = 'TyTag';
|
|
45
|
+
//# sourceMappingURL=TyTag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyTag.js","sourceRoot":"","sources":["../../src/components/TyTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AA0B9D,yCAAyC;AACzC,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC1G,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAAkB,EAAE,EAAE;QACvD,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,wFAAwF;IACxF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY;YAAE,OAAO;QAEtC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAA8B,CAAC,CAAC;QACpE,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAA8B,CAAC,CAAC;QACzE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAElC,wBAAwB;IACxB,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,OAAO,KAAK,CAAC,aAAa,CACxB,QAAQ,EACR;QACE,GAAG,KAAK;QACR,6EAA6E;QAC7E,8EAA8E;QAC9E,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3B,GAAG,CAAC,OAAO,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAClC,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QACnC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QACvC,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACjC,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACjC,GAAG,EAAE,UAAU;KAChB,EACD,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TyTextareaEventDetail {
|
|
3
|
+
value: string;
|
|
4
|
+
originalEvent: Event;
|
|
5
|
+
}
|
|
6
|
+
export interface TyTextareaProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange' | 'onInput' | 'onFocus' | 'onBlur' | 'style'> {
|
|
7
|
+
style?: import('./TyInput').TyInputCSSProperties;
|
|
8
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
9
|
+
value?: string;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
label?: string;
|
|
12
|
+
error?: string;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
name?: string;
|
|
16
|
+
rows?: string | number;
|
|
17
|
+
cols?: string | number;
|
|
18
|
+
resize?: 'none' | 'both' | 'horizontal' | 'vertical';
|
|
19
|
+
minHeight?: string;
|
|
20
|
+
maxHeight?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Fires on every keystroke (React convention)
|
|
23
|
+
* Maps to native 'input' event from ty-textarea
|
|
24
|
+
*/
|
|
25
|
+
onChange?: (event: CustomEvent<TyTextareaEventDetail>) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Fires on blur if value changed (native DOM behavior)
|
|
28
|
+
* Maps to native 'change' event from ty-textarea
|
|
29
|
+
*/
|
|
30
|
+
onChangeCommit?: (event: CustomEvent<TyTextareaEventDetail>) => void;
|
|
31
|
+
/** Standard focus event */
|
|
32
|
+
onFocus?: (event: FocusEvent) => void;
|
|
33
|
+
/** Standard blur event */
|
|
34
|
+
onBlur?: (event: FocusEvent) => void;
|
|
35
|
+
}
|
|
36
|
+
export declare const TyTextarea: React.ForwardRefExoticComponent<TyTextareaProps & React.RefAttributes<HTMLElement>>;
|
|
37
|
+
//# sourceMappingURL=TyTextarea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
import { needsPropertyBridge } from '../utils/react-version';
|
|
3
|
+
// One-time warning flag.
|
|
4
|
+
let _warnedOnInputProp = false;
|
|
5
|
+
// React wrapper for ty-textarea web component
|
|
6
|
+
export const TyTextarea = React.forwardRef(({ onChange, onChangeCommit, onFocus, onBlur, disabled, required, minHeight, maxHeight, ...props }, ref) => {
|
|
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;
|
|
21
|
+
// Map onChange to input event (React convention)
|
|
22
|
+
const handleInput = useCallback((event) => {
|
|
23
|
+
if (onChange) {
|
|
24
|
+
onChange(event);
|
|
25
|
+
}
|
|
26
|
+
}, [onChange]);
|
|
27
|
+
// Map onChangeCommit to change event (blur behavior)
|
|
28
|
+
const handleChangeCommit = useCallback((event) => {
|
|
29
|
+
if (onChangeCommit) {
|
|
30
|
+
onChangeCommit(event);
|
|
31
|
+
}
|
|
32
|
+
}, [onChangeCommit]);
|
|
33
|
+
const handleFocus = useCallback((event) => {
|
|
34
|
+
if (onFocus) {
|
|
35
|
+
onFocus(event);
|
|
36
|
+
}
|
|
37
|
+
}, [onFocus]);
|
|
38
|
+
const handleBlur = useCallback((event) => {
|
|
39
|
+
if (onBlur) {
|
|
40
|
+
onBlur(event);
|
|
41
|
+
}
|
|
42
|
+
}, [onBlur]);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
const element = elementRef.current;
|
|
45
|
+
if (!element)
|
|
46
|
+
return;
|
|
47
|
+
// Listen for custom input/change events from ty-textarea
|
|
48
|
+
// Map onChange → input event (React convention)
|
|
49
|
+
if (onChange) {
|
|
50
|
+
element.addEventListener('input', handleInput);
|
|
51
|
+
}
|
|
52
|
+
// Map onChangeCommit → change event (blur behavior)
|
|
53
|
+
if (onChangeCommit) {
|
|
54
|
+
element.addEventListener('change', handleChangeCommit);
|
|
55
|
+
}
|
|
56
|
+
// Listen for standard focus/blur events
|
|
57
|
+
if (onFocus) {
|
|
58
|
+
element.addEventListener('focus', handleFocus);
|
|
59
|
+
}
|
|
60
|
+
if (onBlur) {
|
|
61
|
+
element.addEventListener('blur', handleBlur);
|
|
62
|
+
}
|
|
63
|
+
return () => {
|
|
64
|
+
if (onChange) {
|
|
65
|
+
element.removeEventListener('input', handleInput);
|
|
66
|
+
}
|
|
67
|
+
if (onChangeCommit) {
|
|
68
|
+
element.removeEventListener('change', handleChangeCommit);
|
|
69
|
+
}
|
|
70
|
+
if (onFocus) {
|
|
71
|
+
element.removeEventListener('focus', handleFocus);
|
|
72
|
+
}
|
|
73
|
+
if (onBlur) {
|
|
74
|
+
element.removeEventListener('blur', handleBlur);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}, [handleInput, handleChangeCommit, handleFocus, handleBlur, onChange, onChangeCommit, onFocus, onBlur]);
|
|
78
|
+
// Handle ref forwarding
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
if (ref && elementRef.current) {
|
|
81
|
+
if (typeof ref === 'function') {
|
|
82
|
+
ref(elementRef.current);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
ref.current = elementRef.current;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}, [ref]);
|
|
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.
|
|
92
|
+
useEffect(() => {
|
|
93
|
+
if (!needsPropertyBridge)
|
|
94
|
+
return;
|
|
95
|
+
const element = elementRef.current;
|
|
96
|
+
if (!element)
|
|
97
|
+
return;
|
|
98
|
+
const next = props.value ?? '';
|
|
99
|
+
if (element.value !== next) {
|
|
100
|
+
element.value = next;
|
|
101
|
+
}
|
|
102
|
+
}, [props.value]);
|
|
103
|
+
return React.createElement('ty-textarea', {
|
|
104
|
+
...props,
|
|
105
|
+
...(disabled && { disabled: "" }),
|
|
106
|
+
...(required && { required: "" }),
|
|
107
|
+
...(minHeight && { 'min-height': minHeight }), // Convert camelCase to kebab-case
|
|
108
|
+
...(maxHeight && { 'max-height': maxHeight }), // Convert camelCase to kebab-case
|
|
109
|
+
ref: elementRef,
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
TyTextarea.displayName = 'TyTextarea';
|
|
113
|
+
//# sourceMappingURL=TyTextarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TyTextarea.js","sourceRoot":"","sources":["../../src/components/TyTextarea.tsx"],"names":[],"mappings":"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"}
|