@lovince/ui-react 1.0.1 → 1.0.3

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.
@@ -0,0 +1,13 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { MyButtonProps, MyInputProps } from '@lovince/ui-shared';
3
+
4
+ declare global {
5
+ namespace JSX {
6
+ interface IntrinsicElements {
7
+ 'my-button': HTMLAttributes<HTMLElement> & MyButtonProps;
8
+ 'my-input': HTMLAttributes<HTMLElement> & MyInputProps;
9
+ }
10
+ }
11
+ }
12
+
13
+ export {};
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ interface MyButtonComponentProps extends MyButtonProps {
5
5
  onButtonClick?: (detail: {
6
6
  variant: string;
7
7
  }) => void;
8
+ onClick?: (event: React.MouseEvent) => void;
8
9
  children?: React.ReactNode;
9
10
  }
10
11
  declare const MyButton: React.ForwardRefExoticComponent<MyButtonComponentProps & React.RefAttributes<HTMLElement>>;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/MyButton.tsx
2
2
  import React, { useRef, useEffect, forwardRef } from "react";
3
3
  var MyButton = forwardRef(
4
- ({ onButtonClick, children, ...props }, ref) => {
4
+ ({ onButtonClick, onClick, children, ...props }, ref) => {
5
5
  const internalRef = useRef(null);
6
6
  const elementRef = ref || internalRef;
7
7
  useEffect(() => {
@@ -11,11 +11,16 @@ var MyButton = forwardRef(
11
11
  const handleButtonClick = (event) => {
12
12
  onButtonClick?.(event.detail);
13
13
  };
14
+ const handleClick = (event) => {
15
+ onClick?.(event);
16
+ };
14
17
  element.addEventListener("button-click", handleButtonClick);
18
+ element.addEventListener("click", handleClick);
15
19
  return () => {
16
20
  element.removeEventListener("button-click", handleButtonClick);
21
+ element.removeEventListener("click", handleClick);
17
22
  };
18
- }, [props, onButtonClick]);
23
+ }, [props, onButtonClick, onClick]);
19
24
  return React.createElement("my-button", { ref: elementRef }, children);
20
25
  }
21
26
  );
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MyButton.tsx","../src/MyInput.tsx"],"sourcesContent":["import React, { useRef, useEffect, forwardRef } from 'react';\nimport { MyButtonProps } from '@lovince/ui-shared';\n\nexport interface MyButtonComponentProps extends MyButtonProps {\n onButtonClick?: (detail: { variant: string }) => void;\n children?: React.ReactNode;\n}\n\nexport const MyButton = forwardRef<HTMLElement, MyButtonComponentProps>(\n ({ onButtonClick, children, ...props }, ref) => {\n const internalRef = useRef<HTMLElement>(null);\n const elementRef = (ref as React.RefObject<HTMLElement>) || internalRef;\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n // Update element properties\n Object.assign(element, props);\n\n // Handle events\n const handleButtonClick = (event: CustomEvent) => {\n onButtonClick?.(event.detail);\n };\n\n element.addEventListener('button-click', handleButtonClick as EventListener);\n\n return () => {\n element.removeEventListener('button-click', handleButtonClick as EventListener);\n };\n }, [props, onButtonClick]);\n\n return React.createElement('my-button', { ref: elementRef }, children);\n }\n);\n\nMyButton.displayName = 'MyButton';\n","import React, { useRef, useEffect, forwardRef } from 'react';\nimport { MyInputProps } from '@lovince/ui-shared';\n\nexport interface MyInputComponentProps extends MyInputProps {\n onInputChange?: (detail: { value: string }) => void;\n}\n\nexport const MyInput = forwardRef<HTMLElement, MyInputComponentProps>(\n ({ onInputChange, ...props }, ref) => {\n const internalRef = useRef<HTMLElement>(null);\n const elementRef = (ref as React.RefObject<HTMLElement>) || internalRef;\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n // Update element properties\n Object.assign(element, props);\n\n // Handle events\n const handleInputChange = (event: CustomEvent) => {\n onInputChange?.(event.detail);\n };\n\n element.addEventListener('input-change', handleInputChange as EventListener);\n\n return () => {\n element.removeEventListener('input-change', handleInputChange as EventListener);\n };\n }, [props, onInputChange]);\n\n return React.createElement('my-input', { ref: elementRef });\n }\n);\n\nMyInput.displayName = 'MyInput';\n"],"mappings":";AAAA,OAAO,SAAS,QAAQ,WAAW,kBAAkB;AAQ9C,IAAM,WAAW;AAAA,EACtB,CAAC,EAAE,eAAe,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC9C,UAAM,cAAc,OAAoB,IAAI;AAC5C,UAAM,aAAc,OAAwC;AAE5D,cAAU,MAAM;AACd,YAAM,UAAU,WAAW;AAC3B,UAAI,CAAC,QAAS;AAGd,aAAO,OAAO,SAAS,KAAK;AAG5B,YAAM,oBAAoB,CAAC,UAAuB;AAChD,wBAAgB,MAAM,MAAM;AAAA,MAC9B;AAEA,cAAQ,iBAAiB,gBAAgB,iBAAkC;AAE3E,aAAO,MAAM;AACX,gBAAQ,oBAAoB,gBAAgB,iBAAkC;AAAA,MAChF;AAAA,IACF,GAAG,CAAC,OAAO,aAAa,CAAC;AAEzB,WAAO,MAAM,cAAc,aAAa,EAAE,KAAK,WAAW,GAAG,QAAQ;AAAA,EACvE;AACF;AAEA,SAAS,cAAc;;;ACpCvB,OAAOA,UAAS,UAAAC,SAAQ,aAAAC,YAAW,cAAAC,mBAAkB;AAO9C,IAAM,UAAUA;AAAA,EACrB,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,QAAQ;AACpC,UAAM,cAAcF,QAAoB,IAAI;AAC5C,UAAM,aAAc,OAAwC;AAE5D,IAAAC,WAAU,MAAM;AACd,YAAM,UAAU,WAAW;AAC3B,UAAI,CAAC,QAAS;AAGd,aAAO,OAAO,SAAS,KAAK;AAG5B,YAAM,oBAAoB,CAAC,UAAuB;AAChD,wBAAgB,MAAM,MAAM;AAAA,MAC9B;AAEA,cAAQ,iBAAiB,gBAAgB,iBAAkC;AAE3E,aAAO,MAAM;AACX,gBAAQ,oBAAoB,gBAAgB,iBAAkC;AAAA,MAChF;AAAA,IACF,GAAG,CAAC,OAAO,aAAa,CAAC;AAEzB,WAAOF,OAAM,cAAc,YAAY,EAAE,KAAK,WAAW,CAAC;AAAA,EAC5D;AACF;AAEA,QAAQ,cAAc;","names":["React","useRef","useEffect","forwardRef"]}
1
+ {"version":3,"sources":["../src/MyButton.tsx","../src/MyInput.tsx"],"sourcesContent":["import React, { useRef, useEffect, forwardRef } from 'react';\nimport { MyButtonProps } from '@lovince/ui-shared';\n\nexport interface MyButtonComponentProps extends MyButtonProps {\n onButtonClick?: (detail: { variant: string }) => void;\n onClick?: (event: React.MouseEvent) => void;\n children?: React.ReactNode;\n}\n\nexport const MyButton = forwardRef<HTMLElement, MyButtonComponentProps>(\n ({ onButtonClick, onClick, children, ...props }, ref) => {\n const internalRef = useRef<HTMLElement>(null);\n const elementRef = (ref as React.RefObject<HTMLElement>) || internalRef;\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n // Update element properties\n Object.assign(element, props);\n\n // Handle custom events\n const handleButtonClick = (event: CustomEvent) => {\n onButtonClick?.(event.detail);\n };\n\n // Handle standard click events\n const handleClick = (event: Event) => {\n onClick?.(event as any);\n };\n\n element.addEventListener('button-click', handleButtonClick as EventListener);\n element.addEventListener('click', handleClick as EventListener);\n\n return () => {\n element.removeEventListener('button-click', handleButtonClick as EventListener);\n element.removeEventListener('click', handleClick as EventListener);\n };\n }, [props, onButtonClick, onClick]);\n\n return React.createElement('my-button', { ref: elementRef }, children);\n }\n);\n\nMyButton.displayName = 'MyButton';\n","import React, { useRef, useEffect, forwardRef } from 'react';\nimport { MyInputProps } from '@lovince/ui-shared';\n\nexport interface MyInputComponentProps extends MyInputProps {\n onInputChange?: (detail: { value: string }) => void;\n}\n\nexport const MyInput = forwardRef<HTMLElement, MyInputComponentProps>(\n ({ onInputChange, ...props }, ref) => {\n const internalRef = useRef<HTMLElement>(null);\n const elementRef = (ref as React.RefObject<HTMLElement>) || internalRef;\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n // Update element properties\n Object.assign(element, props);\n\n // Handle events\n const handleInputChange = (event: CustomEvent) => {\n onInputChange?.(event.detail);\n };\n\n element.addEventListener('input-change', handleInputChange as EventListener);\n\n return () => {\n element.removeEventListener('input-change', handleInputChange as EventListener);\n };\n }, [props, onInputChange]);\n\n return React.createElement('my-input', { ref: elementRef });\n }\n);\n\nMyInput.displayName = 'MyInput';\n"],"mappings":";AAAA,OAAO,SAAS,QAAQ,WAAW,kBAAkB;AAS9C,IAAM,WAAW;AAAA,EACtB,CAAC,EAAE,eAAe,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ;AACvD,UAAM,cAAc,OAAoB,IAAI;AAC5C,UAAM,aAAc,OAAwC;AAE5D,cAAU,MAAM;AACd,YAAM,UAAU,WAAW;AAC3B,UAAI,CAAC,QAAS;AAGd,aAAO,OAAO,SAAS,KAAK;AAG5B,YAAM,oBAAoB,CAAC,UAAuB;AAChD,wBAAgB,MAAM,MAAM;AAAA,MAC9B;AAGA,YAAM,cAAc,CAAC,UAAiB;AACpC,kBAAU,KAAY;AAAA,MACxB;AAEA,cAAQ,iBAAiB,gBAAgB,iBAAkC;AAC3E,cAAQ,iBAAiB,SAAS,WAA4B;AAE9D,aAAO,MAAM;AACX,gBAAQ,oBAAoB,gBAAgB,iBAAkC;AAC9E,gBAAQ,oBAAoB,SAAS,WAA4B;AAAA,MACnE;AAAA,IACF,GAAG,CAAC,OAAO,eAAe,OAAO,CAAC;AAElC,WAAO,MAAM,cAAc,aAAa,EAAE,KAAK,WAAW,GAAG,QAAQ;AAAA,EACvE;AACF;AAEA,SAAS,cAAc;;;AC5CvB,OAAOA,UAAS,UAAAC,SAAQ,aAAAC,YAAW,cAAAC,mBAAkB;AAO9C,IAAM,UAAUA;AAAA,EACrB,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,QAAQ;AACpC,UAAM,cAAcF,QAAoB,IAAI;AAC5C,UAAM,aAAc,OAAwC;AAE5D,IAAAC,WAAU,MAAM;AACd,YAAM,UAAU,WAAW;AAC3B,UAAI,CAAC,QAAS;AAGd,aAAO,OAAO,SAAS,KAAK;AAG5B,YAAM,oBAAoB,CAAC,UAAuB;AAChD,wBAAgB,MAAM,MAAM;AAAA,MAC9B;AAEA,cAAQ,iBAAiB,gBAAgB,iBAAkC;AAE3E,aAAO,MAAM;AACX,gBAAQ,oBAAoB,gBAAgB,iBAAkC;AAAA,MAChF;AAAA,IACF,GAAG,CAAC,OAAO,aAAa,CAAC;AAEzB,WAAOF,OAAM,cAAc,YAAY,EAAE,KAAK,WAAW,CAAC;AAAA,EAC5D;AACF;AAEA,QAAQ,cAAc;","names":["React","useRef","useEffect","forwardRef"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovince/ui-react",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "React wrappers for UI components",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -9,10 +9,15 @@
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js"
12
+ },
13
+ "./custom-elements": {
14
+ "types": "./custom-elements.d.ts",
15
+ "import": "./custom-elements.d.ts"
12
16
  }
13
17
  },
14
18
  "files": [
15
- "dist"
19
+ "dist",
20
+ "custom-elements.d.ts"
16
21
  ],
17
22
  "scripts": {
18
23
  "build": "tsup",