<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lex Et Litterae S.A.S</title>
	<atom:link href="https://lexetlit.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://lexetlit.com/</link>
	<description></description>
	<lastBuildDate>Sat, 09 Aug 2025 03:02:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://i0.wp.com/lexetlit.com/wp-content/uploads/2025/07/cropped-Recurso-2.png?fit=32%2C32&#038;ssl=1</url>
	<title>Lex Et Litterae S.A.S</title>
	<link>https://lexetlit.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">224934793</site>	<item>
		<title>Welcome to the Gutenberg Editor</title>
		<link>https://lexetlit.com/welcome-to-the-gutenberg-editor/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=welcome-to-the-gutenberg-editor</link>
		
		<dc:creator><![CDATA[contacto]]></dc:creator>
		<pubDate>Sat, 09 Aug 2025 02:49:27 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://lexetlit.com/?p=3280</guid>

					<description><![CDATA[<p>The goal of this new editor is to make adding rich content to WordPress simple and enjoyable. This whole post is composed of pieces of content—somewhat similar to LEGO bricks—that you can move around and interact with. Move your cursor around and you’ll notice the different blocks light up with outlines and arrows. Press the arrows to reposition blocks quickly, without fearing about losing things in the process of copying and pasting. What you are reading now is a text block the most basic block of all. The text block has its own controls to be moved freely around the post&#8230; &#8230; like this one, which is right aligned. Headings are separate blocks as well, which helps with the outline and organization of your content. A Picture is Worth a Thousand Words Handling images and media with the utmost care is a primary focus of the new editor. Hopefully, you’ll find aspects of adding captions or going full-width with your pictures much easier and robust than before. Try selecting and removing or editing the caption, now you don’t have to be careful about selecting the image or other text by mistake and ruining the presentation. The Inserter Tool Imagine everything that WordPress can do is available to you quickly and in the same place on the interface. No need to figure out HTML tags, classes, or remember complicated shortcode syntax. That’s the spirit behind the inserter—the (+) button you’ll see around the editor—which allows you to browse all available content blocks and add them into your post. Plugins and themes are able to register their own, opening up all sort of possibilities for rich editing and publishing. Go give it a try, you may discover things WordPress can already add into your posts that you didn’t know about. Here’s a short list of what you can currently find there: Visual Editing A huge benefit of blocks is that you can edit them in place and manipulate your content directly. Instead of having fields for editing things like the source of a quote, or the text of a button, you can directly change the content. Try editing the following quote: The editor will endeavor to create a new page and post building experience that makes writing rich posts effortless, and has “blocks” to make it easy what today might take shortcodes, custom HTML, or “mystery meat” embed discovery. Matt Mullenweg, 2017 The information corresponding to the source of the quote is a separate text field, similar to captions under images, so the structure of the quote is protected even if you select, modify, or remove the source. It’s always easy to add it back. Blocks can be anything you need. For instance, you may want to add a subdued quote as part of the composition of your text, or you may prefer to display a giant stylized one. All of these options are available in the inserter. You can change the amount of columns in your galleries by dragging a slider in the block inspector in the sidebar. Media Rich If you combine the new wide and full-wide alignments with galleries, you can create a very media rich layout, very quickly: Sure, the full-wide image can be pretty big. But sometimes the image is worth it. The above is a gallery with just two images. It’s an easier way to create visually appealing layouts, without having to deal with floats. You can also easily convert the gallery back to individual images again, by using the block switcher. Any block can opt into these alignments. The embed block has them also, and is responsive out of the box: You can build any block you like, static or dynamic, decorative or plain. Here’s a pullquote block: Code is Poetry The WordPress community If you want to learn more about how to build additional blocks, or if you are interested in helping with the project, head over to the GitHub repository. Thanks for testing Gutenberg! 👋 Calculadora Laboral – Colombia Elige el módulo que necesitas. Cada cálculo tiene su propio botón Calcular. Prestaciones (fecha a fecha) Horas y recargos Indemnización (sin justa causa) Prestaciones de fecha a fecha Calcula cesantías, intereses, prima, vacaciones y salario pendiente. SMMLV (COP) Auxilio transporte (COP/mes) ¿Recibe auxilio? SíNo Se suma a base si salario ≤ 2 SMMLV Fecha inicio Fecha de corte Salario mensual ¿Salario integral? NoSí Vacaciones: 70% por defecto Otros factores (promedio mensual) Puedes obtenerlos del módulo “Horas y recargos” Base vacaciones si integral 70%100% Salario pendiente (días del mes) Calcular prestaciones Resultado Cesantías $0 Intereses (12% a.a.) $0 Prima de servicios $0 Vacaciones $0 Salario pendiente $0 Total prestaciones $0 Base ces/prima incluye auxilio si salario ≤ 2 SMMLV y marcaste “Sí”. Vacaciones no incluyen auxilio. Horas y recargos Calcula el promedio mensual de variables (para copiarlo al campo “Otros factores” del módulo Prestaciones). Salario mensual Jornada semanal (h) Aprox. horas/mes usadas = (jornada/6)×30 Horas/mes usadas Fecha de corte Para recargo dominical escalonado Recargo nocturno Hora extra diurna Hora extra nocturna Dominical/festivo diurno Dominical/festivo nocturno Extra D/F diurna Extra D/F nocturna Calcular variables Resultado Valor hora $0 Promedio variable mensual $0 Sugerencia Copia este valor en “Otros factores” del módulo Prestaciones. Indemnización por despido sin justa causa Elige el tipo de contrato, ingresa fechas y base. Calculamos los días y el valor. SMMLV (COP) Salario mensual Otros factores (promedio) No incluye auxilio de transporte Tipo de contrato IndefinidoTérmino fijo Inicio contrato Terminación Vencimiento pactado (fijo) Calcular indemnización Resultado Base usada $0 Días indemnizatorios 0 Valor indemnización $0 Indefinido: 30/20 días el primer año y 20/15 días por cada año adicional (según si supera 10 SMMLV). Fijo: lo que falte al vencimiento, mínimo 15 días. Herramienta educativa. Verifica casos con suspensiones/licencias/cambios salariales con soporte jurídico.</p>
<p>The post <a href="https://lexetlit.com/welcome-to-the-gutenberg-editor/">Welcome to the Gutenberg Editor</a> appeared first on <a href="https://lexetlit.com">Lex Et Litterae S.A.S</a>.</p>
<p>Read more at <a href="https://lexetlit.com/welcome-to-the-gutenberg-editor/">Lex Et Litterae S.A.S</a></p>]]></description>
										<content:encoded><![CDATA[
<div class="is-light wp-block-cover alignwide"><img data-recalc-dims="1" decoding="async" class="wp-block-cover__image-background" alt="Fz ASbo2s3" src="https://i0.wp.com/cldup.com/Fz-ASbo2s3.jpg?w=1200&#038;ssl=1" data-object-fit="cover" title="Welcome to the Gutenberg Editor"><span aria-hidden="true" class="wp-block-cover__background has-background-dim"></span><div class="wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow">
<p class="has-text-align-center has-white-color has-text-color has-large-font-size wp-block-paragraph">Of Mountains &amp; Printing Presses</p>
</div></div>



<p class="wp-block-paragraph">The goal of this new editor is to make adding rich content to WordPress simple and enjoyable. This whole post is composed of <em>pieces of content</em>—somewhat similar to LEGO bricks—that you can move around and interact with. Move your cursor around and you’ll notice the different blocks light up with outlines and arrows. Press the arrows to reposition blocks quickly, without fearing about losing things in the process of copying and pasting.</p>



<p class="wp-block-paragraph">What you are reading now is a <strong>text block</strong> the most basic block of all. The text block has its own controls to be moved freely around the post&#8230;</p>



<p class="has-text-align-right wp-block-paragraph">&#8230; like this one, which is right aligned.</p>



<p class="wp-block-paragraph">Headings are separate blocks as well, which helps with the outline and organization of your content.</p>



<h2 class="wp-block-heading">A Picture is Worth a Thousand Words</h2>



<p class="wp-block-paragraph">Handling images and media with the utmost care is a primary focus of the new editor. Hopefully, you’ll find aspects of adding captions or going full-width with your pictures much easier and robust than before.</p>



<figure class="wp-block-image aligncenter"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/cldup.com/cXyG__fTLN.jpg?w=1200&#038;ssl=1" alt="Beautiful landscape" title="Welcome to the Gutenberg Editor"><figcaption class="wp-element-caption">If your theme supports it, you’ll see the &#8220;wide&#8221; button on the image toolbar. Give it a try.</figcaption></figure>



<p class="wp-block-paragraph">Try selecting and removing or editing the caption, now you don’t have to be careful about selecting the image or other text by mistake and ruining the presentation.</p>



<h2 class="wp-block-heading">The <em>Inserter</em> Tool</h2>



<p class="wp-block-paragraph">Imagine everything that WordPress can do is available to you quickly and in the same place on the interface. No need to figure out HTML tags, classes, or remember complicated shortcode syntax. That’s the spirit behind the inserter—the <code>(+)</code> button you’ll see around the editor—which allows you to browse all available content blocks and add them into your post. Plugins and themes are able to register their own, opening up all sort of possibilities for rich editing and publishing.</p>



<p class="wp-block-paragraph">Go give it a try, you may discover things WordPress can already add into your posts that you didn’t know about. Here’s a short list of what you can currently find there:</p>



<ul class="wp-block-list">
<li class="">Text &amp; Headings</li>



<li class="">Images &amp; Videos</li>



<li class="">Galleries</li>



<li class="">Embeds, like YouTube, Tweets, or other WordPress posts.</li>



<li class="">Layout blocks, like Buttons, Hero Images, Separators, etc.</li>



<li class="">And <em>Lists</em> like this one of course <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>



<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">Visual Editing</h2>



<p class="wp-block-paragraph">A huge benefit of blocks is that you can edit them in place and manipulate your content directly. Instead of having fields for editing things like the source of a quote, or the text of a button, you can directly change the content. Try editing the following quote:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The editor will endeavor to create a new page and post building experience that makes writing rich posts effortless, and has “blocks” to make it easy what today might take shortcodes, custom HTML, or “mystery meat” embed discovery.</p>
<cite>Matt Mullenweg, 2017</cite></blockquote>



<p class="wp-block-paragraph">The information corresponding to the source of the quote is a separate text field, similar to captions under images, so the structure of the quote is protected even if you select, modify, or remove the source. It’s always easy to add it back.</p>



<p class="wp-block-paragraph">Blocks can be anything you need. For instance, you may want to add a subdued quote as part of the composition of your text, or you may prefer to display a giant stylized one. All of these options are available in the inserter.</p>



<figure class="wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/cldup.com/n0g6ME5VKC.jpg?w=1200&#038;ssl=1" alt="N0g6ME5VKC" title="Welcome to the Gutenberg Editor"></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/cldup.com/ZjESfxPI3R.jpg?w=1200&#038;ssl=1" alt="ZjESfxPI3R" title="Welcome to the Gutenberg Editor"></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/cldup.com/EKNF8xD2UM.jpg?w=1200&#038;ssl=1" alt="EKNF8xD2UM" title="Welcome to the Gutenberg Editor"></figure>
</figure>



<p class="wp-block-paragraph">You can change the amount of columns in your galleries by dragging a slider in the block inspector in the sidebar.</p>



<h2 class="wp-block-heading">Media Rich</h2>



<p class="wp-block-paragraph">If you combine the new <strong>wide</strong> and <strong>full-wide</strong> alignments with galleries, you can create a very media rich layout, very quickly:</p>



<figure class="wp-block-image alignfull"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/cldup.com/8lhI-gKnI2.jpg?w=1200&#038;ssl=1" alt="Accessibility is important — don’t forget image alt attribute" title="Welcome to the Gutenberg Editor"></figure>



<p class="wp-block-paragraph">Sure, the full-wide image can be pretty big. But sometimes the image is worth it.</p>



<figure class="wp-block-gallery alignwide has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/cldup.com/_rSwtEeDGD.jpg?w=1200&#038;ssl=1" alt="RSwtEeDGD" title="Welcome to the Gutenberg Editor"></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/cldup.com/L-cC3qX2DN.jpg?w=1200&#038;ssl=1" alt="L CC3qX2DN" title="Welcome to the Gutenberg Editor"></figure>
</figure>



<p class="wp-block-paragraph">The above is a gallery with just two images. It’s an easier way to create visually appealing layouts, without having to deal with floats. You can also easily convert the gallery back to individual images again, by using the block switcher.</p>



<p class="wp-block-paragraph">Any block can opt into these alignments. The embed block has them also, and is responsive out of the box:</p>



<figure class="wp-has-aspect-ratio wp-embed-aspect-16-9 wp-block-embed alignwide is-type-video is-provider-vimeo wp-block-embed-vimeo"><div class="wp-block-embed__wrapper">
<iframe title="The Mountain" src="https://player.vimeo.com/video/22439234?dnt=1&amp;app_id=122963" width="1200" height="675" frameborder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share" referrerpolicy="strict-origin-when-cross-origin"></iframe>
</div></figure>



<p class="wp-block-paragraph">You can build any block you like, static or dynamic, decorative or plain. Here’s a pullquote block:</p>



<figure class="wp-block-pullquote"><blockquote><p>Code is Poetry</p><cite>The WordPress community</cite></blockquote></figure>



<p class="has-text-align-center wp-block-paragraph">
	<em>
		If you want to learn more about how to build additional blocks, or if you are interested in helping with the project, head over to the <a href="https://github.com/WordPress/gutenberg">GitHub repository</a>.	</em>
</p>



<div class="aligncenter wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/WordPress/gutenberg">Help build Gutenberg</a></div>



<hr class="wp-block-separator has-css-opacity"/>



<p class="has-text-align-center wp-block-paragraph">Thanks for testing Gutenberg!</p>



<p class="has-text-align-center wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f44b.png" alt="👋" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<!-- ====================== MÓDULOS LEX & LIT – CALCULADORA LABORAL (CO) ====================== -->

<!-- Estilos mínimos + Tailwind + Iconos (carga por CDN) -->
<style>
  @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');
  .lex-font { font-family:'Inter',sans-serif }
  .tab-btn{border-bottom:2px solid transparent}
  .tab-btn.active{border-color:#2563eb;color:#1f2937;background:#eef2ff}
  .input-focus:focus{outline:none;box-shadow:0 0 0 2px #3b82f6;border-color:#3b82f6}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script defer src="https://unpkg.com/lucide@latest/dist/umd/lucide.js"></script>

<div class="lex-font max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
  <!-- Título -->
  <header class="mb-6">
    <h1 class="text-2xl sm:text-3xl font-bold text-gray-900">Calculadora Laboral – Colombia</h1>
    <p class="text-gray-600">Elige el módulo que necesitas. Cada cálculo tiene su propio botón <strong>Calcular</strong>.</p>
  </header>

  <!-- Tabs -->
  <nav class="flex gap-2 mb-4">
    <button class="tab-btn active px-4 py-2 rounded-md text-sm bg-white border hover:bg-gray-50" data-tab="prestaciones">
      Prestaciones (fecha a fecha)
    </button>
    <button class="tab-btn px-4 py-2 rounded-md text-sm bg-white border hover:bg-gray-50" data-tab="horas">
      Horas y recargos
    </button>
    <button class="tab-btn px-4 py-2 rounded-md text-sm bg-white border hover:bg-gray-50" data-tab="indemnizacion">
      Indemnización (sin justa causa)
    </button>
  </nav>

  <!-- PANEL: Prestaciones -->
  <section id="tab-prestaciones" class="tab-panel">
    <div class="bg-white rounded-xl shadow border p-6">
      <h2 class="text-xl font-semibold mb-2">Prestaciones de fecha a fecha</h2>
      <p class="text-sm text-gray-600 mb-4">Calcula cesantías, intereses, prima, vacaciones y salario pendiente.</p>

      <div id="err-prest" class="hidden mb-3 text-sm text-red-700 bg-red-50 border border-red-200 rounded p-3"></div>

      <!-- Parámetros y periodo -->
      <div class="grid grid-cols-1 sm:grid-cols-3 gap-4 mb-4">
        <div>
          <label class="text-sm font-medium text-gray-700">SMMLV (COP)</label>
          <input id="p-smmlv" type="number" step="1" min="1" class="w-full border rounded px-3 py-2 input-focus" value="1423500">
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Auxilio transporte (COP/mes)</label>
          <input id="p-aux" type="number" step="1" min="0" class="w-full border rounded px-3 py-2 input-focus" value="172000">
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">¿Recibe auxilio?</label>
          <select id="p-aux-recibe" class="w-full border rounded px-3 py-2 input-focus">
            <option value="si">Sí</option><option value="no">No</option>
          </select>
          <p class="text-xs text-gray-500 mt-1">Se suma a base si salario ≤ 2 SMMLV</p>
        </div>
      </div>

      <div class="grid grid-cols-1 sm:grid-cols-2 gap-4 mb-4">
        <div>
          <label class="text-sm font-medium text-gray-700">Fecha inicio</label>
          <input id="p-fi" type="date" class="w-full border rounded px-3 py-2 input-focus">
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Fecha de corte</label>
          <input id="p-fc" type="date" class="w-full border rounded px-3 py-2 input-focus">
        </div>
      </div>

      <!-- Datos salariales -->
      <div class="grid grid-cols-1 sm:grid-cols-3 gap-4 mb-4">
        <div>
          <label class="text-sm font-medium text-gray-700">Salario mensual</label>
          <input id="p-sal" type="number" step="1" min="1" class="w-full border rounded px-3 py-2 input-focus" placeholder="3000000">
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">¿Salario integral?</label>
          <select id="p-integral" class="w-full border rounded px-3 py-2 input-focus">
            <option value="no">No</option><option value="si">Sí</option>
          </select>
          <p class="text-xs text-gray-500 mt-1">Vacaciones: 70% por defecto</p>
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Otros factores (promedio mensual)</label>
          <input id="p-fact" type="number" step="1" min="0" class="w-full border rounded px-3 py-2 input-focus" value="0">
          <p class="text-xs text-gray-500 mt-1">Puedes obtenerlos del módulo “Horas y recargos”</p>
        </div>
      </div>

      <div class="grid grid-cols-1 sm:grid-cols-3 gap-4 mb-4">
        <div>
          <label class="text-sm font-medium text-gray-700">Base vacaciones si integral</label>
          <select id="p-critvac" class="w-full border rounded px-3 py-2 input-focus">
            <option value="70" selected>70%</option>
            <option value="100">100%</option>
          </select>
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Salario pendiente (días del mes)</label>
          <input id="p-diasmes" type="number" step="1" min="0" max="31" class="w-full border rounded px-3 py-2 input-focus" value="0">
        </div>
        <div class="flex items-end">
          <button id="btn-prest" class="w-full bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded">
            Calcular prestaciones
          </button>
        </div>
      </div>

      <!-- Resultado prestaciones -->
      <div id="res-prest" class="hidden border rounded-lg p-4 bg-gray-50">
        <h3 class="font-semibold mb-2">Resultado</h3>
        <div class="grid grid-cols-1 sm:grid-cols-2 gap-3">
          <div class="p-3 bg-white rounded border">
            <p class="text-gray-500 text-sm">Cesantías</p>
            <p id="p-out-ces" class="text-xl font-bold">$0</p>
          </div>
          <div class="p-3 bg-white rounded border">
            <p class="text-gray-500 text-sm">Intereses (12% a.a.)</p>
            <p id="p-out-int" class="text-xl font-bold">$0</p>
          </div>
          <div class="p-3 bg-white rounded border">
            <p class="text-gray-500 text-sm">Prima de servicios</p>
            <p id="p-out-pri" class="text-xl font-bold">$0</p>
          </div>
          <div class="p-3 bg-white rounded border">
            <p class="text-gray-500 text-sm">Vacaciones</p>
            <p id="p-out-vac" class="text-xl font-bold">$0</p>
          </div>
          <div class="p-3 bg-white rounded border">
            <p class="text-gray-500 text-sm">Salario pendiente</p>
            <p id="p-out-salpend" class="text-xl font-bold">$0</p>
          </div>
          <div class="p-3 bg-white rounded border">
            <p class="text-gray-500 text-sm">Total prestaciones</p>
            <p id="p-out-total" class="text-2xl font-extrabold">$0</p>
          </div>
        </div>
        <p class="text-xs text-gray-500 mt-3">Base ces/prima incluye auxilio si salario ≤ 2 SMMLV y marcaste “Sí”. Vacaciones no incluyen auxilio.</p>
      </div>
    </div>
  </section>

  <!-- PANEL: Horas y Recargos -->
  <section id="tab-horas" class="tab-panel hidden">
    <div class="bg-white rounded-xl shadow border p-6">
      <h2 class="text-xl font-semibold mb-2">Horas y recargos</h2>
      <p class="text-sm text-gray-600 mb-4">Calcula el promedio mensual de variables (para copiarlo al campo “Otros factores” del módulo Prestaciones).</p>

      <div id="err-horas" class="hidden mb-3 text-sm text-red-700 bg-red-50 border border-red-200 rounded p-3"></div>

      <div class="grid grid-cols-1 sm:grid-cols-4 gap-4 mb-4">
        <div>
          <label class="text-sm font-medium text-gray-700">Salario mensual</label>
          <input id="h-sal" type="number" step="1" min="1" class="w-full border rounded px-3 py-2 input-focus" placeholder="3000000">
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Jornada semanal (h)</label>
          <input id="h-jorn" type="number" step="1" min="1" max="48" class="w-full border rounded px-3 py-2 input-focus" value="44">
          <p class="text-xs text-gray-500 mt-1">Aprox. horas/mes usadas = (jornada/6)×30</p>
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Horas/mes usadas</label>
          <input id="h-hmes" type="number" step="1" min="1" class="w-full border rounded px-3 py-2 input-focus" value="220">
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Fecha de corte</label>
          <input id="h-fc" type="date" class="w-full border rounded px-3 py-2 input-focus">
          <p class="text-xs text-gray-500 mt-1">Para recargo dominical escalonado</p>
        </div>
      </div>

      <div class="grid grid-cols-1 sm:grid-cols-4 gap-4 mb-4">
        <div><label class="text-sm font-medium text-gray-700">Recargo nocturno</label><input id="h-rn" type="number" step="0.01" min="0" class="w-full border rounded px-3 py-2 input-focus" value="0"></div>
        <div><label class="text-sm font-medium text-gray-700">Hora extra diurna</label><input id="h-hed" type="number" step="0.01" min="0" class="w-full border rounded px-3 py-2 input-focus" value="0"></div>
        <div><label class="text-sm font-medium text-gray-700">Hora extra nocturna</label><input id="h-hen" type="number" step="0.01" min="0" class="w-full border rounded px-3 py-2 input-focus" value="0"></div>
        <div><label class="text-sm font-medium text-gray-700">Dominical/festivo diurno</label><input id="h-dfd" type="number" step="0.01" min="0" class="w-full border rounded px-3 py-2 input-focus" value="0"></div>
        <div><label class="text-sm font-medium text-gray-700">Dominical/festivo nocturno</label><input id="h-dfn" type="number" step="0.01" min="0" class="w-full border rounded px-3 py-2 input-focus" value="0"></div>
        <div><label class="text-sm font-medium text-gray-700">Extra D/F diurna</label><input id="h-hedf" type="number" step="0.01" min="0" class="w-full border rounded px-3 py-2 input-focus" value="0"></div>
        <div><label class="text-sm font-medium text-gray-700">Extra D/F nocturna</label><input id="h-henf" type="number" step="0.01" min="0" class="w-full border rounded px-3 py-2 input-focus" value="0"></div>
        <div class="flex items-end">
          <button id="btn-horas" class="w-full bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded">Calcular variables</button>
        </div>
      </div>

      <div id="res-horas" class="hidden border rounded-lg p-4 bg-gray-50">
        <h3 class="font-semibold mb-2">Resultado</h3>
        <div class="grid grid-cols-1 sm:grid-cols-3 gap-3">
          <div class="p-3 bg-white rounded border"><p class="text-gray-500 text-sm">Valor hora</p><p id="h-out-vh" class="text-xl font-bold">$0</p></div>
          <div class="p-3 bg-white rounded border"><p class="text-gray-500 text-sm">Promedio variable mensual</p><p id="h-out-total" class="text-2xl font-extrabold">$0</p></div>
          <div class="p-3 bg-white rounded border"><p class="text-gray-500 text-sm">Sugerencia</p><p class="text-sm">Copia este valor en “Otros factores” del módulo Prestaciones.</p></div>
        </div>
      </div>
    </div>
  </section>

  <!-- PANEL: Indemnización -->
  <section id="tab-indemnizacion" class="tab-panel hidden">
    <div class="bg-white rounded-xl shadow border p-6">
      <h2 class="text-xl font-semibold mb-2">Indemnización por despido sin justa causa</h2>
      <p class="text-sm text-gray-600 mb-4">Elige el tipo de contrato, ingresa fechas y base. Calculamos los días y el valor.</p>

      <div id="err-indem" class="hidden mb-3 text-sm text-red-700 bg-red-50 border border-red-200 rounded p-3"></div>

      <div class="grid grid-cols-1 sm:grid-cols-4 gap-4 mb-4">
        <div>
          <label class="text-sm font-medium text-gray-700">SMMLV (COP)</label>
          <input id="i-smmlv" type="number" step="1" min="1" class="w-full border rounded px-3 py-2 input-focus" value="1423500">
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Salario mensual</label>
          <input id="i-sal" type="number" step="1" min="1" class="w-full border rounded px-3 py-2 input-focus" placeholder="3000000">
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Otros factores (promedio)</label>
          <input id="i-fact" type="number" step="1" min="0" class="w-full border rounded px-3 py-2 input-focus" value="0">
          <p class="text-xs text-gray-500 mt-1">No incluye auxilio de transporte</p>
        </div>
        <div>
          <label class="text-sm font-medium text-gray-700">Tipo de contrato</label>
          <select id="i-tipo" class="w-full border rounded px-3 py-2 input-focus">
            <option value="indefinido">Indefinido</option>
            <option value="fijo">Término fijo</option>
          </select>
        </div>
      </div>

      <div class="grid grid-cols-1 sm:grid-cols-3 gap-4 mb-4">
        <div><label class="text-sm font-medium text-gray-700">Inicio contrato</label><input id="i-inicio" type="date" class="w-full border rounded px-3 py-2 input-focus"></div>
        <div><label class="text-sm font-medium text-gray-700">Terminación</label><input id="i-fin" type="date" class="w-full border rounded px-3 py-2 input-focus"></div>
        <div id="i-venc-wrap" class="hidden"><label class="text-sm font-medium text-gray-700">Vencimiento pactado (fijo)</label><input id="i-venc" type="date" class="w-full border rounded px-3 py-2 input-focus"></div>
      </div>

      <div class="flex items-end mb-4">
        <button id="btn-indem" class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded">Calcular indemnización</button>
      </div>

      <div id="res-indem" class="hidden border rounded-lg p-4 bg-gray-50">
        <h3 class="font-semibold mb-2">Resultado</h3>
        <div class="grid grid-cols-1 sm:grid-cols-3 gap-3">
          <div class="p-3 bg-white rounded border"><p class="text-gray-500 text-sm">Base usada</p><p id="i-out-base" class="text-xl font-bold">$0</p></div>
          <div class="p-3 bg-white rounded border"><p class="text-gray-500 text-sm">Días indemnizatorios</p><p id="i-out-dias" class="text-xl font-bold">0</p></div>
          <div class="p-3 bg-white rounded border"><p class="text-gray-500 text-sm">Valor indemnización</p><p id="i-out-valor" class="text-2xl font-extrabold">$0</p></div>
        </div>
        <p class="text-xs text-gray-500 mt-3">Indefinido: 30/20 días el primer año y 20/15 días por cada año adicional (según si supera 10 SMMLV). Fijo: lo que falte al vencimiento, mínimo 15 días.</p>
      </div>
    </div>
  </section>

  <!-- Nota legal -->
  <p class="text-xs text-gray-500 mt-4">Herramienta educativa. Verifica casos con suspensiones/licencias/cambios salariales con soporte jurídico.</p>
</div>

<script>
  // ===== Helpers comunes =====
  const $ = s => document.querySelector(s);
  const $$ = s => document.querySelectorAll(s);
  const money = n => new Intl.NumberFormat('es-CO',{style:'currency',currency:'COP',minimumFractionDigits:0,maximumFractionDigits:0}).format(Math.round(n||0));
  const d360 = (fi,fc) => { const s=new Date(fi), e=new Date(fc); if(isNaN(s)||isNaN(e)||e<s) throw Error('Fechas inválidas'); const d=Math.floor((e-s)/86400000)+1; return Math.min(d,360); };
  const dReal = (fi,fc) => { const s=new Date(fi), e=new Date(fc); if(isNaN(s)||isNaN(e)) return 0; return Math.max(0,Math.floor((e-s)/86400000)+1); };
  const vhora = (sal, hmes) => sal / (hmes||220);

  function showErr(id,msg){ const el=$(id); el.textContent=msg; el.classList.remove('hidden'); }
  function hideErr(id){ $(id).classList.add('hidden'); $(id).textContent=''; }

  // Tabs
  function setTab(name){
    $$('.tab-btn').forEach(b=>b.classList.toggle('active', b.dataset.tab===name));
    $$('.tab-panel').forEach(p=>p.classList.toggle('hidden', p.id !== 'tab-'+name));
    if(window.lucide) lucide.createIcons();
  }
  $$('.tab-btn').forEach(b=> b.addEventListener('click',()=> setTab(b.dataset.tab)));
  document.addEventListener('DOMContentLoaded',()=>{ setTab('prestaciones'); if(window.lucide) lucide.createIcons(); });

  // ===== Prestaciones =====
  function baseCesPrima(sal,fact,recibeAux,smmlv,aux){ let base=sal+(fact||0); if(recibeAux && sal <= 2*smmlv) base+=aux; return base; }
  function baseVac(sal,fact,integral,crit){ if(integral){ const k=(crit==='100')?1:0.7; return sal*k+(fact||0); } return sal+(fact||0); }
  function salarioPendiente(sal,dias){ if(!dias||dias<=0) return 0; return (sal/30)*Math.min(Math.max(dias,0),31); }

  $('#btn-prest').addEventListener('click', e=>{
    e.preventDefault(); hideErr('#err-prest');
    try{
      const smmlv = parseFloat($('#p-smmlv').value)||0;
      const aux   = parseFloat($('#p-aux').value)||0;
      const sal   = parseFloat($('#p-sal').value)||0;
      const fact  = parseFloat($('#p-fact').value)||0;
      const rec   = $('#p-aux-recibe').value==='si';
      const integral = $('#p-integral').value==='si';
      const crit  = $('#p-critvac').value;
      const fi = $('#p-fi').value, fc = $('#p-fc').value;
      if(!fi||!fc) throw Error('Indica fechas de inicio y corte.');
      if(sal<=0) throw Error('El salario mensual debe ser mayor a cero.');

      const dias = d360(fi,fc);
      const baseCP = baseCesPrima(sal,fact,rec,smmlv,aux);
      const baseV  = baseVac(sal,fact,integral,crit);

      const ces  = integral?0:(baseCP*dias/360);
      const inti = integral?0:(ces*0.12*(dias/360));
      const pri  = integral?0:(baseCP*dias/360);
      const vac  = (baseV*dias/720);
      const salp = salarioPendiente(sal, parseFloat($('#p-diasmes').value)||0);
      const total= ces+inti+pri+vac+salp;

      $('#p-out-ces').textContent = money(ces);
      $('#p-out-int').textContent = money(inti);
      $('#p-out-pri').textContent = money(pri);
      $('#p-out-vac').textContent = money(vac);
      $('#p-out-salpend').textContent = money(salp);
      $('#p-out-total').textContent = money(total);
      $('#res-prest').classList.remove('hidden');
    }catch(err){ showErr('#err-prest', err.message||'Error en el cálculo.'); }
  });

  // ===== Horas y recargos =====
  function pctDominical(fc){
    const d=new Date(fc); if(isNaN(d)) return 0.75; const k=d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate();
    if(k>=20270701) return 1.00; if(k>=20260701) return 0.90; if(k>=20250701) return 0.80; return 0.75;
  }
  $('#btn-horas').addEventListener('click', e=>{
    e.preventDefault(); hideErr('#err-horas');
    try{
      const sal = parseFloat($('#h-sal').value)||0;
      if(sal<=0) throw Error('El salario mensual debe ser mayor a cero.');
      const j   = parseFloat($('#h-jorn').value)||44;
      const hmes= parseFloat($('#h-hmes').value)||Math.round((j/6)*30);
      const vh  = vhora(sal,hmes);
      const fc  = $('#h-fc').value; const pdf = pctDominical(fc);

      const rn = parseFloat($('#h-rn').value)||0;
      const hed= parseFloat($('#h-hed').value)||0;
      const hen= parseFloat($('#h-hen').value)||0;
      const dfd= parseFloat($('#h-dfd').value)||0;
      const dfn= parseFloat($('#h-dfn').value)||0;
      const hedf=parseFloat($('#h-hedf').value)||0;
      const henf=parseFloat($('#h-henf').value)||0;

      const total =
        vh*rn*0.35 + vh*hed*0.25 + vh*hen*0.75 +
        vh*dfd*pdf + vh*dfn*(pdf+0.35) +
        vh*hedf*(pdf+0.25) + vh*henf*(pdf+0.75);

      $('#h-out-vh').textContent = money(vh);
      $('#h-out-total').textContent = money(total);
      $('#res-horas').classList.remove('hidden');
    }catch(err){ showErr('#err-horas', err.message||'Error en el cálculo.'); }
  });

  // ===== Indemnización =====
  function indemIndefinido(base,smmlv,ini,fin){
    const dias = dReal(ini,fin); if(dias<=0) return {d:0,v:0};
    const alto = base > (10*smmlv);
    const first = alto?20:30; const add=alto?15:20;
    if(dias<=360){ const d=first*(dias/360); return {d, v:(base/30)*d}; }
    const rest = dias-360; const d = first + add*(Math.floor(rest/360)) + add*((rest%360)/360);
    return {d, v:(base/30)*d};
  }
  function indemFijo(base,fin,venc){
    const dias = Math.max(0,dReal(fin,venc)); let d=dias; if(d>0 && d<15) d=15; return {d,v:(base/30)*d};
  }

  $('#i-tipo').addEventListener('change',()=>{
    const fijo = $('#i-tipo').value==='fijo';
    $('#i-venc-wrap').classList.toggle('hidden', !fijo);
  });

  $('#btn-indem').addEventListener('click', e=>{
    e.preventDefault(); hideErr('#err-indem');
    try{
      const smmlv=parseFloat($('#i-smmlv').value)||0;
      const sal  =parseFloat($('#i-sal').value)||0;
      if(sal<=0) throw Error('El salario mensual debe ser mayor a cero.');
      const fact =parseFloat($('#i-fact').value)||0;
      const base = sal + fact; // sin auxilio
      const tipo = $('#i-tipo').value;
      const ini  = $('#i-inicio').value, fin = $('#i-fin').value;
      if(!ini||!fin) throw Error('Indica fechas de inicio y terminación.');

      let d=0,v=0;
      if(tipo==='indefinido'){
        ({d,v} = indemIndefinido(base,smmlv,ini,fin));
      }else{
        const venc = $('#i-venc').value;
        if(!venc) throw Error('Indica vencimiento pactado para contrato fijo.');
        ({d,v} = indemFijo(base,fin,venc));
      }

      $('#i-out-base').textContent = money(base);
      $('#i-out-dias').textContent = Math.round(d);
      $('#i-out-valor').textContent = money(v);
      $('#res-indem').classList.remove('hidden');
    }catch(err){ showErr('#err-indem', err.message||'Error en el cálculo.'); }
  });
</script>



    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Flexetlit.com%2Fwelcome-to-the-gutenberg-editor%2F&amp;linkname=Welcome%20to%20the%20Gutenberg%20Editor" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Flexetlit.com%2Fwelcome-to-the-gutenberg-editor%2F&amp;linkname=Welcome%20to%20the%20Gutenberg%20Editor" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Flexetlit.com%2Fwelcome-to-the-gutenberg-editor%2F&amp;linkname=Welcome%20to%20the%20Gutenberg%20Editor" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Flexetlit.com%2Fwelcome-to-the-gutenberg-editor%2F&#038;title=Welcome%20to%20the%20Gutenberg%20Editor" data-a2a-url="https://lexetlit.com/welcome-to-the-gutenberg-editor/" data-a2a-title="Welcome to the Gutenberg Editor"></a></p><p>The post <a href="https://lexetlit.com/welcome-to-the-gutenberg-editor/">Welcome to the Gutenberg Editor</a> appeared first on <a href="https://lexetlit.com">Lex Et Litterae S.A.S</a>.</p>
<p>Read more at <a href="https://lexetlit.com/welcome-to-the-gutenberg-editor/">Lex Et Litterae S.A.S</a></p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3280</post-id>	</item>
	</channel>
</rss>
