tyrell-react 1.0.0-TC7

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 (124) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +386 -0
  3. package/dist/components/TyButton.d.ts +50 -0
  4. package/dist/components/TyButton.d.ts.map +1 -0
  5. package/dist/components/TyButton.js +63 -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 +122 -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 +68 -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 +42 -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 +114 -0
  30. package/dist/components/TyDatePicker.js.map +1 -0
  31. package/dist/components/TyDropdown.d.ts +51 -0
  32. package/dist/components/TyDropdown.d.ts.map +1 -0
  33. package/dist/components/TyDropdown.js +97 -0
  34. package/dist/components/TyDropdown.js.map +1 -0
  35. package/dist/components/TyIcon.d.ts +17 -0
  36. package/dist/components/TyIcon.d.ts.map +1 -0
  37. package/dist/components/TyIcon.js +41 -0
  38. package/dist/components/TyIcon.js.map +1 -0
  39. package/dist/components/TyInput.d.ts +65 -0
  40. package/dist/components/TyInput.d.ts.map +1 -0
  41. package/dist/components/TyInput.js +92 -0
  42. package/dist/components/TyInput.js.map +1 -0
  43. package/dist/components/TyModal.d.ts +29 -0
  44. package/dist/components/TyModal.d.ts.map +1 -0
  45. package/dist/components/TyModal.js +74 -0
  46. package/dist/components/TyModal.js.map +1 -0
  47. package/dist/components/TyMultiselect.d.ts +51 -0
  48. package/dist/components/TyMultiselect.d.ts.map +1 -0
  49. package/dist/components/TyMultiselect.js +92 -0
  50. package/dist/components/TyMultiselect.js.map +1 -0
  51. package/dist/components/TyOption.d.ts +10 -0
  52. package/dist/components/TyOption.d.ts.map +1 -0
  53. package/dist/components/TyOption.js +25 -0
  54. package/dist/components/TyOption.js.map +1 -0
  55. package/dist/components/TyPopup.d.ts +24 -0
  56. package/dist/components/TyPopup.d.ts.map +1 -0
  57. package/dist/components/TyPopup.js +61 -0
  58. package/dist/components/TyPopup.js.map +1 -0
  59. package/dist/components/TyResizeObserver.d.ts +11 -0
  60. package/dist/components/TyResizeObserver.d.ts.map +1 -0
  61. package/dist/components/TyResizeObserver.js +28 -0
  62. package/dist/components/TyResizeObserver.js.map +1 -0
  63. package/dist/components/TyScrollContainer.d.ts +25 -0
  64. package/dist/components/TyScrollContainer.d.ts.map +1 -0
  65. package/dist/components/TyScrollContainer.js +43 -0
  66. package/dist/components/TyScrollContainer.js.map +1 -0
  67. package/dist/components/TyStep.d.ts +17 -0
  68. package/dist/components/TyStep.d.ts.map +1 -0
  69. package/dist/components/TyStep.js +35 -0
  70. package/dist/components/TyStep.js.map +1 -0
  71. package/dist/components/TyTab.d.ts +13 -0
  72. package/dist/components/TyTab.d.ts.map +1 -0
  73. package/dist/components/TyTab.js +32 -0
  74. package/dist/components/TyTab.js.map +1 -0
  75. package/dist/components/TyTabs.d.ts +23 -0
  76. package/dist/components/TyTabs.d.ts.map +1 -0
  77. package/dist/components/TyTabs.js +48 -0
  78. package/dist/components/TyTabs.js.map +1 -0
  79. package/dist/components/TyTag.d.ts +22 -0
  80. package/dist/components/TyTag.d.ts.map +1 -0
  81. package/dist/components/TyTag.js +45 -0
  82. package/dist/components/TyTag.js.map +1 -0
  83. package/dist/components/TyTextarea.d.ts +37 -0
  84. package/dist/components/TyTextarea.d.ts.map +1 -0
  85. package/dist/components/TyTextarea.js +83 -0
  86. package/dist/components/TyTextarea.js.map +1 -0
  87. package/dist/components/TyTooltip.d.ts +17 -0
  88. package/dist/components/TyTooltip.d.ts.map +1 -0
  89. package/dist/components/TyTooltip.js +40 -0
  90. package/dist/components/TyTooltip.js.map +1 -0
  91. package/dist/components/TyWizard.d.ts +26 -0
  92. package/dist/components/TyWizard.d.ts.map +1 -0
  93. package/dist/components/TyWizard.js +50 -0
  94. package/dist/components/TyWizard.js.map +1 -0
  95. package/dist/components/index.d.ts +93 -0
  96. package/dist/components/index.d.ts.map +1 -0
  97. package/dist/components/index.js +106 -0
  98. package/dist/components/index.js.map +1 -0
  99. package/package.json +46 -0
  100. package/src/components/EventConventionTest.tsx +155 -0
  101. package/src/components/TyButton.tsx +140 -0
  102. package/src/components/TyCalendar.tsx +244 -0
  103. package/src/components/TyCalendarMonth.tsx +108 -0
  104. package/src/components/TyCalendarNavigation.tsx +91 -0
  105. package/src/components/TyCheckbox.tsx +138 -0
  106. package/src/components/TyCopy.tsx +78 -0
  107. package/src/components/TyDatePicker.tsx +216 -0
  108. package/src/components/TyDropdown.tsx +205 -0
  109. package/src/components/TyIcon.tsx +72 -0
  110. package/src/components/TyInput.tsx +194 -0
  111. package/src/components/TyModal.tsx +142 -0
  112. package/src/components/TyMultiselect.tsx +189 -0
  113. package/src/components/TyOption.tsx +42 -0
  114. package/src/components/TyPopup.tsx +111 -0
  115. package/src/components/TyResizeObserver.tsx +54 -0
  116. package/src/components/TyScrollContainer.tsx +87 -0
  117. package/src/components/TyStep.tsx +71 -0
  118. package/src/components/TyTab.tsx +63 -0
  119. package/src/components/TyTabs.tsx +93 -0
  120. package/src/components/TyTag.tsx +79 -0
  121. package/src/components/TyTextarea.tsx +144 -0
  122. package/src/components/TyTooltip.tsx +83 -0
  123. package/src/components/TyWizard.tsx +99 -0
  124. package/src/components/index.ts +230 -0
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ export interface TyMultiselectEventDetail {
3
+ /** Array of currently selected values */
4
+ values: string[];
5
+ /** Action that triggered the change: "add" | "remove" */
6
+ action: 'add' | 'remove';
7
+ /** The specific item that was added or removed */
8
+ item: string;
9
+ }
10
+ export interface TyMultiselectProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange' | 'style'> {
11
+ style?: import('./TyInput').TyInputCSSProperties;
12
+ /** Current selected values as comma-separated string or array */
13
+ value?: string | string[];
14
+ /** Placeholder text when no items are selected */
15
+ placeholder?: string;
16
+ /** Disable the multiselect component */
17
+ disabled?: boolean;
18
+ /** Make the multiselect read-only */
19
+ readonly?: boolean;
20
+ /** Semantic styling variant */
21
+ flavor?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
22
+ /** Label text for the multiselect */
23
+ label?: string;
24
+ /** Mark the field as required */
25
+ required?: boolean;
26
+ /**
27
+ * Switch to external (remote) search mode. Default is `false` — the
28
+ * multiselect filters its own children client-side. Set to `true` when you
29
+ * want to handle filtering yourself (e.g. server-side): the component will
30
+ * dispatch `search` events on each keystroke, and you must update the children
31
+ * in response. The `onSearch` prop receives those events.
32
+ */
33
+ externalSearch?: boolean;
34
+ /** Debounce in milliseconds (0-5000) */
35
+ debounce?: number;
36
+ /** Mobile section label for selected items */
37
+ selectedLabel?: string;
38
+ /** Form field name for form submission */
39
+ name?: string;
40
+ /** Callback when selection changes */
41
+ onChange?: (event: CustomEvent<TyMultiselectEventDetail>) => void;
42
+ /** Callback fired on each search input change (debounced by `debounce`). Use for external/server-side filtering. */
43
+ onSearch?: (event: CustomEvent<{
44
+ query: string;
45
+ element: HTMLElement;
46
+ }>) => void;
47
+ /** Children should be TyTag components, not TyOption */
48
+ children?: React.ReactNode;
49
+ }
50
+ export declare const TyMultiselect: React.ForwardRefExoticComponent<TyMultiselectProps & React.RefAttributes<HTMLElement>>;
51
+ //# sourceMappingURL=TyMultiselect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyMultiselect.d.ts","sourceRoot":"","sources":["../../src/components/TyMultiselect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,MAAM,WAAW,wBAAwB;IACvC,yCAAyC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,yDAAyD;IACzD,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACvG,KAAK,CAAC,EAAE,OAAO,WAAW,EAAE,oBAAoB,CAAC;IACjD,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE1B,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAEhF,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC;IAElE,oHAAoH;IACpH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAEjF,wDAAwD;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,eAAO,MAAM,aAAa,wFA0HzB,CAAC"}
@@ -0,0 +1,92 @@
1
+ import React, { useEffect, useRef, useCallback } from 'react';
2
+ // React wrapper for ty-multiselect web component
3
+ export const TyMultiselect = React.forwardRef(({ value, placeholder, disabled, readonly, flavor, label, required, externalSearch, debounce, selectedLabel, name, onChange, onSearch, children, ...props }, ref) => {
4
+ const elementRef = useRef(null);
5
+ // Handle ref forwarding
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
+ // Handle change events
17
+ const handleChange = useCallback((event) => {
18
+ const customEvent = event;
19
+ if (onChange) {
20
+ onChange(customEvent);
21
+ }
22
+ }, [onChange]);
23
+ const handleSearch = useCallback((event) => {
24
+ const customEvent = event;
25
+ if (onSearch) {
26
+ onSearch(customEvent);
27
+ }
28
+ }, [onSearch]);
29
+ // Set up event listeners
30
+ useEffect(() => {
31
+ const element = elementRef.current;
32
+ if (!element)
33
+ return;
34
+ if (onChange)
35
+ element.addEventListener('change', handleChange);
36
+ if (onSearch)
37
+ element.addEventListener('search', handleSearch);
38
+ return () => {
39
+ if (onChange)
40
+ element.removeEventListener('change', handleChange);
41
+ if (onSearch)
42
+ element.removeEventListener('search', handleSearch);
43
+ };
44
+ }, [handleChange, handleSearch, onChange, onSearch]);
45
+ // Convert React props to web component attributes
46
+ const webComponentProps = {
47
+ ...props,
48
+ ref: elementRef,
49
+ };
50
+ // Handle value conversion (array to comma-separated string)
51
+ if (value !== undefined) {
52
+ const valueString = Array.isArray(value) ? value.join(',') : value;
53
+ webComponentProps.value = valueString;
54
+ }
55
+ // Add optional attributes only if they have values
56
+ if (placeholder) {
57
+ webComponentProps.placeholder = placeholder;
58
+ }
59
+ if (disabled) {
60
+ webComponentProps.disabled = ''; // Boolean attributes as empty string
61
+ }
62
+ if (readonly) {
63
+ webComponentProps.readonly = ''; // Boolean attributes as empty string
64
+ }
65
+ if (flavor) {
66
+ webComponentProps.flavor = flavor;
67
+ }
68
+ if (label) {
69
+ webComponentProps.label = label;
70
+ }
71
+ if (required) {
72
+ webComponentProps.required = ''; // Boolean attributes as empty string
73
+ }
74
+ if (name) {
75
+ webComponentProps.name = name;
76
+ }
77
+ // External (remote) search mode: parent owns filtering, multiselect dispatches search events
78
+ if (externalSearch) {
79
+ webComponentProps['external-search'] = '';
80
+ }
81
+ // Add debounce attribute
82
+ if (debounce !== undefined) {
83
+ webComponentProps.debounce = debounce;
84
+ }
85
+ // Add selectedLabel attribute
86
+ if (selectedLabel) {
87
+ webComponentProps['selected-label'] = selectedLabel;
88
+ }
89
+ return React.createElement('ty-multiselect', webComponentProps, children);
90
+ });
91
+ TyMultiselect.displayName = 'TyMultiselect';
92
+ //# sourceMappingURL=TyMultiselect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyMultiselect.js","sourceRoot":"","sources":["../../src/components/TyMultiselect.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ export interface TyOptionProps extends React.HTMLAttributes<HTMLElement> {
3
+ value?: string;
4
+ disabled?: boolean;
5
+ selected?: boolean;
6
+ hidden?: boolean;
7
+ children?: React.ReactNode;
8
+ }
9
+ export declare const TyOption: React.ForwardRefExoticComponent<TyOptionProps & React.RefAttributes<HTMLElement>>;
10
+ //# sourceMappingURL=TyOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyOption.d.ts","sourceRoot":"","sources":["../../src/components/TyOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,eAAO,MAAM,QAAQ,mFA2BpB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ // React wrapper for ty-option web component
3
+ export const TyOption = React.forwardRef(({ children, disabled, selected, hidden, ...props }, ref) => {
4
+ const elementRef = useRef(null);
5
+ // Handle ref forwarding
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
+ return React.createElement('ty-option', {
17
+ ...props,
18
+ ...(disabled && { disabled: "" }),
19
+ ...(selected && { selected: "" }),
20
+ ...(hidden && { hidden: "" }),
21
+ ref: elementRef,
22
+ }, children);
23
+ });
24
+ TyOption.displayName = 'TyOption';
25
+ //# sourceMappingURL=TyOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyOption.js","sourceRoot":"","sources":["../../src/components/TyOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAWjD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CACtC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC1D,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,OAAO,KAAK,CAAC,aAAa,CACxB,WAAW,EACX;QACE,GAAG,KAAK;QACR,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACjC,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACjC,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC7B,GAAG,EAAE,UAAU;KAChB,EACD,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ export interface TyPopupProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClose'> {
3
+ /** Preferred placement of the popup relative to anchor parent: "top" | "bottom" | "left" | "right" */
4
+ placement?: 'top' | 'bottom' | 'left' | 'right';
5
+ /** Distance offset from the anchor in pixels (default: 8) */
6
+ offset?: number;
7
+ /** Disable automatic click trigger - requires manual open/close via ref methods */
8
+ manual?: boolean;
9
+ /** Disable automatic close on outside click and ESC key */
10
+ disableClose?: boolean;
11
+ /** Fired when the popup opens (after the open animation starts) */
12
+ onOpen?: (event: CustomEvent) => void;
13
+ /** Fired when the popup closes */
14
+ onClose?: (event: CustomEvent) => void;
15
+ /** Popup content - popup should be a child of the anchor element */
16
+ children?: React.ReactNode;
17
+ }
18
+ export interface TyPopupElement extends HTMLElement {
19
+ openPopup(): void;
20
+ closePopup(): void;
21
+ togglePopup(): void;
22
+ }
23
+ export declare const TyPopup: React.ForwardRefExoticComponent<TyPopupProps & React.RefAttributes<TyPopupElement>>;
24
+ //# sourceMappingURL=TyPopup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyPopup.d.ts","sourceRoot":"","sources":["../../src/components/TyPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACtF,sGAAsG;IACtG,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAEhD,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,mEAAmE;IACnE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAEtC,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAEvC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,SAAS,IAAI,IAAI,CAAC;IAClB,UAAU,IAAI,IAAI,CAAC;IACnB,WAAW,IAAI,IAAI,CAAC;CACrB;AAGD,eAAO,MAAM,OAAO,qFA0EnB,CAAC"}
@@ -0,0 +1,61 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ // React wrapper for ty-popup web component
3
+ export const TyPopup = React.forwardRef(({ placement, offset, manual, disableClose, onOpen, onClose, children, ...props }, ref) => {
4
+ const elementRef = useRef(null);
5
+ // Handle ref forwarding
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
+ // Listen for popup open/close events
17
+ useEffect(() => {
18
+ const element = elementRef.current;
19
+ if (!element)
20
+ return;
21
+ const handleOpen = (event) => {
22
+ if (onOpen)
23
+ onOpen(event);
24
+ };
25
+ const handleClose = (event) => {
26
+ if (onClose)
27
+ onClose(event);
28
+ };
29
+ if (onOpen)
30
+ element.addEventListener('open', handleOpen);
31
+ if (onClose)
32
+ element.addEventListener('close', handleClose);
33
+ return () => {
34
+ if (onOpen)
35
+ element.removeEventListener('open', handleOpen);
36
+ if (onClose)
37
+ element.removeEventListener('close', handleClose);
38
+ };
39
+ }, [onOpen, onClose]);
40
+ // Convert React props to web component attributes
41
+ const webComponentProps = {
42
+ ...props,
43
+ ref: elementRef,
44
+ };
45
+ // Add optional attributes only if they have values
46
+ if (placement) {
47
+ webComponentProps.placement = placement;
48
+ }
49
+ if (offset !== undefined) {
50
+ webComponentProps.offset = offset.toString();
51
+ }
52
+ if (manual) {
53
+ webComponentProps.manual = ''; // Boolean attributes as empty string
54
+ }
55
+ if (disableClose) {
56
+ webComponentProps['disable-close'] = ''; // Boolean attributes as empty string
57
+ }
58
+ return React.createElement('ty-popup', webComponentProps, children);
59
+ });
60
+ TyPopup.displayName = 'TyPopup';
61
+ //# sourceMappingURL=TyPopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyPopup.js","sourceRoot":"","sources":["../../src/components/TyPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAiCjD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CACrC,CAAC,EACC,SAAS,EACT,MAAM,EACN,MAAM,EACN,YAAY,EACZ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEhD,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,qCAAqC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,UAAU,GAAG,CAAC,KAAY,EAAE,EAAE;YAClC,IAAI,MAAM;gBAAE,MAAM,CAAC,KAAoB,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YACnC,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAoB,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,IAAI,MAAM;YAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,OAAO;YAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE5D,OAAO,GAAG,EAAE;YACV,IAAI,MAAM;gBAAE,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5D,IAAI,OAAO;gBAAE,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtB,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,MAAM,EAAE,CAAC;QACX,iBAAiB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAE,qCAAqC;IACvE,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,iBAAiB,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAE,qCAAqC;IACjF,CAAC;IAED,OAAO,KAAK,CAAC,aAAa,CACxB,UAAU,EACV,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export interface TyResizeObserverProps extends React.HTMLAttributes<HTMLElement> {
3
+ /** Required unique identifier for size registry */
4
+ id: string;
5
+ /** Debounce in milliseconds (default: 0 = no debounce) */
6
+ debounce?: number;
7
+ /** Content to observe */
8
+ children?: React.ReactNode;
9
+ }
10
+ export declare const TyResizeObserver: React.ForwardRefExoticComponent<TyResizeObserverProps & React.RefAttributes<HTMLElement>>;
11
+ //# sourceMappingURL=TyResizeObserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyResizeObserver.d.ts","sourceRoot":"","sources":["../../src/components/TyResizeObserver.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IAC9E,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IAEX,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,eAAO,MAAM,gBAAgB,2FAoC5B,CAAC"}
@@ -0,0 +1,28 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ // React wrapper for ty-resize-observer web component
3
+ export const TyResizeObserver = React.forwardRef(({ children, id, debounce, ...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 number attributes
23
+ if (debounce !== undefined)
24
+ webComponentProps.debounce = debounce;
25
+ return React.createElement('ty-resize-observer', webComponentProps, children);
26
+ });
27
+ TyResizeObserver.displayName = 'TyResizeObserver';
28
+ //# sourceMappingURL=TyResizeObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TyResizeObserver.js","sourceRoot":"","sources":["../../src/components/TyResizeObserver.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAcjD,qDAAqD;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAC9C,CAAC,EACC,QAAQ,EACR,EAAE,EACF,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;QACf,EAAE;KACH,CAAC;IAEF,wBAAwB;IACxB,IAAI,QAAQ,KAAK,SAAS;QAAE,iBAAiB,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAElE,OAAO,KAAK,CAAC,aAAa,CACxB,oBAAoB,EACpB,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC"}
@@ -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,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"}