@purr-react-styled-components/components.radio-group 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purr-react-styled-components/components.radio-group",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -25,11 +25,12 @@
25
25
  "react": "*",
26
26
  "styled-components": "*",
27
27
  "clsx": "*",
28
- "@purr-core/utils.definitions": "0.0.9",
29
- "@purr-core/utils.helpers": "0.0.9",
30
- "@purr-react-styled-components/components.flex-box": "0.0.7",
31
- "@purr-react-styled-components/components.helper-text": "0.0.6",
32
- "@purr-core/hooks.sync-state-with-props": "0.0.7"
28
+ "@purr-core/utils.definitions": "0.0.11",
29
+ "@purr-core/utils.helpers": "0.0.11",
30
+ "@purr-core/hooks.sync-state-with-props": "0.0.8"
31
+ },
32
+ "devDependencies": {
33
+ "@purr-react-styled-components/components.form-field": "0.0.2"
33
34
  },
34
35
  "author": "@DinhThienPhuc",
35
36
  "license": "ISC",
@@ -38,6 +39,8 @@
38
39
  "scripts": {
39
40
  "dev": "vite build --watch",
40
41
  "build": "tsc && vite build",
42
+ "build:vite": "tsc && vite build",
43
+ "build:tsup": "tsup",
41
44
  "lint": "eslint . --ext ts,tsx --max-warnings 0"
42
45
  }
43
46
  }
