@apexcura/ui-components 0.0.12-Beta9 → 0.0.12-Beta91

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/dist/index.js CHANGED
@@ -35,10 +35,12 @@ __export(src_exports, {
35
35
  CheckboxElement: () => CheckboxElement,
36
36
  CkEditor: () => CkEditor,
37
37
  MultipleSelectElement: () => MultipleSelectElement,
38
+ Navbar: () => Navbar,
38
39
  NumberElement: () => NumberElement,
39
40
  PasswordElement: () => PasswordElement,
40
41
  RadioElement: () => RadioElement,
41
42
  SelectElement: () => SelectElement,
43
+ Sidebar: () => Sidebar,
42
44
  SingleSelectElement: () => SingleSelectElement,
43
45
  TextElement: () => TextElement,
44
46
  TextareaElement: () => TextareaElement
@@ -62,7 +64,7 @@ var TextElement = (props) => {
62
64
  type: props.type,
63
65
  status: props.status,
64
66
  style: props.styles,
65
- className: props.classNames,
67
+ className: props.className,
66
68
  variant: props.variant,
67
69
  name: props.name,
68
70
  onChange: (e) => props.onChange(e.target.value)
@@ -103,7 +105,7 @@ var NumberElement = (props) => {
103
105
  const newValue = e.target.value.replace(/[^0-9]/g, "");
104
106
  props.onChange(newValue);
105
107
  };
106
- return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement("label", { htmlFor: props.name }, props.label), /* @__PURE__ */ import_react3.default.createElement(
108
+ return /* @__PURE__ */ import_react3.default.createElement(
107
109
  import_antd3.Input,
108
110
  {
109
111
  placeholder: props.placeholder,
@@ -115,13 +117,12 @@ var NumberElement = (props) => {
115
117
  prefix: props.prefix,
116
118
  type: props.type,
117
119
  status: props.status,
118
- style: props.styles,
119
- className: props.classNames,
120
+ className: props.className,
120
121
  variant: props.variant,
121
122
  name: props.name,
122
123
  onChange: handleInputChange
123
124
  }
124
- ));
125
+ );
125
126
  };
126
127
 
127
128
  // src/Components/TextareaElement.tsx
@@ -129,7 +130,7 @@ var import_react4 = __toESM(require("react"));
129
130
  var import_antd4 = require("antd");
130
131
  var { TextArea } = import_antd4.Input;
131
132
  var TextareaElement = (props) => {
132
- return /* @__PURE__ */ import_react4.default.createElement(import_antd4.Flex, { vertical: true, gap: 32 }, /* @__PURE__ */ import_react4.default.createElement(
133
+ return /* @__PURE__ */ import_react4.default.createElement(import_antd4.Flex, null, /* @__PURE__ */ import_react4.default.createElement(
133
134
  TextArea,
134
135
  {
135
136
  placeholder: props.placeholder,
@@ -138,8 +139,7 @@ var TextareaElement = (props) => {
138
139
  disabled: props.disabled,
139
140
  id: props.name,
140
141
  status: props.status,
141
- style: props.styles,
142
- className: props.classNames,
142
+ className: props.className,
143
143
  variant: props.variant,
144
144
  name: props.name,
145
145
  showCount: true,
@@ -177,7 +177,7 @@ var SelectElement = (props) => {
177
177
  id: props.name,
178
178
  status: props.status,
179
179
  style: props.styles,
180
- className: props.classNames,
180
+ className: props.className,
181
181
  variant: props.variant,
182
182
  onChange: handleChange
183
183
  }
@@ -187,15 +187,47 @@ var SelectElement = (props) => {
187
187
  // src/Components/RadioElement.tsx
188
188
  var import_react6 = __toESM(require("react"));
189
189
  var import_antd6 = require("antd");
190
+ var containerClassName = " ";
191
+ var radioDefaultStyle = "bg-[#F2F2F2] border border-[#919191] rounded-[8px] m-[10px] hover:bg-[#F2F2F2] text-center text-black shadow-[0px_0px_1px_1px_#919191]";
192
+ var radioSelectedDefaultStyle = "bg-[#E2D6F8] border border-[#B8A4DE] rounded-[8px] p-[6px] m-[10px] shadow-[0px_0px_1px_1px_#B8A4DE] text-center text-black shadow-[0px_0px_1px_1px_#919191]";
190
193
  var RadioElement = (props) => {
194
+ const [isDisabled, setIsDisabled] = (0, import_react6.useState)(props.disabled);
195
+ const [selectedValue, setSelectedValue] = (0, import_react6.useState)(props.value);
196
+ const optionType = props.optionType === "button" ? "button" : void 0;
191
197
  const handleChange = (e) => {
198
+ console.log(e);
199
+ const selectedVal = e.target.value;
200
+ const selectedLabel = props.options ? props.options.find((f) => f.value === selectedVal)?.label : "";
201
+ const selectedOptions = { label: selectedLabel, value: selectedVal };
202
+ setSelectedValue(selectedVal);
203
+ setIsDisabled(true);
192
204
  if (props.onChange) {
193
- const selectedVal = e.target.value;
194
- const selectedOptions = [{ id: selectedVal, value: selectedVal }];
195
205
  props.onChange(selectedOptions);
196
206
  }
197
207
  };
198
- return /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio.Group, { name: "radiogroup", defaultValue: 1 }, /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio, { value: 1, onChange: handleChange }, "A"), /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio, { value: 2, onChange: handleChange }, "B"), /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio, { value: 3, onChange: handleChange }, "C"), /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio, { value: 4, onChange: handleChange }, "D"));
208
+ const getButtonStyle = (option) => {
209
+ return selectedValue === option.value ? `${radioSelectedDefaultStyle} ${option.selectedClassName}` : `${radioDefaultStyle} ${option.className}`;
210
+ };
211
+ return /* @__PURE__ */ import_react6.default.createElement("div", { className: containerClassName }, /* @__PURE__ */ import_react6.default.createElement("p", null, props.label), /* @__PURE__ */ import_react6.default.createElement(
212
+ import_antd6.Radio.Group,
213
+ {
214
+ onChange: handleChange,
215
+ optionType,
216
+ className: props.className,
217
+ value: selectedValue
218
+ },
219
+ props.options && props.options.map((option) => /* @__PURE__ */ import_react6.default.createElement(
220
+ import_antd6.Radio,
221
+ {
222
+ key: option.value,
223
+ value: option.value,
224
+ disabled: isDisabled && selectedValue !== option.value,
225
+ className: getButtonStyle(option),
226
+ style: { pointerEvents: isDisabled && selectedValue !== option.value ? "none" : "auto" }
227
+ },
228
+ option.label
229
+ ))
230
+ ));
199
231
  };
200
232
 
201
233
  // src/Components/Checkbox.tsx
@@ -229,7 +261,7 @@ var CheckboxElement = (props) => {
229
261
  disabled: props.disabled,
230
262
  id: props.name,
231
263
  style: props.styles,
232
- className: props.classNames,
264
+ className: props.className,
233
265
  onChange: onHandleAllChanges,
234
266
  checked: checkAll
235
267
  },
@@ -239,7 +271,7 @@ var CheckboxElement = (props) => {
239
271
  {
240
272
  disabled: props.disabled,
241
273
  style: props.styles,
242
- className: props.classNames,
274
+ className: props.className,
243
275
  options: plainOptions,
244
276
  value: checkedList,
245
277
  onChange: handleChange
@@ -266,8 +298,7 @@ var CkEditor = (props) => {
266
298
  {
267
299
  apiKey: "rwpgt7maa54n0pe5mglhkl686p7h57sg6z636n6gf2mio1b9",
268
300
  onInit: (_evt, editor) => {
269
- if (editor)
270
- editorRef.current = editor;
301
+ if (editor) editorRef.current = editor;
271
302
  },
272
303
  initialValue: "<p>This is the initial content of the editor.</p>",
273
304
  init: {
@@ -356,7 +387,20 @@ var MultipleSelectElement = (props) => {
356
387
  // src/Components/Button.tsx
357
388
  var import_react12 = __toESM(require("react"));
358
389
  var import_antd10 = require("antd");
359
- var ButtonElement = () => /* @__PURE__ */ import_react12.default.createElement(import_antd10.Flex, { gap: "small" }, /* @__PURE__ */ import_react12.default.createElement(import_antd10.Button, { type: "primary" }, "Primary Button"));
390
+ var defaultClassName = "w-[126px] h-[40px] bg-purple-800 text-white rounded-full shadow-lg submit border-none";
391
+ var ButtonElement = (props) => {
392
+ const handleClick = typeof props.action === "string" ? () => {
393
+ console.log("Performing action:", props.action);
394
+ } : props.action;
395
+ return /* @__PURE__ */ import_react12.default.createElement(
396
+ import_antd10.Button,
397
+ {
398
+ onClick: handleClick,
399
+ className: `${defaultClassName} ${props.className ? props.className : ""}`
400
+ },
401
+ props.label
402
+ );
403
+ };
360
404
 
361
405
  // src/Components/AddMoreTable.tsx
362
406
  var import_react13 = __toESM(require("react"));
@@ -364,79 +408,203 @@ var import_antd11 = require("antd");
364
408
  var import_icons2 = require("@ant-design/icons");
365
409
  var AddMoreTable = (props) => {
366
410
  const { thead, tbody } = props;
367
- const [tableData, setTableData] = (0, import_react13.useState)({});
368
411
  const [rows, setRows] = (0, import_react13.useState)(tbody || []);
369
- function isColumnType(column) {
370
- return column.dataIndex !== void 0;
371
- }
372
- const onHandleChange = (name, value) => {
373
- setTableData((prev) => ({ ...prev, [name]: value }));
374
- console.log(tableData);
375
- };
376
412
  const onHandleRows = () => {
377
- const lastRow = rows[rows.length - 1];
378
- const newId = lastRow ? lastRow.id + 1 : lastRow.id;
379
- const newRow = {
380
- ...lastRow,
381
- id: newId
413
+ const newId = rows.length > 0 ? rows[rows.length - 1].id + 1 : 1;
414
+ let newRow = {
415
+ id: newId,
416
+ label: "Medicine",
417
+ name: "Medicine",
418
+ type: "text",
419
+ element: "single-select",
420
+ variable_data: [
421
+ {
422
+ id: 1,
423
+ Route: { label: "Route", element: "single-select", type: "text" },
424
+ Dose: { label: "Dose", element: "single-select", type: "text" },
425
+ Frequency: { label: "Frequency", element: "single-select", type: "text" },
426
+ When: { label: "When", element: "textarea", type: "text" },
427
+ Duration: { label: "Duration", element: "textarea", type: "text" },
428
+ Instructions: { label: "Instructions", element: "textarea", type: "text" },
429
+ SubRows: { delete: "delete", add: "plus" }
430
+ }
431
+ ]
382
432
  };
383
433
  setRows((prevData) => [...prevData, newRow]);
384
434
  };
385
- const onHandleDelete = (index) => {
386
- const remainingRows = rows.filter((eachRow) => eachRow.id !== index);
387
- setRows(remainingRows);
435
+ const onHandleDelete = (id) => {
436
+ setRows((prevRows) => prevRows.filter((row) => row.id !== id));
388
437
  };
389
- const columns = thead && thead.length > 0 ? thead.map((eachHeadEl) => ({
390
- title: eachHeadEl.label,
391
- dataIndex: eachHeadEl.name,
392
- key: eachHeadEl.id
393
- })) : [];
394
- const renderInputElement = (element) => {
438
+ const onHandleSubRowsAdd = (rowIndex) => {
439
+ setRows((prevRows) => {
440
+ return prevRows.map((row, index) => {
441
+ if (index === rowIndex) {
442
+ const newSubRow = {
443
+ id: row.variable_data.length + 1,
444
+ Route: { label: "Route", element: "single-select", type: "text" },
445
+ Dose: { label: "Dose", element: "single-select", type: "text" },
446
+ Frequency: { label: "Frequency", element: "single-select", type: "text" },
447
+ When: { label: "When", element: "textarea", type: "text" },
448
+ Duration: { label: "Duration", element: "textarea", type: "text" },
449
+ Instructions: { label: "Instructions", element: "textarea", type: "text" },
450
+ SubRows: { delete: "delete", add: "plus" }
451
+ };
452
+ const updatedVariableData = [...row.variable_data, newSubRow];
453
+ return {
454
+ ...row,
455
+ variable_data: updatedVariableData
456
+ };
457
+ }
458
+ return row;
459
+ });
460
+ });
461
+ };
462
+ const onHandleSubRowsDelete = (rowIndex, subIndex) => {
463
+ setRows((prevRows) => {
464
+ return prevRows.map((row, index) => {
465
+ if (index === rowIndex) {
466
+ const updatedVariableData = row.variable_data.filter((_, i) => i !== subIndex);
467
+ return {
468
+ ...row,
469
+ variable_data: updatedVariableData
470
+ };
471
+ }
472
+ return row;
473
+ });
474
+ });
475
+ };
476
+ (0, import_react13.useEffect)(() => {
477
+ console.log(rows);
478
+ }, [rows]);
479
+ const renderInputElement = (element, value) => {
480
+ if (!element) return null;
395
481
  const { element: type, label } = element;
396
- console.log("type....", type);
397
482
  if (type === "single-select") {
398
- return /* @__PURE__ */ import_react13.default.createElement(SingleSelectElement, { onChange: (value) => onHandleChange(label, value) });
483
+ return /* @__PURE__ */ import_react13.default.createElement(SingleSelectElement, { onChange: (value2) => console.log(label, value2), optionType: "", className: void 0, selectedStyle: false, style: false });
399
484
  } else if (type === "textarea") {
400
- return /* @__PURE__ */ import_react13.default.createElement(TextareaElement, { onChange: (value) => onHandleChange(label, value) });
485
+ return /* @__PURE__ */ import_react13.default.createElement(TextareaElement, { onChange: (value2) => console.log(label, value2), optionType: "", className: void 0, selectedStyle: false, style: false });
401
486
  } else {
402
487
  return null;
403
488
  }
404
489
  };
405
- const dataSource = rows.map((eachRow, index) => {
406
- const rowElements = {};
407
- if (eachRow.element && eachRow.label) {
408
- rowElements[eachRow.label] = renderInputElement(eachRow);
409
- }
410
- const variableData = eachRow.variable_data && Array.isArray(eachRow.variable_data) ? eachRow.variable_data.reduce((acc, curr) => {
411
- Object.keys(curr).forEach((key) => {
412
- console.log(key);
413
- });
414
- return acc;
415
- }, {}) : {};
416
- return {
417
- key: index.toString(),
418
- "#": index + 1,
419
- ...eachRow,
420
- ...rowElements,
421
- ...variableData,
422
- actions: /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement("button", { onClick: () => onHandleDelete(eachRow.id) }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.DeleteOutlined, null)), index === rows.length - 1 && /* @__PURE__ */ import_react13.default.createElement("button", { onClick: onHandleRows }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.PlusOutlined, null)))
490
+ const dataSource = rows.map((eachRow, rowIndex) => {
491
+ const rowData = {
492
+ key: eachRow.id,
493
+ "#": rowIndex + 1,
494
+ "Medicine": renderInputElement({
495
+ element: eachRow.element,
496
+ label: eachRow.label
497
+ })
423
498
  };
499
+ eachRow.variable_data.forEach((variable, subIndex) => {
500
+ Object.keys(variable).forEach((key) => {
501
+ if (key === "SubRows") {
502
+ rowData[`${key}`] = /* @__PURE__ */ import_react13.default.createElement("div", { key: subIndex }, eachRow.variable_data.length > 1 && /* @__PURE__ */ import_react13.default.createElement(import_antd11.Button, { onClick: () => onHandleSubRowsDelete(rowIndex, subIndex) }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.DeleteOutlined, null)), subIndex === eachRow.variable_data.length - 1 && /* @__PURE__ */ import_react13.default.createElement(import_antd11.Button, { onClick: () => onHandleSubRowsAdd(rowIndex) }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.PlusOutlined, null)));
503
+ } else {
504
+ rowData[`${key}`] = renderInputElement(variable[key]);
505
+ }
506
+ });
507
+ });
508
+ rowData.actions = /* @__PURE__ */ import_react13.default.createElement("div", null, /* @__PURE__ */ import_react13.default.createElement(import_antd11.Button, { onClick: () => onHandleDelete(eachRow.id) }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.DeleteOutlined, null)), rowIndex === rows.length - 1 && /* @__PURE__ */ import_react13.default.createElement(import_antd11.Button, { onClick: onHandleRows }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.PlusOutlined, null)));
509
+ console.log("=====rowdata", rowData);
510
+ return rowData;
424
511
  });
425
- if (!columns.some((col) => isColumnType(col) && col.dataIndex === "actions")) {
512
+ const columns = thead && thead.length > 0 ? thead.map((eachHeadEl) => ({
513
+ title: eachHeadEl.label,
514
+ dataIndex: eachHeadEl.name,
515
+ key: eachHeadEl.id
516
+ })) : [];
517
+ if (!columns.some((col) => col.dataIndex === "actions")) {
426
518
  columns.push({
427
519
  title: "Actions",
428
520
  dataIndex: "actions",
429
521
  key: "actions"
430
522
  });
431
523
  }
432
- return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement(
524
+ return /* @__PURE__ */ import_react13.default.createElement(
433
525
  import_antd11.Table,
434
526
  {
435
527
  columns,
436
- expandable: { defaultExpandedRowKeys: ["0"] },
437
- dataSource
528
+ dataSource,
529
+ pagination: false,
530
+ bordered: true
438
531
  }
439
- ));
532
+ );
533
+ };
534
+
535
+ // src/Components/Sidebar.tsx
536
+ var import_react14 = __toESM(require("react"));
537
+ var Sidebar = (props) => {
538
+ const handleChange = (item) => {
539
+ if (props.onChange) {
540
+ props.onChange(item);
541
+ }
542
+ };
543
+ return /* @__PURE__ */ import_react14.default.createElement("div", { className: props.className, key: props.name }, /* @__PURE__ */ import_react14.default.createElement("div", null, /* @__PURE__ */ import_react14.default.createElement("img", { src: props.img, alt: "logo" })), /* @__PURE__ */ import_react14.default.createElement("ul", { className: props.listClassName }, props.items?.map((item) => {
544
+ return /* @__PURE__ */ import_react14.default.createElement("li", { onClick: () => {
545
+ handleChange(item);
546
+ }, key: item.label, className: `${props.listItemClassName} ${item.active && props.activeClassName}` }, /* @__PURE__ */ import_react14.default.createElement("p", null, item.icon), /* @__PURE__ */ import_react14.default.createElement("p", null, item.label));
547
+ })));
548
+ };
549
+
550
+ // src/Components/Navbar.tsx
551
+ var import_react18 = __toESM(require("react"));
552
+
553
+ // src/Components/Notification.tsx
554
+ var import_react15 = __toESM(require("react"));
555
+ var import_antd12 = require("antd");
556
+ var import_io = require("react-icons/io");
557
+ var popoverContentStyle = {
558
+ minWidth: "300px",
559
+ maxWidth: "100%"
560
+ };
561
+ var Notification = (props) => /* @__PURE__ */ import_react15.default.createElement(
562
+ import_antd12.Popover,
563
+ {
564
+ className: props.className,
565
+ content: /* @__PURE__ */ import_react15.default.createElement("div", { style: popoverContentStyle }, " ", /* @__PURE__ */ import_react15.default.createElement(
566
+ import_antd12.List,
567
+ {
568
+ itemLayout: "horizontal",
569
+ dataSource: props.items,
570
+ renderItem: (item, index) => /* @__PURE__ */ import_react15.default.createElement(import_antd12.List.Item, null, /* @__PURE__ */ import_react15.default.createElement(
571
+ import_antd12.List.Item.Meta,
572
+ {
573
+ avatar: /* @__PURE__ */ import_react15.default.createElement(import_antd12.Avatar, { src: `https://api.dicebear.com/7.x/miniavs/svg?seed=${index}` }),
574
+ title: item.text,
575
+ description: item.time
576
+ }
577
+ ))
578
+ }
579
+ )),
580
+ trigger: "focus",
581
+ placement: "bottomRight"
582
+ },
583
+ /* @__PURE__ */ import_react15.default.createElement(import_antd12.Button, { className: props.buttonClassName }, /* @__PURE__ */ import_react15.default.createElement(import_antd12.Badge, { size: "small", count: props.count }, /* @__PURE__ */ import_react15.default.createElement("span", { className: props.iconsClassName }, /* @__PURE__ */ import_react15.default.createElement(import_io.IoIosNotifications, null))))
584
+ );
585
+
586
+ // src/Components/SpanElement.tsx
587
+ var import_react16 = __toESM(require("react"));
588
+ var SpanElement = (props) => /* @__PURE__ */ import_react16.default.createElement("div", { className: props.className }, /* @__PURE__ */ import_react16.default.createElement("span", null, props.label));
589
+
590
+ // src/Components/Profile.tsx
591
+ var import_react17 = __toESM(require("react"));
592
+ var import_antd13 = require("antd");
593
+ var import_icons3 = require("@ant-design/icons");
594
+ var Profile = (props) => /* @__PURE__ */ import_react17.default.createElement("div", { className: props.className }, /* @__PURE__ */ import_react17.default.createElement(import_antd13.Avatar, { style: { backgroundColor: "#87d068", marginRight: "10px" }, icon: /* @__PURE__ */ import_react17.default.createElement(import_icons3.UserOutlined, null) }), /* @__PURE__ */ import_react17.default.createElement("div", { className: props.profileSubClassName }, /* @__PURE__ */ import_react17.default.createElement("p", null, props.primaryText), /* @__PURE__ */ import_react17.default.createElement("p", { className: props.secondTextClassName }, " ", props.secondaryText)));
595
+
596
+ // src/Components/Navbar.tsx
597
+ var Navbar = (props) => {
598
+ return /* @__PURE__ */ import_react18.default.createElement("div", { className: `${props.className}`, key: props.name }, props.items && props.items.map((item) => {
599
+ if (item.element === "span") {
600
+ return /* @__PURE__ */ import_react18.default.createElement(SpanElement, { ...item });
601
+ } else if (item.element === "notifications") {
602
+ return /* @__PURE__ */ import_react18.default.createElement(Notification, { ...item });
603
+ } else if (item.name === "profile") {
604
+ return /* @__PURE__ */ import_react18.default.createElement(Profile, { ...item });
605
+ }
606
+ return null;
607
+ }));
440
608
  };
441
609
  // Annotate the CommonJS export names for ESM import in node:
442
610
  0 && (module.exports = {
@@ -445,10 +613,12 @@ var AddMoreTable = (props) => {
445
613
  CheckboxElement,
446
614
  CkEditor,
447
615
  MultipleSelectElement,
616
+ Navbar,
448
617
  NumberElement,
449
618
  PasswordElement,
450
619
  RadioElement,
451
620
  SelectElement,
621
+ Sidebar,
452
622
  SingleSelectElement,
453
623
  TextElement,
454
624
  TextareaElement