@net-advantage/nabs-ui-radiobutton 0.69.0 → 0.71.0

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.
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react"),t=require("react/jsx-runtime");var n={right:`nabs-ui-radiobutton--label-right`,left:`nabs-ui-radiobutton--label-left`,top:`nabs-ui-radiobutton--label-top`,bottom:`nabs-ui-radiobutton--label-bottom`};function r({label:r=`Radio button`,labelPosition:i=`right`,className:a=``,inputClassName:o=``,labelClassName:s=``,id:c,...l}){let u=l.disabled===!0,d=(0,e.useId)(),f=c??`nabs-ui-radiobutton-${d.replace(/:/g,``)}`,p=[`nabs-ui-radiobutton`,u?`nabs-ui-radiobutton--disabled`:``,n[i]??n.right,a].filter(Boolean).join(` `),m=[`nabs-ui-radiobutton__input`,o].filter(Boolean).join(` `),h=[`nabs-ui-radiobutton__label`,s].filter(Boolean).join(` `);return(0,t.jsxs)(`label`,{className:p,htmlFor:f,children:[(0,t.jsx)(`input`,{id:f,className:m,type:`radio`,...l}),(0,t.jsx)(`span`,{className:h,children:r})]})}exports.RadioButton=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react"),t=require("react/jsx-runtime");var n=[`right`,`left`,`top`,`bottom`],r=`right`,i={right:`nabs-ui-radiobutton--label-right`,left:`nabs-ui-radiobutton--label-left`,top:`nabs-ui-radiobutton--label-top`,bottom:`nabs-ui-radiobutton--label-bottom`};function a(e){return typeof e==`string`&&n.includes(e)}function o(e){return a(e)?e:r}function s(e,t){return e||`nabs-ui-radiobutton-${t.replace(/:/g,``)}`}function c({disabled:e=!1,labelPosition:t,className:n}){let r=o(t);return[`nabs-ui-radiobutton`,e?`nabs-ui-radiobutton--disabled`:``,i[r],n??``].filter(Boolean).join(` `)}function l(e){return[`nabs-ui-radiobutton__input`,e??``].filter(Boolean).join(` `)}function u(e){return[`nabs-ui-radiobutton__label`,e??``].filter(Boolean).join(` `)}function d({label:n=`Radio button`,labelPosition:r=`right`,className:i=``,inputClassName:a=``,labelClassName:o=``,id:d,...f}){let p=f.disabled===!0,m=s(d,(0,e.useId)()),h=c({disabled:p,labelPosition:r,className:i}),g=l(a),_=u(o);return(0,t.jsxs)(`label`,{className:h,htmlFor:m,children:[(0,t.jsx)(`input`,{id:m,className:g,type:`radio`,...f}),(0,t.jsx)(`span`,{className:_,children:n})]})}exports.RadioButton=d;
@@ -1,34 +1,64 @@
1
1
  import { useId as e } from "react";
