@lv-x-software-house/x_view 1.2.2-dev.15 → 1.2.2-dev.18

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
@@ -4421,18 +4421,31 @@ var formatLineContent2 = (line, availableNodes, onMentionClick, activeMentionInd
4421
4421
  const isChecked = state.toLowerCase() === "x";
4422
4422
  const currentIdx = globalCheckboxCounterRef.current;
4423
4423
  globalCheckboxCounterRef.current += 1;
4424
- return /* @__PURE__ */ import_react7.default.createElement("span", { className: "flex items-start gap-2.5 my-1 break-words ml-1" }, /* @__PURE__ */ import_react7.default.createElement(
4425
- "input",
4424
+ return /* @__PURE__ */ import_react7.default.createElement("span", { className: "flex items-start gap-2.5 my-1 break-words ml-1 group/checkbox" }, /* @__PURE__ */ import_react7.default.createElement(
4425
+ "div",
4426
4426
  {
4427
- type: "checkbox",
4428
- checked: isChecked,
4429
- onChange: (e) => {
4427
+ onClick: (e) => {
4430
4428
  e.stopPropagation();
4431
4429
  if (onToggleCheckbox) onToggleCheckbox(currentIdx);
4432
4430
  },
4433
- className: "mt-1 cursor-pointer accent-indigo-500 w-3.5 h-3.5 border-white/20 rounded-sm focus:ring-indigo-500 focus:ring-offset-slate-900"
4434
- }
4435
- ), /* @__PURE__ */ import_react7.default.createElement("span", { className: `transition-all duration-200 ${isChecked ? "line-through text-slate-500" : "text-slate-200"}` }, processContent(content)));
4431
+ className: `mt-1 cursor-pointer w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center transition-all duration-200
4432
+ ${isChecked ? "bg-indigo-500 border-indigo-500 shadow-[0_0_8px_rgba(99,102,241,0.4)]" : "border-slate-500 bg-slate-900/50 hover:border-slate-400 group-hover/checkbox:border-slate-400"}
4433
+ `
4434
+ },
4435
+ isChecked && /* @__PURE__ */ import_react7.default.createElement(import_fi5.FiCheck, { size: 12, className: "text-white" })
4436
+ ), /* @__PURE__ */ import_react7.default.createElement(
4437
+ "span",
4438
+ {
4439
+ className: `transition-all duration-200 cursor-pointer pt-[1px]
4440
+ ${isChecked ? "line-through text-slate-500" : "text-slate-200 group-hover/checkbox:text-white"}
4441
+ `,
4442
+ onClick: (e) => {
4443
+ e.stopPropagation();
4444
+ if (onToggleCheckbox) onToggleCheckbox(currentIdx);
4445
+ }
4446
+ },
4447
+ processContent(content)
4448
+ ));
4436
4449
  }
4437
4450
  const numberMatch = trimmedLine.match(/^(\s*)(\d+\.)\s+(.*)/);
