tyrell-react 1.0.0-RC10

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.
Files changed (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +410 -0
  3. package/dist/components/TyButton.d.ts +52 -0
  4. package/dist/components/TyButton.d.ts.map +1 -0
  5. package/dist/components/TyButton.js +76 -0
  6. package/dist/components/TyButton.js.map +1 -0
  7. package/dist/components/TyCalendar.d.ts +63 -0
  8. package/dist/components/TyCalendar.d.ts.map +1 -0
  9. package/dist/components/TyCalendar.js +128 -0
  10. package/dist/components/TyCalendar.js.map +1 -0
  11. package/dist/components/TyCalendarMonth.d.ts +32 -0
  12. package/dist/components/TyCalendarMonth.d.ts.map +1 -0
  13. package/dist/components/TyCalendarMonth.js +54 -0
  14. package/dist/components/TyCalendarMonth.js.map +1 -0
  15. package/dist/components/TyCalendarNavigation.d.ts +21 -0
  16. package/dist/components/TyCalendarNavigation.d.ts.map +1 -0
  17. package/dist/components/TyCalendarNavigation.js +50 -0
  18. package/dist/components/TyCalendarNavigation.js.map +1 -0
  19. package/dist/components/TyCheckbox.d.ts +39 -0
  20. package/dist/components/TyCheckbox.d.ts.map +1 -0
  21. package/dist/components/TyCheckbox.js +76 -0
  22. package/dist/components/TyCheckbox.js.map +1 -0
  23. package/dist/components/TyCopy.d.ts +21 -0
  24. package/dist/components/TyCopy.d.ts.map +1 -0
  25. package/dist/components/TyCopy.js +46 -0
  26. package/dist/components/TyCopy.js.map +1 -0
  27. package/dist/components/TyDatePicker.d.ts +45 -0
  28. package/dist/components/TyDatePicker.d.ts.map +1 -0
  29. package/dist/components/TyDatePicker.js +122 -0
  30. package/dist/components/TyDatePicker.js.map +1 -0
  31. package/dist/components/TyDropdown.d.ts +62 -0
  32. package/dist/components/TyDropdown.d.ts.map +1 -0
  33. package/dist/components/TyDropdown.js +124 -0
  34. package/dist/components/TyDropdown.js.map +1 -0
  35. package/dist/components/TyFileUpload.d.ts +31 -0
  36. package/dist/components/TyFileUpload.d.ts.map +1 -0
  37. package/dist/components/TyFileUpload.js +56 -0
  38. package/dist/components/TyFileUpload.js.map +1 -0
  39. package/dist/components/TyIcon.d.ts +17 -0
  40. package/dist/components/TyIcon.d.ts.map +1 -0
  41. package/dist/components/TyIcon.js +42 -0
  42. package/dist/components/TyIcon.js.map +1 -0
  43. package/dist/components/TyInput.d.ts +65 -0
  44. package/dist/components/TyInput.d.ts.map +1 -0
  45. package/dist/components/TyInput.js +134 -0
  46. package/dist/components/TyInput.js.map +1 -0
  47. package/dist/components/TyModal.d.ts +48 -0
  48. package/dist/components/TyModal.d.ts.map +1 -0
  49. package/dist/components/TyModal.js +120 -0
  50. package/dist/components/TyModal.js.map +1 -0
  51. package/dist/components/TyMultiselect.d.ts +57 -0
  52. package/dist/components/TyMultiselect.d.ts.map +1 -0
  53. package/dist/components/TyMultiselect.js +111 -0
  54. package/dist/components/TyMultiselect.js.map +1 -0
  55. package/dist/components/TyOption.d.ts +10 -0
  56. package/dist/components/TyOption.d.ts.map +1 -0
  57. package/dist/components/TyOption.js +29 -0
  58. package/dist/components/TyOption.js.map +1 -0
  59. package/dist/components/TyPopup.d.ts +24 -0
  60. package/dist/components/TyPopup.d.ts.map +1 -0
  61. package/dist/components/TyPopup.js +70 -0
  62. package/dist/components/TyPopup.js.map +1 -0
  63. package/dist/components/TyRadio.d.ts +20 -0
  64. package/dist/components/TyRadio.d.ts.map +1 -0
  65. package/dist/components/TyRadio.js +35 -0
  66. package/dist/components/TyRadio.js.map +1 -0
  67. package/dist/components/TyRadioGroup.d.ts +40 -0
  68. package/dist/components/TyRadioGroup.d.ts.map +1 -0
  69. package/dist/components/TyRadioGroup.js +61 -0
  70. package/dist/components/TyRadioGroup.js.map +1 -0
  71. package/dist/components/TyResizeObserver.d.ts +11 -0
  72. package/dist/components/TyResizeObserver.d.ts.map +1 -0
  73. package/dist/components/TyResizeObserver.js +28 -0
  74. package/dist/components/TyResizeObserver.js.map +1 -0
  75. package/dist/components/TyScrollContainer.d.ts +25 -0
  76. package/dist/components/TyScrollContainer.d.ts.map +1 -0
  77. package/dist/components/TyScrollContainer.js +61 -0
  78. package/dist/components/TyScrollContainer.js.map +1 -0
  79. package/dist/components/TyStep.d.ts +17 -0
  80. package/dist/components/TyStep.d.ts.map +1 -0
  81. package/dist/components/TyStep.js +35 -0
  82. package/dist/components/TyStep.js.map +1 -0
  83. package/dist/components/TySwitch.d.ts +35 -0
  84. package/dist/components/TySwitch.d.ts.map +1 -0
  85. package/dist/components/TySwitch.js +59 -0
  86. package/dist/components/TySwitch.js.map +1 -0
  87. package/dist/components/TyTab.d.ts +13 -0
  88. package/dist/components/TyTab.d.ts.map +1 -0
  89. package/dist/components/TyTab.js +34 -0
  90. package/dist/components/TyTab.js.map +1 -0
  91. package/dist/components/TyTabs.d.ts +23 -0
  92. package/dist/components/TyTabs.d.ts.map +1 -0
  93. package/dist/components/TyTabs.js +48 -0
  94. package/dist/components/TyTabs.js.map +1 -0
  95. package/dist/components/TyTag.d.ts +22 -0
  96. package/dist/components/TyTag.d.ts.map +1 -0
  97. package/dist/components/TyTag.js +51 -0
  98. package/dist/components/TyTag.js.map +1 -0
  99. package/dist/components/TyTextarea.d.ts +37 -0
  100. package/dist/components/TyTextarea.d.ts.map +1 -0
  101. package/dist/components/TyTextarea.js +116 -0
  102. package/dist/components/TyTextarea.js.map +1 -0
  103. package/dist/components/TyTooltip.d.ts +17 -0
  104. package/dist/components/TyTooltip.d.ts.map +1 -0
  105. package/dist/components/TyTooltip.js +41 -0
  106. package/dist/components/TyTooltip.js.map +1 -0
  107. package/dist/components/TyWizard.d.ts +26 -0
  108. package/dist/components/TyWizard.d.ts.map +1 -0
  109. package/dist/components/TyWizard.js +50 -0
  110. package/dist/components/TyWizard.js.map +1 -0
  111. package/dist/components/index.d.ts +112 -0
  112. package/dist/components/index.d.ts.map +1 -0
  113. package/dist/components/index.js +127 -0
  114. package/dist/components/index.js.map +1 -0
  115. package/dist/utils/react-version.d.ts +2 -0
  116. package/dist/utils/react-version.d.ts.map +1 -0
  117. package/dist/utils/react-version.js +8 -0
  118. package/dist/utils/react-version.js.map +1 -0
  119. package/dist/utils/use-boolean-prop.d.ts +36 -0
  120. package/dist/utils/use-boolean-prop.d.ts.map +1 -0
  121. package/dist/utils/use-boolean-prop.js +62 -0
  122. package/dist/utils/use-boolean-prop.js.map +1 -0
  123. package/dist/version.d.ts +3 -0
  124. package/dist/version.d.ts.map +1 -0
  125. package/dist/version.js +6 -0
  126. package/dist/version.js.map +1 -0
  127. package/package.json +47 -0
  128. package/src/components/EventConventionTest.tsx +155 -0
  129. package/src/components/TyButton.tsx +157 -0
  130. package/src/components/TyCalendar.tsx +247 -0
  131. package/src/components/TyCalendarMonth.tsx +108 -0
  132. package/src/components/TyCalendarNavigation.tsx +91 -0
  133. package/src/components/TyCheckbox.tsx +147 -0
  134. package/src/components/TyCopy.tsx +83 -0
  135. package/src/components/TyDatePicker.tsx +215 -0
  136. package/src/components/TyDropdown.tsx +240 -0
  137. package/src/components/TyFileUpload.tsx +108 -0
  138. package/src/components/TyIcon.tsx +71 -0
  139. package/src/components/TyInput.tsx +239 -0
  140. package/src/components/TyModal.tsx +195 -0
  141. package/src/components/TyMultiselect.tsx +208 -0
  142. package/src/components/TyOption.tsx +47 -0
  143. package/src/components/TyPopup.tsx +116 -0
  144. package/src/components/TyRadio.tsx +61 -0
  145. package/src/components/TyRadioGroup.tsx +125 -0
  146. package/src/components/TyResizeObserver.tsx +54 -0
  147. package/src/components/TyScrollContainer.tsx +102 -0
  148. package/src/components/TyStep.tsx +71 -0
  149. package/src/components/TySwitch.tsx +114 -0
  150. package/src/components/TyTab.tsx +65 -0
  151. package/src/components/TyTabs.tsx +93 -0
  152. package/src/components/TyTag.tsx +86 -0
  153. package/src/components/TyTextarea.tsx +181 -0
  154. package/src/components/TyTooltip.tsx +83 -0
  155. package/src/components/TyWizard.tsx +99 -0
  156. package/src/components/index.ts +279 -0
  157. package/src/utils/react-version.ts +8 -0
  158. package/src/utils/use-boolean-prop.ts +62 -0
  159. package/src/version.ts +6 -0
@@ -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;AAI9D,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,gFAuDjB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import React, { useEffect, useRef, useCallback } from 'react';
2
+ import { useBooleanProperty } from '../utils/use-boolean-prop';
3
+ // React wrapper for ty-tag web component
4
+ export const TyTag = React.forwardRef(({ children, onClick, onTagDismiss, notPill, clickable, dismissible, disabled, selected, ...props }, ref) => {
5
+ const elementRef = useRef(null);
6
+ const handleDismiss = useCallback((event) => {
7
+ if (onTagDismiss) {
8
+ onTagDismiss(event);
9
+ }
10
+ }, [onTagDismiss]);
11
+ // dismiss is a custom event — React doesn't know about it, so we need a manual listener
12
+ useEffect(() => {
13
+ const element = elementRef.current;
14
+ if (!element || !onTagDismiss)
15
+ return;
16
+ element.addEventListener('dismiss', handleDismiss);
17
+ return () => {
18
+ element.removeEventListener('dismiss', handleDismiss);
19
+ };
20
+ }, [handleDismiss, onTagDismiss]);
21
+ // Handle ref forwarding
22
+ useEffect(() => {
23
+ if (ref && elementRef.current) {
24
+ if (typeof ref === 'function') {
25
+ ref(elementRef.current);
26
+ }
27
+ else {
28
+ ref.current = elementRef.current;
29
+ }
30
+ }
31
+ }, [ref]);
32
+ const isNotPill = useBooleanProperty(elementRef, 'notPill', notPill);
33
+ const isClickable = useBooleanProperty(elementRef, 'clickable', clickable);
34
+ const isDismissible = useBooleanProperty(elementRef, 'dismissible', dismissible);
35
+ const isDisabled = useBooleanProperty(elementRef, 'disabled', disabled);
36
+ const isSelected = useBooleanProperty(elementRef, 'selected', selected);
37
+ return React.createElement('ty-tag', {
38
+ ...props,
39
+ // click is dispatched as composed CustomEvent by the web component — React's
40
+ // synthetic onClick already catches it, so we just pass it through as onClick
41
+ ...(onClick && { onClick }),
42
+ ...(isNotPill && { 'not-pill': "" }),
43
+ ...(isClickable && { clickable: "" }),
44
+ ...(isDismissible && { dismissible: "" }),
45
+ ...(isDisabled && { disabled: "" }),
46
+ ...(isSelected && { selected: "" }),
47
+ ref: elementRef,
48
+ }, children);
49
+ });
50
+ TyTag.displayName = 'TyTag';
51
+ //# 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;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA0B/D,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,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAExE,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,SAAS,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACpC,GAAG,CAAC,WAAW,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QACrC,GAAG,CAAC,aAAa,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QACzC,GAAG,CAAC,UAAU,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACnC,GAAG,CAAC,UAAU,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACnC,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;AAK9D,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,qFA6HtB,CAAC"}
@@ -0,0 +1,116 @@
1
+ import React, { useEffect, useRef, useCallback } from 'react';
2
+ import { needsPropertyBridge } from '../utils/react-version';
3
+ import { useBooleanProperty } from '../utils/use-boolean-prop';
4
+ // One-time warning flag.
5
+ let _warnedOnInputProp = false;
6
+ // React wrapper for ty-textarea web component
7
+ export const TyTextarea = React.forwardRef(({ onChange, onChangeCommit, onFocus, onBlur, disabled, required, minHeight, maxHeight, ...props }, ref) => {
8
+ const elementRef = useRef(null);
9
+ // Same `onInput` → `onChange` redirect as TyInput. React's synthetic-event
10
+ // system strips event.detail; users hitting e.detail.value will crash.
11
+ const onInputProp = props.onInput;
12
+ if (onInputProp && !onChange) {
13
+ if (!_warnedOnInputProp) {
14
+ _warnedOnInputProp = true;
15
+ console.warn('[tyrell-react] <TyTextarea> received `onInput`. ' +
16
+ 'React strips event.detail; use `onChange` instead — it receives the raw CustomEvent. ' +
17
+ 'Forwarding for now, but please rename the prop.');
18
+ }
19
+ onChange = onInputProp;
20
+ }
21
+ delete props.onInput;
22
+ // Map onChange to input event (React convention)
23
+ const handleInput = useCallback((event) => {
24
+ if (onChange) {
25
+ onChange(event);
26
+ }
27
+ }, [onChange]);
28
+ // Map onChangeCommit to change event (blur behavior)
29
+ const handleChangeCommit = useCallback((event) => {
30
+ if (onChangeCommit) {
31
+ onChangeCommit(event);
32
+ }
33
+ }, [onChangeCommit]);
34
+ const handleFocus = useCallback((event) => {
35
+ if (onFocus) {
36
+ onFocus(event);
37
+ }
38
+ }, [onFocus]);
39
+ const handleBlur = useCallback((event) => {
40
+ if (onBlur) {
41
+ onBlur(event);
42
+ }
43
+ }, [onBlur]);
44
+ useEffect(() => {
45
+ const element = elementRef.current;
46
+ if (!element)
47
+ return;
48
+ // Listen for custom input/change events from ty-textarea
49
+ // Map onChange → input event (React convention)
50
+ if (onChange) {
51
+ element.addEventListener('input', handleInput);
52
+ }
53
+ // Map onChangeCommit → change event (blur behavior)
54
+ if (onChangeCommit) {
55
+ element.addEventListener('change', handleChangeCommit);
56
+ }
57
+ // Listen for standard focus/blur events
58
+ if (onFocus) {
59
+ element.addEventListener('focus', handleFocus);
60
+ }
61
+ if (onBlur) {
62
+ element.addEventListener('blur', handleBlur);
63
+ }
64
+ return () => {
65
+ if (onChange) {
66
+ element.removeEventListener('input', handleInput);
67
+ }
68
+ if (onChangeCommit) {
69
+ element.removeEventListener('change', handleChangeCommit);
70
+ }
71
+ if (onFocus) {
72
+ element.removeEventListener('focus', handleFocus);
73
+ }
74
+ if (onBlur) {
75
+ element.removeEventListener('blur', handleBlur);
76
+ }
77
+ };
78
+ }, [handleInput, handleChangeCommit, handleFocus, handleBlur, onChange, onChangeCommit, onFocus, onBlur]);
79
+ // Handle ref forwarding
80
+ useEffect(() => {
81
+ if (ref && elementRef.current) {
82
+ if (typeof ref === 'function') {
83
+ ref(elementRef.current);
84
+ }
85
+ else {
86
+ ref.current = elementRef.current;
87
+ }
88
+ }
89
+ }, [ref]);
90
+ // Imperatively sync `value` to the underlying element's property.
91
+ // React 18 workaround: prop-to-property bridging is unreliable for empty
92
+ // strings on custom elements. React 19+ handles this natively.
93
+ useEffect(() => {
94
+ if (!needsPropertyBridge)
95
+ return;
96
+ const element = elementRef.current;
97
+ if (!element)
98
+ return;
99
+ const next = props.value ?? '';
100
+ if (element.value !== next) {
101
+ element.value = next;
102
+ }
103
+ }, [props.value]);
104
+ const isDisabled = useBooleanProperty(elementRef, 'disabled', disabled);
105
+ const isRequired = useBooleanProperty(elementRef, 'required', required);
106
+ return React.createElement('ty-textarea', {
107
+ ...props,
108
+ ...(isDisabled && { disabled: "" }),
109
+ ...(isRequired && { required: "" }),
110
+ ...(minHeight && { 'min-height': minHeight }), // Convert camelCase to kebab-case
111
+ ...(maxHeight && { 'max-height': maxHeight }), // Convert camelCase to kebab-case
112
+ ref: elementRef,
113
+ });
114
+ });
115
+ TyTextarea.displayName = 'TyTextarea';
116
+ //# 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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"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ export interface TyTooltipProps extends React.HTMLAttributes<HTMLElement> {
3
+ /** Tooltip positioning relative to the parent element */
4
+ placement?: 'top' | 'bottom' | 'left' | 'right';
5
+ /** Distance in pixels from the anchor element (default: 8) */
6
+ offset?: number;
7
+ /** Delay in milliseconds before showing tooltip (default: 600) */
8
+ delay?: number;
9
+ /** Disable the tooltip */
10
+ disabled?: boolean;
11
+ /** Semantic styling variant */
12
+ flavor?: 'dark' | 'light' | 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'neutral';
13
+ /** Tooltip content */
14
+ children?: React.ReactNode;
15
+ }
16
+ export declare const TyTooltip: React.ForwardRefExoticComponent<TyTooltipProps & React.RefAttributes<HTMLElement>>;
17
+ //# sourceMappingURL=TyTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyTooltip.d.ts","sourceRoot":"","sources":["../../src/components/TyTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACvE,yDAAyD;IACzD,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAEhD,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAE5G,sBAAsB;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,eAAO,MAAM,SAAS,oFAuDrB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ import { useBooleanProperty } from '../utils/use-boolean-prop';
3
+ // React wrapper for ty-tooltip web component
4
+ export const TyTooltip = React.forwardRef(({ placement, offset, delay, disabled, flavor, children, ...props }, ref) => {
5
+ const elementRef = useRef(null);
6
+ // Handle ref forwarding
7
+ useEffect(() => {
8
+ if (ref && elementRef.current) {
9
+ if (typeof ref === 'function') {
10
+ ref(elementRef.current);
11
+ }
12
+ else {
13
+ ref.current = elementRef.current;
14
+ }
15
+ }
16
+ }, [ref]);
17
+ // Convert React props to web component attributes
18
+ const webComponentProps = {
19
+ ...props,
20
+ ref: elementRef,
21
+ };
22
+ // Add optional attributes only if they have values
23
+ if (placement) {
24
+ webComponentProps.placement = placement;
25
+ }
26
+ if (offset !== undefined) {
27
+ webComponentProps.offset = offset.toString();
28
+ }
29
+ if (delay !== undefined) {
30
+ webComponentProps.delay = delay.toString();
31
+ }
32
+ const isDisabled = useBooleanProperty(elementRef, 'disabled', disabled);
33
+ if (isDisabled)
34
+ webComponentProps.disabled = '';
35
+ if (flavor) {
36
+ webComponentProps.flavor = flavor;
37
+ }
38
+ return React.createElement('ty-tooltip', webComponentProps, children);
39
+ });
40
+ TyTooltip.displayName = 'TyTooltip';
41
+ //# sourceMappingURL=TyTooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyTooltip.js","sourceRoot":"","sources":["../../src/components/TyTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAuB/D,6CAA6C;AAC7C,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CACvC,CAAC,EACC,SAAS,EACT,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,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,kDAAkD;IAClD,MAAM,iBAAiB,GAAwB;QAC7C,GAAG,KAAK;QACR,GAAG,EAAE,UAAU;KAChB,CAAC;IAEF,mDAAmD;IACnD,IAAI,SAAS,EAAE,CAAC;QACd,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxE,IAAI,UAAU;QAAE,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAC;IAEhD,IAAI,MAAM,EAAE,CAAC;QACX,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC,aAAa,CACxB,YAAY,EACZ,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ export interface TyWizardProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'> {
3
+ /** Content area width (accepts px or %) */
4
+ width?: string;
5
+ /** Total container height including step indicators */
6
+ height?: string;
7
+ /** ID of currently active step */
8
+ active?: string;
9
+ /** Comma-separated IDs of completed steps */
10
+ completed?: string;
11
+ /** Step indicator layout */
12
+ orientation?: 'horizontal' | 'vertical';
13
+ /** Step change event handler */
14
+ onStepChange?: (event: CustomEvent<WizardStepChangeDetail>) => void;
15
+ /** Wizard content (TyStep components) */
16
+ children?: React.ReactNode;
17
+ }
18
+ export interface WizardStepChangeDetail {
19
+ activeId: string;
20
+ activeIndex: number;
21
+ previousId: string | null;
22
+ previousIndex: number | null;
23
+ direction: 'forward' | 'backward' | 'none';
24
+ }
25
+ export declare const TyWizard: React.ForwardRefExoticComponent<TyWizardProps & React.RefAttributes<HTMLElement>>;
26
+ //# sourceMappingURL=TyWizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyWizard.d.ts","sourceRoot":"","sources":["../../src/components/TyWizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IACxF,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAExC,gCAAgC;IAChC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,sBAAsB,CAAC,KAAK,IAAI,CAAC;IAEpE,yCAAyC;IACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;CAC5C;AAGD,eAAO,MAAM,QAAQ,mFA6DpB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ // React wrapper for ty-wizard web component
3
+ export const TyWizard = React.forwardRef(({ children, width, height, active, completed, orientation, onStepChange, ...props }, ref) => {
4
+ const elementRef = useRef(null);
5
+ // Handle step change events
6
+ useEffect(() => {
7
+ const element = elementRef.current;
8
+ if (!element)
9
+ return;
10
+ const handleStepChange = (event) => {
11
+ if (onStepChange) {
12
+ onStepChange(event);
13
+ }
14
+ };
15
+ element.addEventListener('ty-wizard-step-change', handleStepChange);
16
+ return () => {
17
+ element.removeEventListener('ty-wizard-step-change', handleStepChange);
18
+ };
19
+ }, [onStepChange]);
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 (completed)
44
+ webComponentProps.completed = completed;
45
+ if (orientation)
46
+ webComponentProps.orientation = orientation;
47
+ return React.createElement('ty-wizard', webComponentProps, children);
48
+ });
49
+ TyWizard.displayName = 'TyWizard';
50
+ //# sourceMappingURL=TyWizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyWizard.js","sourceRoot":"","sources":["../../src/components/TyWizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAkCjD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CACtC,CAAC,EACC,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE7C,4BAA4B;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,EAAE;YACxC,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,KAA4C,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QAEpE,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QACzE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,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;IACvD,IAAI,WAAW;QAAE,iBAAiB,CAAC,WAAW,GAAG,WAAW,CAAC;IAE7D,OAAO,KAAK,CAAC,aAAa,CACxB,WAAW,EACX,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC"}
@@ -0,0 +1,112 @@
1
+ import { VERSION } from '../version';
2
+ /** Current version of tyrell-react (auto-synced with package.json on build). */
3
+ export { VERSION };
4
+ export { TyButton } from './TyButton';
5
+ export type { TyButtonProps, TyButtonCSSProperties } from './TyButton';
6
+ export { TyTag } from './TyTag';
7
+ export type { TyTagProps, TyTagCSSProperties } from './TyTag';
8
+ export { TyInput } from './TyInput';
9
+ export type { TyInputProps, TyInputEventDetail, TyInputCSSProperties } from './TyInput';
10
+ export { TyTextarea } from './TyTextarea';
11
+ export type { TyTextareaProps, TyTextareaEventDetail } from './TyTextarea';
12
+ export { TyDropdown } from './TyDropdown';
13
+ export type { TyDropdownProps, TyDropdownEventDetail } from './TyDropdown';
14
+ export { TyOption } from './TyOption';
15
+ export type { TyOptionProps } from './TyOption';
16
+ export { TyIcon } from './TyIcon';
17
+ export type { TyIconProps } from './TyIcon';
18
+ export { TyModal } from './TyModal';
19
+ export type { TyModalProps, TyModalEventDetail, TyModalRef } from './TyModal';
20
+ export { TyTooltip } from './TyTooltip';
21
+ export type { TyTooltipProps } from './TyTooltip';
22
+ export { TyMultiselect } from './TyMultiselect';
23
+ export type { TyMultiselectProps, TyMultiselectEventDetail } from './TyMultiselect';
24
+ export { TyCalendar } from './TyCalendar';
25
+ export type { TyCalendarProps, TyCalendarChangeEventDetail, TyCalendarNavigateEventDetail } from './TyCalendar';
26
+ export { TyDatePicker } from './TyDatePicker';
27
+ export type { TyDatePickerProps, TyDatePickerEventDetail } from './TyDatePicker';
28
+ export { TyPopup } from './TyPopup';
29
+ export type { TyPopupProps, TyPopupElement } from './TyPopup';
30
+ export { TyCheckbox } from './TyCheckbox';
31
+ export type { TyCheckboxProps, TyCheckboxEventDetail } from './TyCheckbox';
32
+ export { TySwitch } from './TySwitch';
33
+ export type { TySwitchProps, TySwitchEventDetail } from './TySwitch';
34
+ export { TyRadio } from './TyRadio';
35
+ export type { TyRadioProps } from './TyRadio';
36
+ export { TyRadioGroup } from './TyRadioGroup';
37
+ export type { TyRadioGroupProps, TyRadioGroupEventDetail } from './TyRadioGroup';
38
+ export { TyCopy } from './TyCopy';
39
+ export type { TyCopyProps } from './TyCopy';
40
+ export { TyFileUpload } from './TyFileUpload';
41
+ export type { TyFileUploadProps, TyFileUploadEventDetail } from './TyFileUpload';
42
+ export { TyTabs } from './TyTabs';
43
+ export type { TyTabsProps, TabChangeDetail } from './TyTabs';
44
+ export { TyTab } from './TyTab';
45
+ export type { TyTabProps } from './TyTab';
46
+ export { TyCalendarMonth } from './TyCalendarMonth';
47
+ export type { TyCalendarMonthProps, DayClickDetail } from './TyCalendarMonth';
48
+ export { TyCalendarNavigation } from './TyCalendarNavigation';
49
+ export type { TyCalendarNavigationProps, NavigationChangeDetail } from './TyCalendarNavigation';
50
+ export { TyWizard } from './TyWizard';
51
+ export type { TyWizardProps, WizardStepChangeDetail } from './TyWizard';
52
+ export { TyStep } from './TyStep';
53
+ export type { TyStepProps } from './TyStep';
54
+ export { TyResizeObserver } from './TyResizeObserver';
55
+ export type { TyResizeObserverProps } from './TyResizeObserver';
56
+ export { TyScrollContainer } from './TyScrollContainer';
57
+ export type { TyScrollContainerProps, TyScrollContainerRef } from './TyScrollContainer';
58
+ export { TyButton as Button } from './TyButton';
59
+ export { TyTag as Tag } from './TyTag';
60
+ export { TyInput as Input } from './TyInput';
61
+ export { TyTextarea as Textarea } from './TyTextarea';
62
+ export { TyDropdown as Dropdown } from './TyDropdown';
63
+ export { TyOption as Option } from './TyOption';
64
+ export { TyIcon as Icon } from './TyIcon';
65
+ export { TyModal as Modal } from './TyModal';
66
+ export { TyTooltip as Tooltip } from './TyTooltip';
67
+ export { TyMultiselect as Multiselect } from './TyMultiselect';
68
+ export { TyCalendar as Calendar } from './TyCalendar';
69
+ export { TyDatePicker as DatePicker } from './TyDatePicker';
70
+ export { TyPopup as Popup } from './TyPopup';
71
+ export { TyCheckbox as Checkbox } from './TyCheckbox';
72
+ export { TySwitch as Switch } from './TySwitch';
73
+ export { TyRadio as Radio } from './TyRadio';
74
+ export { TyRadioGroup as RadioGroup } from './TyRadioGroup';
75
+ export { TyCopy as Copy } from './TyCopy';
76
+ export { TyFileUpload as FileUpload } from './TyFileUpload';
77
+ export { TyTabs as Tabs } from './TyTabs';
78
+ export { TyTab as Tab } from './TyTab';
79
+ export { TyCalendarMonth as CalendarMonth } from './TyCalendarMonth';
80
+ export { TyCalendarNavigation as CalendarNavigation } from './TyCalendarNavigation';
81
+ export { TyWizard as Wizard } from './TyWizard';
82
+ export { TyStep as Step } from './TyStep';
83
+ export { TyResizeObserver as ResizeObserver } from './TyResizeObserver';
84
+ export { TyScrollContainer as ScrollContainer } from './TyScrollContainer';
85
+ export type { TyButtonProps as ButtonProps } from './TyButton';
86
+ export type { TyTagProps as TagProps } from './TyTag';
87
+ export type { TyInputProps as InputProps, TyInputEventDetail as InputEventDetail } from './TyInput';
88
+ export type { TyTextareaProps as TextareaProps, TyTextareaEventDetail as TextareaEventDetail } from './TyTextarea';
89
+ export type { TyDropdownProps as DropdownProps, TyDropdownEventDetail as DropdownEventDetail, OptionData } from './TyDropdown';
90
+ export type { TyOptionProps as OptionProps } from './TyOption';
91
+ export type { TyIconProps as IconProps } from './TyIcon';
92
+ export type { TyModalProps as ModalProps, TyModalEventDetail as ModalEventDetail, TyModalRef as ModalRef } from './TyModal';
93
+ export type { TyTooltipProps as TooltipProps } from './TyTooltip';
94
+ export type { TyMultiselectProps as MultiselectProps, TyMultiselectEventDetail as MultiselectEventDetail } from './TyMultiselect';
95
+ export type { TyCalendarProps as CalendarProps, TyCalendarChangeEventDetail as CalendarChangeEventDetail, TyCalendarNavigateEventDetail as CalendarNavigateEventDetail } from './TyCalendar';
96
+ export type { TyDatePickerProps as DatePickerProps, TyDatePickerEventDetail as DatePickerEventDetail } from './TyDatePicker';
97
+ export type { TyPopupProps as PopupProps, TyPopupElement as PopupElement } from './TyPopup';
98
+ export type { TyCheckboxProps as CheckboxProps, TyCheckboxEventDetail as CheckboxEventDetail } from './TyCheckbox';
99
+ export type { TySwitchProps as SwitchProps, TySwitchEventDetail as SwitchEventDetail } from './TySwitch';
100
+ export type { TyRadioProps as RadioProps } from './TyRadio';
101
+ export type { TyRadioGroupProps as RadioGroupProps, TyRadioGroupEventDetail as RadioGroupEventDetail } from './TyRadioGroup';
102
+ export type { TyCopyProps as CopyProps } from './TyCopy';
103
+ export type { TyFileUploadProps as FileUploadProps, TyFileUploadEventDetail as FileUploadEventDetail } from './TyFileUpload';
104
+ export type { TyTabsProps as TabsProps } from './TyTabs';
105
+ export type { TyTabProps as TabProps } from './TyTab';
106
+ export type { TyCalendarMonthProps as CalendarMonthProps } from './TyCalendarMonth';
107
+ export type { TyCalendarNavigationProps as CalendarNavigationProps } from './TyCalendarNavigation';
108
+ export type { TyWizardProps as WizardProps, WizardStepChangeDetail as StepChangeDetail } from './TyWizard';
109
+ export type { TyStepProps as StepProps } from './TyStep';
110
+ export type { TyResizeObserverProps as ResizeObserverProps } from './TyResizeObserver';
111
+ export type { TyScrollContainerProps as ScrollContainerProps, TyScrollContainerRef as ScrollContainerRef } from './TyScrollContainer';
112
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}