@@ -1,4 +0,0 @@
1
- import { default as React } from 'react';
2
- import { IRadioGroupLabelProps } from '../_types';
3
-
4
- export declare const RadioGroupLabel: React.MemoExoticComponent<({ label, htmlAttributes }: IRadioGroupLabelProps) => React.JSX.Element>;
@@ -1,4 +0,0 @@
1
- import { default as React } from 'react';
2
- import { IRadioGroupOptionProps } from '../_types';
3
-
4
- export declare const RadioGroupOption: React.MemoExoticComponent<({ label, value, name, disabled, htmlAttributes, isStandalone, currentValue, setCurrentValue, onChange, }: IRadioGroupOptionProps) => React.JSX.Element>;
@@ -1,4 +0,0 @@
1
- import { default as React } from 'react';
2
- import { IRadioGroupProps } from '../_types';
3
-
4
- export declare const RadioGroup: React.ForwardRefExoticComponent<IRadioGroupProps & React.RefAttributes<HTMLElement>>;
@@ -1,11 +0,0 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import { memo as e } from "react";
3
- import { S as m } from "./index-BggW1El6.js";
4
- const l = e(({
5
- label: o = "",
6
- htmlAttributes: r
7
- }) => /* @__PURE__ */ a(m.Label, { ...r, className: "radio-group-label", children: o }));
8
- l.displayName = "RadioGroupLabel";
9
- export {
10
- l as RadioGroupLabel
11
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),i=require("react"),t=require("./index-D__1tkxO.cjs"),e=i.memo(({label:r="",htmlAttributes:o})=>a.jsx(t.Styled.Label,{...o,className:"radio-group-label",children:r}));e.displayName="RadioGroupLabel";exports.RadioGroupLabel=e;
package/dist/_style.d.ts DELETED
@@ -1,9 +0,0 @@
1
- export declare const Styled: {
2
- Container: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
3
- Label: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
4
- OptionLabel: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, {
5
- $disabled?: boolean;
6
- }>> & string;
7
- OptionInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>> & string;
8
- OptionLabelText: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
9
- };
package/dist/_types.d.ts DELETED
@@ -1,40 +0,0 @@
1
- import { ChangeEvent, HTMLAttributes, LabelHTMLAttributes, ReactNode } from 'react';
2
- import { FieldError } from 'react-hook-form';
3
- import { IExtendable } from '@purr-core/utils.definitions';
4
- import { IHelperTextProps } from '@purr-react-styled-components/components.helper-text';
5
-
6
- export type TRadioGroupDirection = "column" | "row";
7
- export interface IRadioGroupOption {
8
- key: string;
9
- value: string;
10
- label?: ReactNode;
11
- htmlAttributes?: LabelHTMLAttributes<HTMLLabelElement> & IExtendable;
12
- disabled?: boolean;
13
- }
14
- export interface IRadioGroupOptionProps extends IRadioGroupOption {
15
- name: string;
16
- currentValue?: string;
17
- isStandalone?: boolean;
18
- setCurrentValue?: (value: string) => void;
19
- onChange?: (value: string, e: ChangeEvent<HTMLInputElement>) => void;
20
- }
21
- export interface IRadioGroupLabelProps {
22
- label?: string;
23
- htmlAttributes?: LabelHTMLAttributes<HTMLLabelElement> & IExtendable;
24
- }
25
- export interface IRadioGroupProps {
26
- className?: string;
27
- options: IRadioGroupOption[];
28
- name: string;
29
- value?: string;
30
- label?: string;
31
- isStandalone?: boolean;
32
- direction?: TRadioGroupDirection;
33
- error?: FieldError;
34
- disabled?: boolean;
35
- helperTextProps?: IHelperTextProps;
36
- htmlAttributes?: HTMLAttributes<HTMLDivElement> & IExtendable;
37
- labelHtmlAttributes?: HTMLAttributes<HTMLSpanElement> & IExtendable;
38
- optionHtmlAttributes?: LabelHTMLAttributes<HTMLLabelElement> & IExtendable;
39
- onChange?: (value: string, e: ChangeEvent<HTMLInputElement>) => void;
40
- }
@@ -1,93 +0,0 @@
1
- import { jsx as e, jsxs as h } from "react/jsx-runtime";
2
- import x from "clsx";
3
- import { memo as L, useCallback as k, useMemo as R, lazy as I, forwardRef as v, Suspense as g } from "react";
4
- import G from "@purr-core/hooks.sync-state-with-props";
5
- import { FlexBox as S } from "@purr-react-styled-components/components.flex-box";
6
- import { HelperText as z } from "@purr-react-styled-components/components.helper-text";
7
- import s from "styled-components";
8
- import { arePropsShallowEqual as A } from "@purr-core/utils.helpers";
9
- const u = {
10
- Container: s.div.withConfig({
11
- displayName: "_style__Container",
12
- componentId: "sc-192tru7-0"
13
- })(["display:flex;flex-direction:column;gap:16px;position:relative;"]),
14
- Label: s.span.withConfig({
15
- displayName: "_style__Label",
16
- componentId: "sc-192tru7-1"
17
- })(['transition:color 200ms ease-in-out;font-size:16px;font-family:"Verdana",sans-serif;font-weight:600;']),
18
- OptionLabel: s.label.withConfig({
19
- displayName: "_style__OptionLabel",
20
- componentId: "sc-192tru7-2"
21
- })(["display:flex;align-items:center;gap:12px;cursor:", ";opacity:", ";"], ({
22
- $disabled: a
23
- }) => a ? "not-allowed" : "pointer", ({
24
- $disabled: a
25
- }) => a ? 0.4 : 1),
26
- OptionInput: s.input.withConfig({
27
- displayName: "_style__OptionInput",
28
- componentId: "sc-192tru7-3"
29
- })(['appearance:none;width:16px;height:16px;border:1px solid #d9d9d9;border-radius:50%;background-color:#ffffff;cursor:pointer;transition:all 300ms ease-in-out;&::before{content:"";display:block;margin-top:4px;margin-left:4px;width:6px;height:6px;border-radius:50%;background-color:#ffffff;transform:scale(0);}&:checked::before{transform:scale(1);}&:checked{background-color:#44403c;border-color:#44403c;}&[type="radio" i]{margin:0;}&:hover:not(:disabled){border-color:#44403c;}']),
30
- OptionLabelText: s.span.withConfig({
31
- displayName: "_style__OptionLabelText",
32
- componentId: "sc-192tru7-4"
33
- })(['font-family:"Verdana",sans-serif;font-size:16px;'])
34
- }, _ = L(({
35
- label: a,
36
- value: o,
37
- name: l,
38
- disabled: d,
39
- htmlAttributes: r,
40
- isStandalone: f,
41
- currentValue: p,
42
- setCurrentValue: n,
43
- onChange: i
44
- }) => {
45
- const m = f ? void 0 : p === o, t = k((y) => {
46
- i == null || i(o, y), n == null || n(o);
47
- }, [i, n, o]), b = R(() => /* @__PURE__ */ e(u.OptionLabelText, { className: "radio-group-option-label", children: a }), [a]);
48
- return /* @__PURE__ */ h(u.OptionLabel, { $disabled: d, ...r, className: "radio-group-option", children: [
49
- /* @__PURE__ */ e(u.OptionInput, { className: x("radio-group-option-input", m ? "radio-group-option-input--checked" : ""), name: l, type: "radio", value: o, checked: m, onChange: t, disabled: d }),
50
- b
51
- ] });
52
- }, A(["currentValue"], (a, o, l) => {
53
- switch (a) {
54
- case "currentValue":
55
- return l.currentValue === l.value == (o.currentValue === o.value);
56
- default:
57
- return;
58
- }
59
- }));
60
- _.displayName = "RadioGroupOption";
61
- const V = I(() => import("./_label-DEWFA00w.js").then((a) => ({
62
- default: a.RadioGroupLabel
63
- }))), j = v(({
64
- options: a,
65
- className: o,
66
- name: l,
67
- value: d = "",
68
- label: r = "",
69
- onChange: f,
70
- isStandalone: p = !1,
71
- direction: n = "column",
72
- error: i = null,
73
- disabled: m = !1,
74
- helperTextProps: t,
75
- htmlAttributes: b,
76
- labelHtmlAttributes: y,
77
- optionHtmlAttributes: w
78
- }, C) => {
79
- const {
80
- currentValue: N,
81
- setCurrentValue: O
82
- } = G(d, p);
83
- return /* @__PURE__ */ h(u.Container, { ...b, className: x("radio-group", o), children: [
84
- /* @__PURE__ */ e(g, { children: !!r && /* @__PURE__ */ e(V, { label: r, htmlAttributes: y }) }),
85
- /* @__PURE__ */ e(S, { gap: "16px", flexDirection: n, alignItems: n === "column" ? "flex-start" : void 0, children: a == null ? void 0 : a.map((c) => /* @__PURE__ */ e(_, { label: c.label, value: c.value, name: l, htmlAttributes: w ?? c.htmlAttributes, isStandalone: p, currentValue: N, setCurrentValue: O, onChange: f, disabled: c.disabled ?? m }, c.key)) }),
86
- /* @__PURE__ */ e(g, { children: ((i == null ? void 0 : i.message) || (t == null ? void 0 : t.children)) && /* @__PURE__ */ e(z, { ...t, isError: !!i, variant: "standard", children: (i == null ? void 0 : i.message) ?? (t == null ? void 0 : t.children) ?? "" }) })
87
- ] });
88
- });
89
- j.displayName = "RadioGroup";
90
- export {
91
- j as R,
92
- u as S
93
- };
@@ -1 +0,0 @@
1
- "use strict";const a=require("react/jsx-runtime"),h=require("clsx"),s=require("react"),j=require("@purr-core/hooks.sync-state-with-props"),L=require("@purr-react-styled-components/components.flex-box"),R=require("@purr-react-styled-components/components.helper-text"),d=require("styled-components"),k=require("@purr-core/utils.helpers"),u={Container:d.div.withConfig({displayName:"_style__Container",componentId:"sc-192tru7-0"})(["display:flex;flex-direction:column;gap:16px;position:relative;"]),Label:d.span.withConfig({displayName:"_style__Label",componentId:"sc-192tru7-1"})(['transition:color 200ms ease-in-out;font-size:16px;font-family:"Verdana",sans-serif;font-weight:600;']),OptionLabel:d.label.withConfig({displayName:"_style__OptionLabel",componentId:"sc-192tru7-2"})(["display:flex;align-items:center;gap:12px;cursor:",";opacity:",";"],({$disabled:e})=>e?"not-allowed":"pointer",({$disabled:e})=>e?.4:1),OptionInput:d.input.withConfig({displayName:"_style__OptionInput",componentId:"sc-192tru7-3"})(['appearance:none;width:16px;height:16px;border:1px solid #d9d9d9;border-radius:50%;background-color:#ffffff;cursor:pointer;transition:all 300ms ease-in-out;&::before{content:"";display:block;margin-top:4px;margin-left:4px;width:6px;height:6px;border-radius:50%;background-color:#ffffff;transform:scale(0);}&:checked::before{transform:scale(1);}&:checked{background-color:#44403c;border-color:#44403c;}&[type="radio" i]{margin:0;}&:hover:not(:disabled){border-color:#44403c;}']),OptionLabelText:d.span.withConfig({displayName:"_style__OptionLabelText",componentId:"sc-192tru7-4"})(['font-family:"Verdana",sans-serif;font-size:16px;'])},g=s.memo(({label:e,value:i,name:l,disabled:c,htmlAttributes:p,isStandalone:b,currentValue:f,setCurrentValue:o,onChange:t})=>{const m=b?void 0:f===i,n=s.useCallback(y=>{t==null||t(i,y),o==null||o(i)},[t,o,i]),x=s.useMemo(()=>a.jsx(u.OptionLabelText,{className:"radio-group-option-label",children:e}),[e]);return a.jsxs(u.OptionLabel,{$disabled:c,...p,className:"radio-group-option",children:[a.jsx(u.OptionInput,{className:h("radio-group-option-input",m?"radio-group-option-input--checked":""),name:l,type:"radio",value:i,checked:m,onChange:n,disabled:c}),x]})},k.arePropsShallowEqual(["currentValue"],(e,i,l)=>{switch(e){case"currentValue":return l.currentValue===l.value==(i.currentValue===i.value);default:return}}));g.displayName="RadioGroupOption";const q=s.lazy(()=>Promise.resolve().then(()=>require("./_label-DnBnK4Hi.cjs")).then(e=>({default:e.RadioGroupLabel}))),_=s.forwardRef(({options:e,className:i,name:l,value:c="",label:p="",onChange:b,isStandalone:f=!1,direction:o="column",error:t=null,disabled:m=!1,helperTextProps:n,htmlAttributes:x,labelHtmlAttributes:y,optionHtmlAttributes:w},I)=>{const{currentValue:N,setCurrentValue:O}=j(c,f);return a.jsxs(u.Container,{...x,className:h("radio-group",i),children:[a.jsx(s.Suspense,{children:!!p&&a.jsx(q,{label:p,htmlAttributes:y})}),a.jsx(L.FlexBox,{gap:"16px",flexDirection:o,alignItems:o==="column"?"flex-start":void 0,children:e==null?void 0:e.map(r=>a.jsx(g,{label:r.label,value:r.value,name:l,htmlAttributes:w??r.htmlAttributes,isStandalone:f,currentValue:N,setCurrentValue:O,onChange:b,disabled:r.disabled??m},r.key))}),a.jsx(s.Suspense,{children:((t==null?void 0:t.message)||(n==null?void 0:n.children))&&a.jsx(R.HelperText,{...n,isError:!!t,variant:"standard",children:(t==null?void 0:t.message)??(n==null?void 0:n.children)??""})})]})});_.displayName="RadioGroup";exports.RadioGroup=_;exports.Styled=u;
package/dist/index.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-D__1tkxO.cjs");exports.RadioGroup=e.RadioGroup;
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './_components';
2
- export * from './_types';
package/dist/index.js DELETED
@@ -1,4 +0,0 @@
1
- import { R as a } from "./index-BggW1El6.js";
2
- export {
3
- a as RadioGroup
4
- };