4438
4451
  if (numberMatch) {
@@ -4459,7 +4472,6 @@ function DescriptionDisplay({
4459
4472
  initialSectionId,
4460
4473
  currentBranchDirection = null,
4461
4474
  onSaveDescription
4462
- // NOVO: Prop para salvar checklist
4463
4475
  }) {
4464
4476
  const [localDescription, setLocalDescription] = (0, import_react7.useState)(description || "");
4465
4477
  (0, import_react7.useEffect)(() => {
@@ -4685,16 +4697,16 @@ function DescriptionDisplay({
4685
4697
  if (index === 0) leadingSpace = "";
4686
4698
  const isRef = bodyText.trim().match(/^\[\[REF:(node|ancestry):([a-zA-Z0-9\-_]+):([a-zA-Z0-9\-_]+)\]\]$/);
4687
4699
  return /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, { key: index }, /* @__PURE__ */ import_react7.default.createElement("span", null, leadingSpace), isRef ? renderReferenceSection(bodyText, index, isSectionContextActive, setRef) : renderMixedContent(bodyText, index, isSectionContextActive, activeMentionIndex, setRef), /* @__PURE__ */ import_react7.default.createElement("span", null, trailingSpace));
4688
- })), hasUnsavedChanges && onSaveDescription && /* @__PURE__ */ import_react7.default.createElement("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 z-[100] animate-in slide-in-from-bottom-4 fade-in duration-300" }, /* @__PURE__ */ import_react7.default.createElement(
4700
+ })), hasUnsavedChanges && onSaveDescription && /* @__PURE__ */ import_react7.default.createElement("div", { className: "absolute bottom-2 left-2 z-[100] animate-in slide-in-from-bottom-2 fade-in duration-300" }, /* @__PURE__ */ import_react7.default.createElement(
4689
4701
  "button",
4690
4702
  {
4691
4703
  onClick: (e) => {
4692
4704
  e.stopPropagation();
4693
4705
  onSaveDescription(localDescription);
4694
4706
  },
4695
- className: "flex items-center gap-2 px-5 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white rounded-full shadow-[0_8px_20px_rgba(5,150,105,0.4)] font-semibold text-sm transition-all hover:scale-105 active:scale-95 border border-emerald-400/30"
4707
+ className: "flex items-center gap-1.5 px-3 py-1.5 bg-emerald-600/90 hover:bg-emerald-500 text-white rounded-md shadow-[0_4px_12px_rgba(5,150,105,0.3)] text-xs font-medium transition-all hover:scale-105 active:scale-95 border border-emerald-400/20 backdrop-blur-sm"
4696
4708
  },
4697
- /* @__PURE__ */ import_react7.default.createElement(import_fi5.FiSave, { size: 16 }),
4709
+ /* @__PURE__ */ import_react7.default.createElement(import_fi5.FiSave, { size: 12 }),
4698
4710
  " Salvar Checklist"
4699
4711
  )));
4700
4712
  }
package/dist/index.mjs CHANGED
@@ -4377,18 +4377,31 @@ var formatLineContent2 = (line, availableNodes, onMentionClick, activeMentionInd
4377
4377
  const isChecked = state.toLowerCase() === "x";
4378
4378
  const currentIdx = globalCheckboxCounterRef.current;
4379
4379
  globalCheckboxCounterRef.current += 1;
4380
- return /* @__PURE__ */ React6.createElement("span", { className: "flex items-start gap-2.5 my-1 break-words ml-1" }, /* @__PURE__ */ React6.createElement(
4381
- "input",
4380
+ return /* @__PURE__ */ React6.createElement("span", { className: "flex items-start gap-2.5 my-1 break-words ml-1 group/checkbox" }, /* @__PURE__ */ React6.createElement(
4381
+ "div",
4382
4382
  {
4383
- type: "checkbox",
4384
- checked: isChecked,
4385
- onChange: (e) => {
4383
+ onClick: (e) => {
4386
4384
  e.stopPropagation();
4387
4385
  if (onToggleCheckbox) onToggleCheckbox(currentIdx);
4388
4386
  },
4389
- className: "mt-1 cursor-pointer accent-indigo-500 w-3.5 h-3.5 border-white/20 rounded-sm focus:ring-indigo-500 focus:ring-offset-slate-900"
4390
- }
4391
- ), /* @__PURE__ */ React6.createElement("span", { className: `transition-all duration-200 ${isChecked ? "line-through text-slate-500" : "text-slate-200"}` }, processContent(content)));
4387
+ className: `mt-1 cursor-pointer w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center transition-all duration-200
4388
+ ${isChecked ? "bg-indigo-500 border-indigo-500 shadow-[0_0_8px_rgba(99,102,241,0.4)]" : "border-slate-500 bg-slate-900/50 hover:border-slate-400 group-hover/checkbox:border-slate-400"}
4389
+ `
4390
+ },
4391
+ isChecked && /* @__PURE__ */ React6.createElement(FiCheck3, { size: 12, className: "text-white" })
4392
+ ), /* @__PURE__ */ React6.createElement(
4393
+ "span",
4394
+ {
4395
+ className: `transition-all duration-200 cursor-pointer pt-[1px]
4396
+ ${isChecked ? "line-through text-slate-500" : "text-slate-200 group-hover/checkbox:text-white"}
4397
+ `,
4398
+ onClick: (e) => {
4399
+ e.stopPropagation();
4400
+ if (onToggleCheckbox) onToggleCheckbox(currentIdx);
4401
+ }
4402
+ },
4403
+ processContent(content)
4404
+ ));
4392
4405
  }
