@clubmed/trident-ui 2.0.0-alpha.26 → 2.0.0-alpha.28
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/examples/checkbox-demo.js +21 -8
- package/examples/checkbox-demo.js.map +1 -1
- package/examples/number-field-demo.js +10 -5
- package/examples/number-field-demo.js.map +1 -1
- package/examples/radio-demo.js +38 -5
- package/examples/radio-demo.js.map +1 -1
- package/examples/radio-group-demo.js +15 -13
- package/examples/radio-group-demo.js.map +1 -1
- package/examples/text-field-demo.js +13 -2
- package/examples/text-field-demo.js.map +1 -1
- package/package.json +1 -1
- package/ui/Link.js +15 -13
- package/ui/Link.js.map +1 -1
- package/ui/buttons/Button.d.ts +9 -2370
- package/ui/buttons/Button.js +1 -8
- package/ui/buttons/Button.js.map +1 -1
- package/ui/forms/DateField.js +71 -65
- package/ui/forms/DateField.js.map +1 -1
- package/ui/forms/NumberField.d.ts +11 -1
- package/ui/forms/NumberField.js +78 -74
- package/ui/forms/NumberField.js.map +1 -1
- package/ui/forms/Select.js +3 -1
- package/ui/forms/Select.js.map +1 -1
- package/ui/forms/TextField.d.ts +3 -0
- package/ui/forms/TextField.js +77 -61
- package/ui/forms/TextField.js.map +1 -1
- package/ui/forms/checkboxes/Checkbox.d.ts +2 -3
- package/ui/forms/checkboxes/Checkbox.js +43 -57
- package/ui/forms/checkboxes/Checkbox.js.map +1 -1
- package/ui/forms/radios/Radio.d.ts +2 -3
- package/ui/forms/radios/Radio.js +31 -45
- package/ui/forms/radios/Radio.js.map +1 -1
- package/ui/forms/radios/RadioGroup.d.ts +1 -1
- package/ui/forms/radios/RadioGroup.js +55 -54
- package/ui/forms/radios/RadioGroup.js.map +1 -1
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as
|
|
3
|
-
import { Checkbox as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
import { jsxs as d, jsx as c } from "react/jsx-runtime";
|
|
3
|
+
import { Checkbox as o } from "../ui/forms/checkboxes/Checkbox.js";
|
|
4
|
+
import { useState as r } from "react";
|
|
5
|
+
function l() {
|
|
6
|
+
const [a, t] = r(!1), [s, h] = r(!1);
|
|
7
|
+
return /* @__PURE__ */ d("div", { className: "space-y-4", children: [
|
|
8
|
+
/* @__PURE__ */ c(
|
|
9
|
+
o,
|
|
10
|
+
{
|
|
11
|
+
name: "demo",
|
|
12
|
+
value: "demo-value",
|
|
13
|
+
checked: a,
|
|
14
|
+
onChange: (e) => t(e.target.checked),
|
|
15
|
+
children: "Basic checkbox"
|
|
16
|
+
}
|
|
17
|
+
),
|
|
18
|
+
/* @__PURE__ */ c(
|
|
19
|
+
o,
|
|
9
20
|
{
|
|
10
21
|
name: "demo2",
|
|
11
22
|
value: "demo-value2",
|
|
23
|
+
checked: s,
|
|
24
|
+
onChange: (e) => h(e.target.checked),
|
|
12
25
|
validationStatus: "error",
|
|
13
26
|
errorMessage: "This is an error",
|
|
14
27
|
children: "Checkbox with error"
|
|
@@ -17,6 +30,6 @@ function s() {
|
|
|
17
30
|
] });
|
|
18
31
|
}
|
|
19
32
|
export {
|
|
20
|
-
|
|
33
|
+
l as default
|
|
21
34
|
};
|
|
22
35
|
//# sourceMappingURL=checkbox-demo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-demo.js","sources":["../../lib/examples/checkbox-demo.tsx"],"sourcesContent":["'use client';\n\nimport { Checkbox } from '@/ui/forms/checkboxes/Checkbox';\n\nexport default function CheckboxDemo() {\n return (\n <div className=\"space-y-4\">\n <Checkbox
|
|
1
|
+
{"version":3,"file":"checkbox-demo.js","sources":["../../lib/examples/checkbox-demo.tsx"],"sourcesContent":["'use client';\n\nimport { Checkbox } from '@/ui/forms/checkboxes/Checkbox';\nimport { useState } from 'react';\n\nexport default function CheckboxDemo() {\n const [checked1, setChecked1] = useState(false);\n const [checked2, setChecked2] = useState(false);\n\n return (\n <div className=\"space-y-4\">\n <Checkbox\n name=\"demo\"\n value=\"demo-value\"\n checked={checked1}\n onChange={(e) => setChecked1(e.target.checked)}\n >\n Basic checkbox\n </Checkbox>\n <Checkbox\n name=\"demo2\"\n value=\"demo-value2\"\n checked={checked2}\n onChange={(e) => setChecked2(e.target.checked)}\n validationStatus=\"error\"\n errorMessage=\"This is an error\"\n >\n Checkbox with error\n </Checkbox>\n </div>\n );\n}\n"],"names":["CheckboxDemo","checked1","setChecked1","useState","checked2","setChecked2","jsxs","jsx","Checkbox"],"mappings":";;;;AAKA,SAAwBA,IAAe;AACrC,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxC,CAACC,GAAUC,CAAW,IAAIF,EAAS,EAAK;AAE9C,SACE,gBAAAG,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAASP;AAAA,QACT,UAAU,CAAC,MAAMC,EAAY,EAAE,OAAO,OAAO;AAAA,QAC9C,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGD,gBAAAK;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAASJ;AAAA,QACT,UAAU,CAAC,MAAMC,EAAY,EAAE,OAAO,OAAO;AAAA,QAC7C,kBAAiB;AAAA,QACjB,cAAa;AAAA,QACd,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAED,GACF;AAEJ;"}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as e } from "react/jsx-runtime";
|
|
3
|
-
import { NumberField as
|
|
4
|
-
function
|
|
3
|
+
import { NumberField as r } from "../ui/forms/NumberField.js";
|
|
4
|
+
function n() {
|
|
5
5
|
return /* @__PURE__ */ e(
|
|
6
|
-
|
|
6
|
+
r,
|
|
7
7
|
{
|
|
8
8
|
label: "Quantity",
|
|
9
9
|
description: "Select the number of items",
|
|
10
10
|
min: 0,
|
|
11
11
|
max: 10,
|
|
12
|
-
value: 3
|
|
12
|
+
value: 3,
|
|
13
|
+
labels: {
|
|
14
|
+
increase: "Increase",
|
|
15
|
+
decrease: "Decrease",
|
|
16
|
+
input: "Input"
|
|
17
|
+
}
|
|
13
18
|
}
|
|
14
19
|
);
|
|
15
20
|
}
|
|
16
21
|
export {
|
|
17
|
-
|
|
22
|
+
n as default
|
|
18
23
|
};
|
|
19
24
|
//# sourceMappingURL=number-field-demo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-field-demo.js","sources":["../../lib/examples/number-field-demo.tsx"],"sourcesContent":["'use client';\n\nimport { NumberField } from '@/ui/forms/NumberField';\n\nexport default function NumberFieldDemo() {\n return (\n <NumberField\n label=\"Quantity\"\n description=\"Select the number of items\"\n min={0}\n max={10}\n value={3}\n />\n );\n}\n"],"names":["NumberFieldDemo","jsx","NumberField"],"mappings":";;;AAIA,SAAwBA,IAAkB;AACxC,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"number-field-demo.js","sources":["../../lib/examples/number-field-demo.tsx"],"sourcesContent":["'use client';\n\nimport { NumberField } from '@/ui/forms/NumberField';\n\nexport default function NumberFieldDemo() {\n return (\n <NumberField\n label=\"Quantity\"\n description=\"Select the number of items\"\n min={0}\n max={10}\n value={3}\n labels={{\n increase: 'Increase',\n decrease: 'Decrease',\n input: 'Input',\n }}\n />\n );\n}\n"],"names":["NumberFieldDemo","jsx","NumberField"],"mappings":";;;AAIA,SAAwBA,IAAkB;AACxC,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,UAAU;AAAA,QACV,UAAU;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EAAA;AAGN;"}
|
package/examples/radio-demo.js
CHANGED
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import { Radio as
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import { jsxs as i, jsx as n } from "react/jsx-runtime";
|
|
3
|
+
import { Radio as a } from "../ui/forms/radios/Radio.js";
|
|
4
|
+
import { useState as l } from "react";
|
|
5
|
+
function d() {
|
|
6
|
+
const [o, t] = l("");
|
|
7
|
+
return /* @__PURE__ */ i("div", { className: "flex flex-col gap-8", children: [
|
|
8
|
+
/* @__PURE__ */ n(
|
|
9
|
+
a,
|
|
10
|
+
{
|
|
11
|
+
name: "option",
|
|
12
|
+
value: "option1",
|
|
13
|
+
checked: o === "option1",
|
|
14
|
+
onChange: (e) => t(e.target.value),
|
|
15
|
+
children: "Option 1"
|
|
16
|
+
}
|
|
17
|
+
),
|
|
18
|
+
/* @__PURE__ */ n(
|
|
19
|
+
a,
|
|
20
|
+
{
|
|
21
|
+
name: "option",
|
|
22
|
+
value: "option2",
|
|
23
|
+
checked: o === "option2",
|
|
24
|
+
onChange: (e) => t(e.target.value),
|
|
25
|
+
children: "Option 2"
|
|
26
|
+
}
|
|
27
|
+
),
|
|
28
|
+
/* @__PURE__ */ n(
|
|
29
|
+
a,
|
|
30
|
+
{
|
|
31
|
+
name: "option",
|
|
32
|
+
value: "option3",
|
|
33
|
+
checked: o === "option3",
|
|
34
|
+
onChange: (e) => t(e.target.value),
|
|
35
|
+
children: "Option 3"
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
] });
|
|
6
39
|
}
|
|
7
40
|
export {
|
|
8
|
-
|
|
41
|
+
d as default
|
|
9
42
|
};
|
|
10
43
|
//# sourceMappingURL=radio-demo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-demo.js","sources":["../../lib/examples/radio-demo.tsx"],"sourcesContent":["'use client';\n\nimport { Radio } from '@/ui/forms/radios/Radio';\n\nexport default function RadioDemo() {\n return (\n <Radio
|
|
1
|
+
{"version":3,"file":"radio-demo.js","sources":["../../lib/examples/radio-demo.tsx"],"sourcesContent":["'use client';\n\nimport { Radio } from '@/ui/forms/radios/Radio';\nimport { useState } from 'react';\n\nexport default function RadioDemo() {\n const [selectedValue, setSelectedValue] = useState<string>('');\n\n return (\n <div className=\"flex flex-col gap-8\">\n <Radio\n name=\"option\"\n value=\"option1\"\n checked={selectedValue === 'option1'}\n onChange={(e) => setSelectedValue(e.target.value)}\n >\n Option 1\n </Radio>\n <Radio\n name=\"option\"\n value=\"option2\"\n checked={selectedValue === 'option2'}\n onChange={(e) => setSelectedValue(e.target.value)}\n >\n Option 2\n </Radio>\n <Radio\n name=\"option\"\n value=\"option3\"\n checked={selectedValue === 'option3'}\n onChange={(e) => setSelectedValue(e.target.value)}\n >\n Option 3\n </Radio>\n </div>\n );\n}\n"],"names":["RadioDemo","selectedValue","setSelectedValue","useState","jsxs","jsx","Radio"],"mappings":";;;;AAKA,SAAwBA,IAAY;AAClC,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAiB,EAAE;AAE7D,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAASL,MAAkB;AAAA,QAC3B,UAAU,CAAC,MAAMC,EAAiB,EAAE,OAAO,KAAK;AAAA,QACjD,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGD,gBAAAG;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAASL,MAAkB;AAAA,QAC3B,UAAU,CAAC,MAAMC,EAAiB,EAAE,OAAO,KAAK;AAAA,QACjD,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGD,gBAAAG;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAASL,MAAkB;AAAA,QAC3B,UAAU,CAAC,MAAMC,EAAiB,EAAE,OAAO,KAAK;AAAA,QACjD,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAED,GACF;AAEJ;"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { jsx as o, jsxs as t } from "react/jsx-runtime";
|
|
3
|
+
import { FormControl as a } from "../ui/forms/FormControl.js";
|
|
3
4
|
import { RadioGroup as p } from "../ui/forms/radios/RadioGroup.js";
|
|
4
|
-
import { Radio as
|
|
5
|
-
import { useState as
|
|
6
|
-
function
|
|
7
|
-
const [
|
|
8
|
-
return /* @__PURE__ */
|
|
5
|
+
import { Radio as r } from "../ui/forms/radios/Radio.js";
|
|
6
|
+
import { useState as l } from "react";
|
|
7
|
+
function h() {
|
|
8
|
+
const [e, i] = l("option1");
|
|
9
|
+
return /* @__PURE__ */ o(a, { label: "Choose an option", id: "demo-radio-group", children: /* @__PURE__ */ t(
|
|
9
10
|
p,
|
|
10
11
|
{
|
|
11
|
-
value:
|
|
12
|
-
onChange: (
|
|
12
|
+
value: e,
|
|
13
|
+
onChange: (d, n) => i(n),
|
|
13
14
|
name: "demo-radio-group",
|
|
15
|
+
"aria-labelledby": "demo-radio-group",
|
|
14
16
|
children: [
|
|
15
|
-
/* @__PURE__ */ o(
|
|
16
|
-
/* @__PURE__ */ o(
|
|
17
|
-
/* @__PURE__ */ o(
|
|
17
|
+
/* @__PURE__ */ o(r, { value: "option1", children: "Option 1" }),
|
|
18
|
+
/* @__PURE__ */ o(r, { value: "option2", children: "Option 2" }),
|
|
19
|
+
/* @__PURE__ */ o(r, { value: "option3", children: "Option 3" })
|
|
18
20
|
]
|
|
19
21
|
}
|
|
20
|
-
);
|
|
22
|
+
) });
|
|
21
23
|
}
|
|
22
24
|
export {
|
|
23
|
-
|
|
25
|
+
h as default
|
|
24
26
|
};
|
|
25
27
|
//# sourceMappingURL=radio-group-demo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group-demo.js","sources":["../../lib/examples/radio-group-demo.tsx"],"sourcesContent":["'use client';\n\nimport { RadioGroup } from '@/ui/forms/radios/RadioGroup';\nimport { Radio } from '@/ui/forms/radios/Radio';\nimport { useState } from 'react';\n\nexport default function RadioGroupDemo() {\n const [value, setValue] = useState('option1');\n\n return (\n <RadioGroup\n
|
|
1
|
+
{"version":3,"file":"radio-group-demo.js","sources":["../../lib/examples/radio-group-demo.tsx"],"sourcesContent":["'use client';\n\nimport { FormControl } from '@/ui/forms/FormControl';\nimport { RadioGroup } from '@/ui/forms/radios/RadioGroup';\nimport { Radio } from '@/ui/forms/radios/Radio';\nimport { useState } from 'react';\n\nexport default function RadioGroupDemo() {\n const [value, setValue] = useState('option1');\n\n return (\n <FormControl label=\"Choose an option\" id=\"demo-radio-group\">\n <RadioGroup\n value={value}\n onChange={(_, newValue) => setValue(newValue)}\n name=\"demo-radio-group\"\n aria-labelledby=\"demo-radio-group\"\n >\n <Radio value=\"option1\">Option 1</Radio>\n <Radio value=\"option2\">Option 2</Radio>\n <Radio value=\"option3\">Option 3</Radio>\n </RadioGroup>\n </FormControl>\n );\n}\n"],"names":["RadioGroupDemo","value","setValue","useState","jsx","FormControl","jsxs","RadioGroup","_","newValue","Radio"],"mappings":";;;;;;AAOA,SAAwBA,IAAiB;AACvC,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAS,SAAS;AAE5C,SACE,gBAAAC,EAACC,GAAA,EAAY,OAAM,oBAAmB,IAAG,oBACvC,UAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAN;AAAA,MACA,UAAU,CAACO,GAAGC,MAAaP,EAASO,CAAQ;AAAA,MAC5C,MAAK;AAAA,MACL,mBAAgB;AAAA,MAEhB,UAAA;AAAA,QAAA,gBAAAL,EAACM,GAAA,EAAM,OAAM,WAAU,UAAA,YAAQ;AAAA,QAC/B,gBAAAN,EAACM,GAAA,EAAM,OAAM,WAAU,UAAA,YAAQ;AAAA,QAC/B,gBAAAN,EAACM,GAAA,EAAM,OAAM,WAAU,UAAA,WAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEnC;AAEJ;"}
|
|
@@ -28,9 +28,20 @@ function r() {
|
|
|
28
28
|
label: "With Icon",
|
|
29
29
|
description: "This field has an icon",
|
|
30
30
|
placeholder: "Search...",
|
|
31
|
-
icon: "
|
|
31
|
+
icon: "PeopleSingle",
|
|
32
32
|
className: "max-w-sm",
|
|
33
|
-
validationStatus: "
|
|
33
|
+
validationStatus: "success"
|
|
34
|
+
}
|
|
35
|
+
),
|
|
36
|
+
/* @__PURE__ */ e(
|
|
37
|
+
s,
|
|
38
|
+
{
|
|
39
|
+
label: "Error",
|
|
40
|
+
description: "This field has an error message",
|
|
41
|
+
placeholder: "Enter your text",
|
|
42
|
+
className: "max-w-sm",
|
|
43
|
+
validationStatus: "error",
|
|
44
|
+
errorMessage: "This is an error message"
|
|
34
45
|
}
|
|
35
46
|
),
|
|
36
47
|
/* @__PURE__ */ e(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-field-demo.js","sources":["../../lib/examples/text-field-demo.tsx"],"sourcesContent":["'use client';\n\nimport { TextField } from '@/ui/forms/TextField';\n\nexport default function TextFieldDemo() {\n return (\n <div className=\"flex flex-col gap-16\">\n <TextField\n label=\"Email Address\"\n description=\"Enter your email address\"\n placeholder=\"you@example.com\"\n className=\"max-w-sm\"\n />\n <TextField\n label=\"Disabled\"\n description=\"This field is disabled\"\n placeholder=\"Disabled input\"\n disabled\n className=\"max-w-sm\"\n />\n <TextField\n label=\"With Icon\"\n description=\"This field has an icon\"\n placeholder=\"Search...\"\n icon=\"Error\"\n className=\"max-w-sm\"\n validationStatus=\"error\"\n />\n <TextField\n label=\"Success\"\n description=\"This field has a success message\"\n placeholder=\"Enter your text\"\n className=\"max-w-sm\"\n validationStatus=\"success\"\n />\n </div>\n );\n}\n"],"names":["TextFieldDemo","jsxs","jsx","TextField"],"mappings":";;;AAIA,SAAwBA,IAAgB;AACtC,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAEZ,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,UAAQ;AAAA,QACR,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAEZ,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,WAAU;AAAA,QACV,kBAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,IAEnB,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,WAAU;AAAA,QACV,kBAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,EACnB,GACF;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"text-field-demo.js","sources":["../../lib/examples/text-field-demo.tsx"],"sourcesContent":["'use client';\n\nimport { TextField } from '@/ui/forms/TextField';\n\nexport default function TextFieldDemo() {\n return (\n <div className=\"flex flex-col gap-16\">\n <TextField\n label=\"Email Address\"\n description=\"Enter your email address\"\n placeholder=\"you@example.com\"\n className=\"max-w-sm\"\n />\n <TextField\n label=\"Disabled\"\n description=\"This field is disabled\"\n placeholder=\"Disabled input\"\n disabled\n className=\"max-w-sm\"\n />\n <TextField\n label=\"With Icon\"\n description=\"This field has an icon\"\n placeholder=\"Search...\"\n icon=\"PeopleSingle\"\n className=\"max-w-sm\"\n validationStatus=\"success\"\n />\n <TextField\n label=\"Error\"\n description=\"This field has an error message\"\n placeholder=\"Enter your text\"\n className=\"max-w-sm\"\n validationStatus=\"error\"\n errorMessage=\"This is an error message\"\n />\n <TextField\n label=\"Success\"\n description=\"This field has a success message\"\n placeholder=\"Enter your text\"\n className=\"max-w-sm\"\n validationStatus=\"success\"\n />\n </div>\n );\n}\n"],"names":["TextFieldDemo","jsxs","jsx","TextField"],"mappings":";;;AAIA,SAAwBA,IAAgB;AACtC,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAEZ,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,UAAQ;AAAA,QACR,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAEZ,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,WAAU;AAAA,QACV,kBAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,IAEnB,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,WAAU;AAAA,QACV,kBAAiB;AAAA,QACjB,cAAa;AAAA,MAAA;AAAA,IAAA;AAAA,IAEf,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,WAAU;AAAA,QACV,kBAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,EACnB,GACF;AAEJ;"}
|
package/package.json
CHANGED
package/ui/Link.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { jsxs as t, jsx as
|
|
2
|
-
import { c as
|
|
3
|
-
import { Icon as
|
|
1
|
+
import { jsxs as t, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { c as o } from "../chunks/clsx.js";
|
|
3
|
+
import { Icon as h } from "@clubmed/trident-icons";
|
|
4
4
|
import { twMerge as k } from "./helpers/twMerge.js";
|
|
5
5
|
const S = ({
|
|
6
6
|
label: n,
|
|
7
7
|
icon: s,
|
|
8
8
|
component: c = "a",
|
|
9
9
|
iconType: m,
|
|
10
|
-
underlined:
|
|
10
|
+
underlined: r = !0,
|
|
11
11
|
className: l,
|
|
12
12
|
inert: p,
|
|
13
13
|
width: d = "24px",
|
|
14
|
-
...
|
|
14
|
+
...u
|
|
15
15
|
}) => {
|
|
16
|
-
|
|
16
|
+
if (!n)
|
|
17
|
+
return null;
|
|
18
|
+
const e = n.lastIndexOf(" "), a = e === -1 ? n.length : e, x = n.substring(0, 1), f = n.substring(1, a + 1), g = n.substring(a);
|
|
17
19
|
return /* @__PURE__ */ t(
|
|
18
20
|
p ? "span" : c,
|
|
19
21
|
{
|
|
@@ -22,22 +24,22 @@ const S = ({
|
|
|
22
24
|
l
|
|
23
25
|
),
|
|
24
26
|
"data-name": "Link",
|
|
25
|
-
...
|
|
27
|
+
...u,
|
|
26
28
|
children: [
|
|
27
|
-
/* @__PURE__ */
|
|
29
|
+
/* @__PURE__ */ i("span", { className: o({ "link-underline": r }), children: x }),
|
|
28
30
|
/* @__PURE__ */ t(
|
|
29
31
|
"span",
|
|
30
32
|
{
|
|
31
|
-
className:
|
|
33
|
+
className: o("hoverable", {
|
|
32
34
|
"has-icon": s,
|
|
33
|
-
"link-underline":
|
|
35
|
+
"link-underline": r
|
|
34
36
|
}),
|
|
35
37
|
children: [
|
|
36
38
|
f,
|
|
37
39
|
/* @__PURE__ */ t("span", { className: "inline-block", children: [
|
|
38
|
-
|
|
39
|
-
s && /* @__PURE__ */
|
|
40
|
-
|
|
40
|
+
g,
|
|
41
|
+
s && /* @__PURE__ */ i(
|
|
42
|
+
h,
|
|
41
43
|
{
|
|
42
44
|
name: s,
|
|
43
45
|
iconType: m,
|
package/ui/Link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sources":["../../lib/ui/Link.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport type { AnchorHTMLAttributes, FunctionComponent, PropsWithChildren } from 'react';\n\nimport { Icon, type IconicNames, type IconicTypes } from '@clubmed/trident-icons';\nimport { twMerge } from './helpers/twMerge';\n\ninterface LinkProps<T extends HTMLAnchorElement = HTMLAnchorElement>\n extends AnchorHTMLAttributes<T> {\n /**\n * Label text\n */\n label: string;\n /**\n * Icon name\n */\n icon?: IconicNames;\n iconType?: IconicTypes;\n /**\n * Icon width\n */\n width?: string;\n /**\n * Underlined\n */\n underlined?: boolean;\n /**\n * Additional class names\n */\n className?: string;\n /**\n * Is the link inert (not itself clickable but part of a clickable element)\n */\n inert?: boolean;\n /**\n * Allow giving a custom component\n */\n component?: FunctionComponent<PropsWithChildren<any>> | string;\n}\n\nexport const Link: FunctionComponent<LinkProps> = ({\n label,\n icon,\n component = 'a',\n iconType,\n underlined = true,\n className,\n inert,\n width = '24px',\n ...anchorAttrs\n}) => {\n const lastSpace = label.lastIndexOf(' ');\n const lastIndex = lastSpace === -1 ? label.length : lastSpace;\n\n const first = label.substring(0, 1);\n const middle = label.substring(1, lastIndex + 1);\n const last = label.substring(lastIndex);\n const Cmp = component as FunctionComponent<PropsWithChildren>;\n\n const TagName = inert ? 'span' : Cmp;\n\n return (\n <TagName\n className={twMerge(\n 'decoration-none link-container cursor-pointer text-b3 font-semibold',\n className,\n )}\n data-name=\"Link\"\n {...anchorAttrs}\n >\n <span className={clsx({ 'link-underline': underlined })}>{first}</span>\n <span\n className={clsx('hoverable', {\n 'has-icon': icon,\n 'link-underline': underlined,\n })}\n >\n {middle}\n <span className=\"inline-block\">\n {last}\n {icon && (\n <Icon\n name={icon}\n iconType={iconType}\n width={width}\n style={{ marginInlineStart: '8px' }}\n />\n )}\n </span>\n </span>\n </TagName>\n );\n};\n"],"names":["Link","label","icon","component","iconType","underlined","className","inert","width","anchorAttrs","lastSpace","lastIndex","first","middle","last","jsxs","twMerge","jsx","clsx","Icon"],"mappings":";;;;AAuCO,MAAMA,IAAqC,CAAC;AAAA,EACjD,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,GAAGC;AACL,MAAM;AACJ,
|
|
1
|
+
{"version":3,"file":"Link.js","sources":["../../lib/ui/Link.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport type { AnchorHTMLAttributes, FunctionComponent, PropsWithChildren } from 'react';\n\nimport { Icon, type IconicNames, type IconicTypes } from '@clubmed/trident-icons';\nimport { twMerge } from './helpers/twMerge';\n\ninterface LinkProps<T extends HTMLAnchorElement = HTMLAnchorElement>\n extends AnchorHTMLAttributes<T> {\n /**\n * Label text\n */\n label: string;\n /**\n * Icon name\n */\n icon?: IconicNames;\n iconType?: IconicTypes;\n /**\n * Icon width\n */\n width?: string;\n /**\n * Underlined\n */\n underlined?: boolean;\n /**\n * Additional class names\n */\n className?: string;\n /**\n * Is the link inert (not itself clickable but part of a clickable element)\n */\n inert?: boolean;\n /**\n * Allow giving a custom component\n */\n component?: FunctionComponent<PropsWithChildren<any>> | string;\n}\n\nexport const Link: FunctionComponent<LinkProps> = ({\n label,\n icon,\n component = 'a',\n iconType,\n underlined = true,\n className,\n inert,\n width = '24px',\n ...anchorAttrs\n}) => {\n if (!label) {\n return null;\n }\n const lastSpace = label.lastIndexOf(' ');\n const lastIndex = lastSpace === -1 ? label.length : lastSpace;\n\n const first = label.substring(0, 1);\n const middle = label.substring(1, lastIndex + 1);\n const last = label.substring(lastIndex);\n const Cmp = component as FunctionComponent<PropsWithChildren>;\n\n const TagName = inert ? 'span' : Cmp;\n\n return (\n <TagName\n className={twMerge(\n 'decoration-none link-container cursor-pointer text-b3 font-semibold',\n className,\n )}\n data-name=\"Link\"\n {...anchorAttrs}\n >\n <span className={clsx({ 'link-underline': underlined })}>{first}</span>\n <span\n className={clsx('hoverable', {\n 'has-icon': icon,\n 'link-underline': underlined,\n })}\n >\n {middle}\n <span className=\"inline-block\">\n {last}\n {icon && (\n <Icon\n name={icon}\n iconType={iconType}\n width={width}\n style={{ marginInlineStart: '8px' }}\n />\n )}\n </span>\n </span>\n </TagName>\n );\n};\n"],"names":["Link","label","icon","component","iconType","underlined","className","inert","width","anchorAttrs","lastSpace","lastIndex","first","middle","last","jsxs","twMerge","jsx","clsx","Icon"],"mappings":";;;;AAuCO,MAAMA,IAAqC,CAAC;AAAA,EACjD,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,GAAGC;AACL,MAAM;AACJ,MAAI,CAACR;AACH,WAAO;AAET,QAAMS,IAAYT,EAAM,YAAY,GAAG,GACjCU,IAAYD,MAAc,KAAKT,EAAM,SAASS,GAE9CE,IAAQX,EAAM,UAAU,GAAG,CAAC,GAC5BY,IAASZ,EAAM,UAAU,GAAGU,IAAY,CAAC,GACzCG,IAAOb,EAAM,UAAUU,CAAS;AAKtC,SACE,gBAAAI;AAAA,IAHcR,IAAQ,SAFZJ;AAAA,IAKT;AAAA,MACC,WAAWa;AAAA,QACT;AAAA,QACAV;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGG;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAQ,EAAC,QAAA,EAAK,WAAWC,EAAK,EAAE,kBAAkBb,GAAY,GAAI,UAAAO,GAAM;AAAA,QAChE,gBAAAG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWG,EAAK,aAAa;AAAA,cAC3B,YAAYhB;AAAA,cACZ,kBAAkBG;AAAA,YAAA,CACnB;AAAA,YAEA,UAAA;AAAA,cAAAQ;AAAA,cACD,gBAAAE,EAAC,QAAA,EAAK,WAAU,gBACb,UAAA;AAAA,gBAAAD;AAAA,gBACAZ,KACC,gBAAAe;AAAA,kBAACE;AAAA,kBAAA;AAAA,oBACC,MAAMjB;AAAA,oBACN,UAAAE;AAAA,oBACA,OAAAI;AAAA,oBACA,OAAO,EAAE,mBAAmB,MAAA;AAAA,kBAAM;AAAA,gBAAA;AAAA,cACpC,EAAA,CAEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|