2
2
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
- //#region src/radiobutton.utils.ts
4
- var r = {
3
+ //#region src/radiobutton.model.ts
4
+ var r = [
5
+ "right",
6
+ "left",
7
+ "top",
8
+ "bottom"
9
+ ], i = "right", a = {
5
10
  right: "nabs-ui-radiobutton--label-right",
6
11
  left: "nabs-ui-radiobutton--label-left",
7
12
  top: "nabs-ui-radiobutton--label-top",
8
13
  bottom: "nabs-ui-radiobutton--label-bottom"
9
14
  };
15
+ function o(e) {
16
+ return typeof e == "string" && r.includes(e);
17
+ }
18
+ function s(e) {
19
+ return o(e) ? e : i;
20
+ }
10
21
  //#endregion
11
- //#region src/RadioButton.tsx
12
- function i({ label: i = "Radio button", labelPosition: a = "right", className: o = "", inputClassName: s = "", labelClassName: c = "", id: l, ...u }) {
13
- let d = u.disabled === !0, f = e(), p = l ?? `nabs-ui-radiobutton-${f.replace(/:/g, "")}`, m = [
22
+ //#region src/radiobutton.view-model.ts
23
+ function c(e, t) {
24
+ return e || `nabs-ui-radiobutton-${t.replace(/:/g, "")}`;
25
+ }
26
+ function l({ disabled: e = !1, labelPosition: t, className: n }) {
27
+ let r = s(t);
28
+ return [
14
29
  "nabs-ui-radiobutton",
15
- d ? "nabs-ui-radiobutton--disabled" : "",
16
- r[a] ?? r.right,
17
- o
18
- ].filter(Boolean).join(" "), h = ["nabs-ui-radiobutton__input", s].filter(Boolean).join(" "), g = ["nabs-ui-radiobutton__label", c].filter(Boolean).join(" ");
30
+ e ? "nabs-ui-radiobutton--disabled" : "",
31
+ a[r],
32
+ n ?? ""
33
+ ].filter(Boolean).join(" ");
34
+ }
35
+ function u(e) {
36
+ return ["nabs-ui-radiobutton__input", e ?? ""].filter(Boolean).join(" ");
37
+ }
38
+ function d(e) {
39
+ return ["nabs-ui-radiobutton__label", e ?? ""].filter(Boolean).join(" ");
40
+ }
41
+ //#endregion
42
+ //#region src/RadioButton.tsx
43
+ function f({ label: r = "Radio button", labelPosition: i = "right", className: a = "", inputClassName: o = "", labelClassName: s = "", id: f, ...p }) {
44
+ let m = p.disabled === !0, h = c(f, e()), g = l({
45
+ disabled: m,
46
+ labelPosition: i,
47
+ className: a
48
+ }), _ = u(o), v = d(s);
19
49
  return /* @__PURE__ */ n("label", {
20
- className: m,
21
- htmlFor: p,
50
+ className: g,
51
+ htmlFor: h,
22
52
  children: [/* @__PURE__ */ t("input", {
23
- id: p,
24
- className: h,
53
+ id: h,
54
+ className: _,
25
55
  type: "radio",
26
- ...u
56
+ ...p
27
57
  }), /* @__PURE__ */ t("span", {
28
- className: g,
29
- children: i
58
+ className: v,
59
+ children: r
30
60
  })]
31
61
  });
32
62
  }
33
63
  //#endregion
34
- export { i as RadioButton };
64
+ export { f as RadioButton };
@@ -0,0 +1,6 @@
1
+ import { RadioButtonLabelPosition } from './RadioButton.types';
2
+ export declare const radioButtonLabelPositions: readonly ["right", "left", "top", "bottom"];
3
+ export declare const defaultRadioButtonLabelPosition: RadioButtonLabelPosition;
4
+ export declare const labelPositionClasses: Record<RadioButtonLabelPosition, string>;
5
+ export declare function isRadioButtonLabelPosition(value: unknown): value is RadioButtonLabelPosition;
6
+ export declare function normalizeRadioButtonLabelPosition(value: unknown): RadioButtonLabelPosition;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1 @@
1
- import { RadioButtonLabelPosition } from './RadioButton.types';
2
- export declare const labelPositionClasses: Record<RadioButtonLabelPosition, string>;
1
+ export { radioButtonLabelPositions, defaultRadioButtonLabelPosition, labelPositionClasses, isRadioButtonLabelPosition, normalizeRadioButtonLabelPosition, } from './radiobutton.model';
@@ -0,0 +1,11 @@
1
+ import { RadioButtonLabelPosition } from './RadioButton.types';
2
+ export interface BuildRadioButtonClassNameInput {
3
+ disabled?: boolean;
4
+ labelPosition?: RadioButtonLabelPosition | string | null;
5
+ className?: string | null;
6
+ }
7
+ export declare function buildRadioButtonId(id: string | undefined, generatedId: string): string;
8
+ export declare function buildRadioButtonClassName({ disabled, labelPosition, className, }: BuildRadioButtonClassNameInput): string;
9
+ export declare function buildRadioButtonInputClassName(inputClassName?: string | null): string;
10
+ export declare function buildRadioButtonLabelClassName(labelClassName?: string | null): string;
11
+ export declare function toRadioButtonStateLabel(selectedValue: string, labelPosition: RadioButtonLabelPosition | string | null | undefined): string;
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@net-advantage/nabs-ui-radiobutton",
3
- "version": "0.69.0",
3
+ "version": "0.71.0",
4
4
  "description": "Reusable React radio button control for the Nabs UI library.",
5
5
  "type": "module",
6
6
  "main": "./dist/nabs-ui-radiobutton.cjs",
@@ -25,11 +25,16 @@
25
25
  "@types/react": "^19.0.0",
26
26
  "@types/react-dom": "^19.0.0",
27
27
  "@vitejs/plugin-react": "^6.0.1",
28
+ "@vitest/coverage-v8": "^3.2.4",
28
29
  "react-dom": "^19.2.6",
29
- "vite": "^8.0.12"
30
+ "vite": "^8.0.12",
31
+ "vitest": "^3.2.4"
30
32
  },
31
33
  "scripts": {
32
34
  "build": "vite build",
33
- "dev": "vite"
35
+ "dev": "vite",
36
+ "test:unit": "vitest run",
37
+ "test:unit:watch": "vitest",
38
+ "test:unit:coverage": "vitest run --coverage --coverage.reporter=html --coverage.reporter=json-summary --coverage.reporter=text-summary"
34
39
  }
35
40
  }