4393
4406
  const numberMatch = trimmedLine.match(/^(\s*)(\d+\.)\s+(.*)/);
4394
4407
  if (numberMatch) {
@@ -4415,7 +4428,6 @@ function DescriptionDisplay({
4415
4428
  initialSectionId,
4416
4429
  currentBranchDirection = null,
4417
4430
  onSaveDescription
4418
- // NOVO: Prop para salvar checklist
4419
4431
  }) {
4420
4432
  const [localDescription, setLocalDescription] = useState7(description || "");
4421
4433
  useEffect6(() => {
@@ -4641,16 +4653,16 @@ function DescriptionDisplay({
4641
4653
  if (index === 0) leadingSpace = "";
4642
4654
  const isRef = bodyText.trim().match(/^\[\[REF:(node|ancestry):([a-zA-Z0-9\-_]+):([a-zA-Z0-9\-_]+)\]\]$/);
4643
4655
  return /* @__PURE__ */ React6.createElement(React6.Fragment, { key: index }, /* @__PURE__ */ React6.createElement("span", null, leadingSpace), isRef ? renderReferenceSection(bodyText, index, isSectionContextActive, setRef) : renderMixedContent(bodyText, index, isSectionContextActive, activeMentionIndex, setRef), /* @__PURE__ */ React6.createElement("span", null, trailingSpace));
4644
- })), hasUnsavedChanges && onSaveDescription && /* @__PURE__ */ React6.createElement("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 z-[100] animate-in slide-in-from-bottom-4 fade-in duration-300" }, /* @__PURE__ */ React6.createElement(
4656
+ })), hasUnsavedChanges && onSaveDescription && /* @__PURE__ */ React6.createElement("div", { className: "absolute bottom-2 left-2 z-[100] animate-in slide-in-from-bottom-2 fade-in duration-300" }, /* @__PURE__ */ React6.createElement(
4645
4657
  "button",
4646
4658
  {
4647
4659
  onClick: (e) => {
4648
4660
  e.stopPropagation();
4649
4661
  onSaveDescription(localDescription);
4650
4662
  },
4651
- className: "flex items-center gap-2 px-5 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white rounded-full shadow-[0_8px_20px_rgba(5,150,105,0.4)] font-semibold text-sm transition-all hover:scale-105 active:scale-95 border border-emerald-400/30"
4663
+ className: "flex items-center gap-1.5 px-3 py-1.5 bg-emerald-600/90 hover:bg-emerald-500 text-white rounded-md shadow-[0_4px_12px_rgba(5,150,105,0.3)] text-xs font-medium transition-all hover:scale-105 active:scale-95 border border-emerald-400/20 backdrop-blur-sm"
4652
4664
  },
4653
- /* @__PURE__ */ React6.createElement(FiSave, { size: 16 }),
4665
+ /* @__PURE__ */ React6.createElement(FiSave, { size: 12 }),
4654
4666
  " Salvar Checklist"
4655
4667
  )));
4656
4668
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lv-x-software-house/x_view",
3
- "version": "1.2.2-dev.15",
3
+ "version": "1.2.2-dev.18",
4
4
  "description": "Pacote privado contendo os componentes e lógica de renderização 3D do X View.",
5
5
  "author": "iv.x - Engenharia de Software - ivxsoftwarehouse@gmail.com",
6
6
  "license": "UNLICENSED",