@llumi/design-system 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
2
2
  const n = /* @__PURE__ */ new Set();
3
3
  function r(e, a) {
4
4
  if (typeof document > "u" || n.has(e)) return;
package/base.css CHANGED
@@ -1,2 +1,2 @@
1
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
2
2
  :root{--llumi-white:oklch(100% 0 0);--llumi-zinc-50:oklch(98.5% 0 0);--llumi-zinc-100:oklch(96.7% .001 286.375);--llumi-zinc-200:oklch(92% .004 286.32);--llumi-zinc-300:oklch(87.1% .006 286.286);--llumi-zinc-400:oklch(70.5% .015 286.067);--llumi-zinc-500:oklch(55.2% .016 285.938);--llumi-zinc-700:oklch(37% .013 285.805);--llumi-zinc-800:oklch(27.4% .006 286.033);--llumi-zinc-900:oklch(21% .006 285.885);--llumi-zinc-950:oklch(14.1% .005 285.823);--llumi-purple-100:oklch(94.6% .033 307.174);--llumi-purple-300:oklch(82.7% .119 306.383);--llumi-purple-400:oklch(71.4% .203 305.504);--llumi-purple-600:oklch(55.8% .288 302.321);--llumi-purple-700:oklch(49.6% .265 301.924);--llumi-pink-100:oklch(94.8% .028 342.258);--llumi-pink-600:oklch(59.2% .249 .584);--llumi-pink-700:oklch(52.5% .223 3.958);--llumi-green-100:oklch(96.2% .044 156.743);--llumi-green-600:oklch(62.7% .194 149.214);--llumi-red-100:oklch(93.6% .032 17.717);--llumi-red-600:oklch(57.7% .245 27.325);--llumi-amber-100:oklch(96.2% .059 95.617);--llumi-amber-600:oklch(66.6% .179 58.318);--llumi-color-bg:var(--llumi-zinc-50);--llumi-color-surface:var(--llumi-white);--llumi-color-fg:var(--llumi-zinc-900);--llumi-color-muted:var(--llumi-zinc-500);--llumi-color-border:var(--llumi-zinc-200);--llumi-color-primary:var(--llumi-purple-600);--llumi-color-primary-hover:var(--llumi-purple-700);--llumi-color-primary-subtle:var(--llumi-purple-100);--llumi-color-on-primary:var(--llumi-white);--llumi-color-accent:var(--llumi-pink-600);--llumi-color-accent-subtle:var(--llumi-pink-100);--llumi-color-on-accent:var(--llumi-white);--llumi-color-success:var(--llumi-green-600);--llumi-color-success-subtle:var(--llumi-green-100);--llumi-color-danger:var(--llumi-red-600);--llumi-color-danger-subtle:var(--llumi-red-100);--llumi-color-warning:var(--llumi-amber-600);--llumi-color-warning-subtle:var(--llumi-amber-100);--llumi-color-link:var(--llumi-purple-600);--llumi-color-link-hover:var(--llumi-purple-700);--llumi-color-ring:var(--llumi-color-primary);--llumi-radius-sm:.25rem;--llumi-radius:.5rem;--llumi-radius-lg:.75rem;--llumi-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--llumi-font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--llumi-text-xs:.75rem;--llumi-text-sm:.875rem;--llumi-text-base:1rem;--llumi-text-lg:1.125rem;--llumi-text-xl:1.25rem;--llumi-text-2xl:1.5rem;--llumi-text-3xl:1.875rem;--llumi-text-4xl:2.25rem;--llumi-leading:1.5;--llumi-leading-tight:1.25;--llumi-font-weight-normal:400;--llumi-font-weight-medium:500;--llumi-font-weight-semibold:600;--llumi-font-weight-bold:700;--llumi-space:1rem;--buncss-light:initial;--buncss-dark: ;color-scheme:light}[data-theme=dark]{--llumi-color-bg:var(--llumi-zinc-950);--llumi-color-surface:var(--llumi-zinc-900);--llumi-color-fg:var(--llumi-zinc-50);--llumi-color-muted:var(--llumi-zinc-400);--llumi-color-border:var(--llumi-zinc-800);--llumi-color-link:var(--llumi-purple-400);--llumi-color-link-hover:var(--llumi-purple-300);--buncss-light: ;--buncss-dark:initial;color-scheme:dark}[data-theme=light]{--llumi-color-bg:var(--llumi-zinc-50);--llumi-color-surface:var(--llumi-white);--llumi-color-fg:var(--llumi-zinc-900);--llumi-color-muted:var(--llumi-zinc-500);--llumi-color-border:var(--llumi-zinc-200);--llumi-color-link:var(--llumi-purple-600);--llumi-color-link-hover:var(--llumi-purple-700);--buncss-light:initial;--buncss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--llumi-color-bg:var(--llumi-zinc-950);--llumi-color-surface:var(--llumi-zinc-900);--llumi-color-fg:var(--llumi-zinc-50);--llumi-color-muted:var(--llumi-zinc-400);--llumi-color-border:var(--llumi-zinc-800);--llumi-color-link:var(--llumi-purple-400);--llumi-color-link-hover:var(--llumi-purple-300);--buncss-light: ;--buncss-dark:initial;color-scheme:dark}}:where(html){font-family:var(--llumi-font-sans);line-height:var(--llumi-leading);-webkit-text-size-adjust:100%}:where(body){background:var(--llumi-color-bg);color:var(--llumi-color-fg);font-size:var(--llumi-text-base);line-height:var(--llumi-leading);margin:0}:where(h1,h2,h3,h4,h5,h6){margin:0 0 var(--llumi-space);line-height:var(--llumi-leading-tight);font-weight:var(--llumi-font-weight-semibold);color:var(--llumi-color-fg)}:where(h1){font-size:var(--llumi-text-4xl)}:where(h2){font-size:var(--llumi-text-3xl)}:where(h3){font-size:var(--llumi-text-2xl)}:where(h4){font-size:var(--llumi-text-xl)}:where(h5){font-size:var(--llumi-text-lg)}:where(h6){font-size:var(--llumi-text-base)}:where(p,ul,ol,dl,blockquote,pre,table,figure){margin:0 0 var(--llumi-space)}:where(a){color:var(--llumi-color-link);text-decoration:underline;text-underline-offset:2px}:where(a:hover){color:var(--llumi-color-link-hover)}:where(strong,b){font-weight:var(--llumi-font-weight-semibold)}:where(small){font-size:var(--llumi-text-sm)}:where(mark){background:var(--llumi-color-warning-subtle);color:var(--llumi-color-fg);border-radius:var(--llumi-radius-sm);padding:0 .2em}:where(ul,ol){padding-left:1.5rem}:where(li){margin:.25rem 0}:where(blockquote){border-left:3px solid var(--llumi-color-border);padding-left:var(--llumi-space);color:var(--llumi-color-muted)}:where(hr){border:0;border-top:1px solid var(--llumi-color-border);margin:calc(var(--llumi-space)*1.5)0}:where(code,kbd,samp){font-family:var(--llumi-font-mono);font-size:.9em}:where(code){background:var(--llumi-color-surface);border:1px solid var(--llumi-color-border);border-radius:var(--llumi-radius-sm);padding:.1em .35em}:where(pre){background:var(--llumi-color-surface);border:1px solid var(--llumi-color-border);border-radius:var(--llumi-radius);padding:var(--llumi-space);overflow:auto}:where(pre) :where(code){background:0 0;border:0;padding:0}:where(kbd){background:var(--llumi-color-surface);border:1px solid var(--llumi-color-border);border-radius:var(--llumi-radius-sm);padding:.1em .4em}:where(table){border-collapse:collapse;width:100%}:where(caption){text-align:left;color:var(--llumi-color-muted);padding-bottom:.5rem}:where(th,td){text-align:left;border-bottom:1px solid var(--llumi-color-border);padding:.5rem .75rem}:where(th){font-weight:var(--llumi-font-weight-semibold)}:where(input,textarea,select){font:inherit;color:var(--llumi-color-fg);background:var(--llumi-color-surface);border:1px solid var(--llumi-color-border);border-radius:var(--llumi-radius);padding:.5rem .75rem}:where(input:focus-visible,textarea:focus-visible,select:focus-visible){outline:2px solid var(--llumi-color-ring);outline-offset:1px}:where(button){font:inherit;font-weight:var(--llumi-font-weight-medium);color:var(--llumi-color-on-primary);background:var(--llumi-color-primary);border-radius:var(--llumi-radius);cursor:pointer;border:1px solid #0000;padding:.5rem 1rem}:where(button:hover){background:var(--llumi-color-primary-hover)}:where(button:focus-visible){outline:2px solid var(--llumi-color-ring);outline-offset:1px}:where(button:has(>i:only-child)){box-sizing:border-box;display:inline-flex;border:1px solid var(--llumi-color-border,#e4e4e7);border-radius:var(--llumi-radius,.5rem);background:var(--llumi-color-surface,#fff);color:var(--llumi-color-fg,#18181b);cursor:pointer;appearance:none;justify-content:center;align-items: center;width:2.25rem;height:2.25rem;padding:0;transition:background-color .15s,color .15s,border-color .15s}@supports (color:color(display-p3 0 0 0)){:where(button:has(>i:only-child)){border:1px solid var(--llumi-color-border,color(display-p3 .894477 .894477 .905114));background:var(--llumi-color-surface,color(display-p3 1 1 1));color:var(--llumi-color-fg,color(display-p3 .0937957 .093793 .104806))}}@supports (color:lab(0% 0 0)){:where(button:has(>i:only-child)){border:1px solid var(--llumi-color-border,lab(90.6853% .399262 -1.45453));background:var(--llumi-color-surface,lab(100% 0 0));color:var(--llumi-color-fg,lab(8.30603% .618212 -2.16573))}}:where(button:has(>i:only-child):hover:not(:disabled)){background:color-mix(in oklab,var(--llumi-color-fg,#18181b)6%,transparent)}@supports (color:color(display-p3 0 0 0)){:where(button:has(>i:only-child):hover:not(:disabled)){background:color-mix(in oklab,var(--llumi-color-fg,color(display-p3 .0937957 .093793 .104806))6%,transparent)}}@supports (color:lab(0% 0 0)){:where(button:has(>i:only-child):hover:not(:disabled)){background:color-mix(in oklab,var(--llumi-color-fg,lab(8.30603% .618212 -2.16573))6%,transparent)}}:where(button:has(>i:only-child):focus-visible){outline:2px solid var(--llumi-color-ring,oklch(55.8% .288 302.321));outline-offset:2px}:where(button:has(>i:only-child):disabled){opacity:.6;cursor:default}:where(button:has(>i:only-child)>i){display:inline-flex;width:1rem;height:1rem}:where(button:has(>i:only-child)>i>svg){width:100%;height:100%}:where(button.is-done:has(>i:only-child)){border-color:var(--llumi-color-success,#00a544);color:var(--llumi-color-success,#00a544)}@supports (color:color(display-p3 0 0 0)){:where(button.is-done:has(>i:only-child)){border-color:var(--llumi-color-success,color(display-p3 .243883 .640824 .294808));color:var(--llumi-color-success,color(display-p3 .243883 .640824 .294808))}}@supports (color:lab(0% 0 0)){:where(button.is-done:has(>i:only-child)){border-color:var(--llumi-color-success,lab(59.0978% -58.6621 41.2579));color:var(--llumi-color-success,lab(59.0978% -58.6621 41.2579))}}:where(button.is-error:has(>i:only-child)){border-color:var(--llumi-color-danger,#e40014);color:var(--llumi-color-danger,#e40014)}@supports (color:color(display-p3 0 0 0)){:where(button.is-error:has(>i:only-child)){border-color:var(--llumi-color-danger,color(display-p3 .830323 .140383 .133196));color:var(--llumi-color-danger,color(display-p3 .830323 .140383 .133196))}}@supports (color:lab(0% 0 0)){:where(button.is-error:has(>i:only-child)){border-color:var(--llumi-color-danger,lab(48.4493% 77.4328 61.5452));color:var(--llumi-color-danger,lab(48.4493% 77.4328 61.5452))}}:where(button.is-working:has(>i:only-child)>i>svg){animation:llumi-spin 1s linear infinite}@keyframes llumi-spin{to{transform:rotate(360deg)}}:where(label){display:inline-block;font-weight:var(--llumi-font-weight-medium)}:where(fieldset){border:1px solid var(--llumi-color-border);border-radius:var(--llumi-radius);padding:var(--llumi-space)}:where(legend){padding:0 .5rem}:where(img,svg,video){max-width:100%;height:auto}:where(figure){margin-inline-start:0;margin-inline-end:0}:where(figcaption){color:var(--llumi-color-muted);font-size:var(--llumi-text-sm)}
package/bpmn.mjs CHANGED
@@ -1,11 +1,11 @@
1
- import { html as pe, unsafeCSS as Be } from "https://cdn.jsdelivr.net/npm/lit@3.3.3";
2
- import { property as K, state as bt, customElement as kt } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js";
3
- import { a as yt } from "./adopt-global-styles-D9108lqB.js";
4
- import { i as wt } from "./icon-button-BwB11RGC.js";
5
- import { i as _t } from "./icons-BaUbjt-v.js";
6
- import { L as Ue } from "./llumi-element-BWRwgzW5.js";
7
- import { S as Et } from "./slot-text-mSWBdWBc.js";
8
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ import { html as pe, unsafeCSS as Be } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/+esm";
2
+ import { property as K, state as bt, customElement as kt } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js/+esm";
3
+ import { a as yt } from "./adopt-global-styles-INmlhDAE.js";
4
+ import { i as wt } from "./icon-button-DAkuwHJL.js";
5
+ import { i as _t } from "./icons-Cjb2xhwP.js";
6
+ import { L as Ue } from "./llumi-element-DREcOcPF.js";
7
+ import { S as Et } from "./slot-text-D4E6m0AN.js";
8
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
9
9
  const Ct = `.bjs-container{--bjs-font-family: Arial, sans-serif;--color-grey-225-10-15: hsl(225, 10%, 15%);--color-grey-225-10-35: hsl(225, 10%, 35%);--color-grey-225-10-55: hsl(225, 10%, 55%);--color-grey-225-10-75: hsl(225, 10%, 75%);--color-grey-225-10-80: hsl(225, 10%, 80%);--color-grey-225-10-85: hsl(225, 10%, 85%);--color-grey-225-10-90: hsl(225, 10%, 90%);--color-grey-225-10-95: hsl(225, 10%, 95%);--color-grey-225-10-97: hsl(225, 10%, 97%);--color-blue-205-100-45: hsl(205, 100%, 45%);--color-blue-205-100-45-opacity-30: hsla(205, 100%, 45%, 30%);--color-blue-205-100-50: hsl(205, 100%, 50%);--color-blue-205-100-95: hsl(205, 100%, 95%);--color-green-150-86-44: hsl(150, 86%, 44%);--color-red-360-100-40: hsl(360, 100%, 40%);--color-red-360-100-45: hsl(360, 100%, 45%);--color-red-360-100-92: hsl(360, 100%, 92%);--color-red-360-100-97: hsl(360, 100%, 97%);--color-white: hsl(0, 0%, 100%);--color-black: hsl(0, 0%, 0%);--color-black-opacity-05: hsla(0, 0%, 0%, 5%);--color-black-opacity-10: hsla(0, 0%, 0%, 10%);--breadcrumbs-font-family: var(--bjs-font-family);--breadcrumbs-item-color: var(--color-blue-205-100-50);--breadcrumbs-arrow-color: var(--color-black);--drilldown-fill-color: var(--color-white);--drilldown-background-color: var(--color-blue-205-100-50)}.bjs-breadcrumbs{position:absolute;display:none;flex-wrap:wrap;align-items:center;top:30px;left:30px;padding:0;margin:0;font-family:var(--breadcrumbs-font-family);font-size:16px;line-height:normal}.bjs-breadcrumbs-shown .bjs-breadcrumbs{display:flex}.djs-palette-shown .bjs-breadcrumbs{left:90px}.djs-palette-shown.djs-palette-two-column .bjs-breadcrumbs{left:140px}.bjs-breadcrumbs li{display:inline-flex;padding-bottom:5px;align-items:center}.bjs-breadcrumbs li a{cursor:pointer;color:var(--breadcrumbs-item-color)}.bjs-breadcrumbs li:last-of-type a{color:inherit;cursor:default}.bjs-breadcrumbs li:not(:first-child):before{content:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" /><path d="M0 0h24v24H0z" fill="none" /></svg>');padding:0 8px;color:var(--breadcrumbs-arrow-color);height:1em}.bjs-breadcrumbs .bjs-crumb{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bjs-drilldown{width:20px;height:20px;padding:0;margin-left:-20px;cursor:pointer;border:none;border-radius:2px;outline:none;fill:var(--drilldown-fill-color);background-color:var(--drilldown-background-color)}.bjs-drilldown-empty{display:none}.selected .bjs-drilldown-empty{display:inherit}[data-popup=align-elements] .djs-popup-results{display:flex}[data-popup=align-elements] .djs-popup-body [data-group]+[data-group]{border-left:1px solid var(--popup-border-color)}[data-popup=align-elements] [data-group=align]{display:grid;grid-template-columns:repeat(3,1fr)}[data-popup=align-elements] .djs-popup-body .entry{padding:6px 8px}[data-popup=align-elements] .djs-popup-body .entry:not(:first-child){margin-top:0}[data-popup=align-elements] .djs-popup-entry-icon{display:block;margin:0;height:20px;width:20px}`, At = '.djs-parent{--color-grey-225-10-15: hsl(225, 10%, 15%);--color-grey-225-10-35: hsl(225, 10%, 35%);--color-grey-225-10-55: hsl(225, 10%, 55%);--color-grey-225-10-75: hsl(225, 10%, 75%);--color-grey-225-10-80: hsl(225, 10%, 80%);--color-grey-225-10-85: hsl(225, 10%, 85%);--color-grey-225-10-90: hsl(225, 10%, 90%);--color-grey-225-10-95: hsl(225, 10%, 95%);--color-grey-225-10-97: hsl(225, 10%, 97%);--color-blue-205-100-45: hsl(205, 100%, 45%);--color-blue-205-100-45-opacity-30: hsla(205, 100%, 45%, 30%);--color-blue-205-100-50: hsl(205, 100%, 50%);--color-blue-205-100-50-opacity-15: hsla(205, 100%, 50%, 15%);--color-blue-205-100-70: hsl(205, 100%, 75%);--color-blue-205-100-95: hsl(205, 100%, 95%);--color-green-150-86-44: hsl(150, 86%, 44%);--color-red-360-100-40: hsl(360, 100%, 40%);--color-red-360-100-45: hsl(360, 100%, 45%);--color-red-360-100-92: hsl(360, 100%, 92%);--color-red-360-100-97: hsl(360, 100%, 97%);--color-white: hsl(0, 0%, 100%);--color-black: hsl(0, 0%, 0%);--color-black-opacity-10: hsla(0, 0%, 0%, 10%);--color-black-opacity-30: hsla(0, 0%, 0%, 30%);--canvas-fill-color: var(--color-white);--bendpoint-fill-color: var(--color-blue-205-100-45);--bendpoint-stroke-color: var(--canvas-fill-color);--context-pad-entry-background-color: var(--color-white);--context-pad-entry-hover-background-color: var(--color-grey-225-10-95);--element-dragger-color: var(--color-blue-205-100-50);--element-hover-outline-fill-color: var(--color-blue-205-100-45);--element-selected-outline-stroke-color: var(--color-blue-205-100-50);--element-selected-outline-secondary-stroke-color: var(--color-blue-205-100-70);--lasso-fill-color: var(--color-blue-205-100-50-opacity-15);--lasso-stroke-color: var(--element-selected-outline-stroke-color);--palette-entry-color: var(--color-grey-225-10-15);--palette-entry-hover-color: var(--color-blue-205-100-45);--palette-entry-selected-color: var(--color-blue-205-100-50);--palette-separator-color: var(--color-grey-225-10-75);--palette-toggle-hover-background-color: var(--color-grey-225-10-55);--palette-background-color: var(--color-grey-225-10-97);--palette-border-color: var(--color-grey-225-10-75);--popup-font-family: "IBM Plex Sans", sans-serif;--popup-font-size: 14px;--popup-header-entry-selected-color: var(--color-blue-205-100-50);--popup-header-font-weight: bolder;--popup-header-group-divider-color: var(--color-grey-225-10-75);--popup-background-color: var(--color-white);--popup-border-color: transparent;--popup-shadow-color: var(--color-black-opacity-30);--popup-disabled-color: var(--color-grey-225-10-35);--popup-description-color: var(--color-grey-225-10-35);--popup-no-results-color: var(--color-grey-225-10-55);--popup-entry-title-color: var(--color-grey-225-10-55);--popup-entry-hover-color: var(--color-grey-225-10-95);--popup-search-border-color: var(--color-grey-225-10-75);--popup-search-focus-border-color: var(--color-blue-205-100-50);--popup-search-focus-background-color: var(--color-blue-205-100-95);--resizer-fill-color: var(--color-blue-205-100-45);--resizer-stroke-color: var(--canvas-fill-color);--search-font-family: "IBM Plex Sans", sans-serif;--search-font-size: 14px;--search-container-background-color: var(--color-white);--search-shadow-color: var(--color-black-opacity-30);--search-input-border-color: var(--color-grey-225-10-75);--search-input-focus-border-color: var(--color-blue-205-100-50);--search-input-focus-background-color: var(--color-blue-205-100-95);--search-result-hover-background-color: var(--color-grey-225-10-95);--search-result-secondary-color: var(--color-grey-225-10-55);--search-preselected-background-color: var(--color-blue-205-100-50-opacity-15);--shape-attach-allowed-stroke-color: var(--color-blue-205-100-50);--shape-connect-allowed-fill-color: var(--color-grey-225-10-97);--shape-drop-allowed-fill-color: var(--color-grey-225-10-97);--shape-drop-not-allowed-fill-color: var(--color-red-360-100-97);--shape-resize-preview-stroke-color: var(--color-blue-205-100-50);--snap-line-stroke-color: var(--color-blue-205-100-45-opacity-30);--space-tool-crosshair-stroke-color: var(--color-black);--tooltip-error-background-color: var(--color-red-360-100-97);--tooltip-error-border-color: var(--color-red-360-100-45);--tooltip-error-color: var(--color-red-360-100-45)}.djs-container svg.drop-not-ok{background:var(--shape-drop-not-allowed-fill-color)!important}.djs-container svg.new-parent{background:var(--shape-drop-allowed-fill-color)!important}.djs-container svg:focus{outline-offset:-1px}.djs-outline,.djs-selection-outline{fill:none;shape-rendering:geometricPrecision;stroke-width:2px}.djs-outline{visibility:hidden}.djs-selection-outline{stroke:var(--element-selected-outline-stroke-color)}.djs-element.selected .djs-outline{visibility:visible;stroke:var(--element-selected-outline-stroke-color)}.djs-connection.selected .djs-outline{display:none}.djs-multi-select .djs-element.selected .djs-outline,.djs-dragging-active-lasso .djs-element.selected .djs-outline{stroke:var(--element-selected-outline-secondary-stroke-color);display:block}.djs-shape.connect-ok .djs-visual>:nth-child(1){fill:var(--shape-connect-allowed-fill-color)!important}.djs-shape.connect-not-ok .djs-visual>:nth-child(1),.djs-shape.drop-not-ok .djs-visual>:nth-child(1){fill:var(--shape-drop-not-allowed-fill-color)!important}.djs-shape.new-parent .djs-visual>:nth-child(1){fill:var(--shape-drop-allowed-fill-color)!important}.drop-not-ok,.connect-not-ok,.drop-not-ok *,.connect-not-ok *{cursor:not-allowed!important}.drop-ok,.connect-ok,.drop-ok *,.connect-ok *{cursor:default!important}.djs-element.attach-ok .djs-visual>:nth-child(1){stroke-width:5px!important;stroke:var(--shape-attach-allowed-stroke-color)!important}.djs-frame.connect-not-ok .djs-visual>:nth-child(1),.djs-frame.drop-not-ok .djs-visual>:nth-child(1){stroke-width:3px!important;stroke:var(--shape-drop-not-allowed-fill-color)!important;fill:none!important}.djs-lasso-overlay{fill:var(--lasso-fill-color);stroke:var(--lasso-stroke-color);stroke-width:2px;shape-rendering:geometricPrecision;pointer-events:none}.djs-resize-overlay{fill:none;stroke-dasharray:5 1 3 1;stroke:var(--shape-resize-preview-stroke-color);pointer-events:none}.djs-resizer-hit{fill:none;pointer-events:all}.djs-resizer-visual{fill:var(--resizer-fill-color);stroke-width:1px;stroke:var(--resizer-stroke-color);shape-rendering:geometricPrecision}.djs-resizer:hover .djs-resizer-visual{stroke:var(--resizer-stroke-color);stroke-opacity:1}.djs-cursor-resize-ns,.djs-resizer-n,.djs-resizer-s{cursor:ns-resize}.djs-cursor-resize-ew,.djs-resizer-e,.djs-resizer-w{cursor:ew-resize}.djs-cursor-resize-nwse,.djs-resizer-nw,.djs-resizer-se{cursor:nwse-resize}.djs-cursor-resize-nesw,.djs-resizer-ne,.djs-resizer-sw{cursor:nesw-resize}.djs-shape.djs-resizing>.djs-outline{visibility:hidden!important}.djs-shape.djs-resizing>.djs-resizer{visibility:hidden}.djs-dragger>.djs-resizer{visibility:hidden}.djs-dragger *{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragger tspan,.djs-dragger text{fill:var(--element-dragger-color)!important;stroke:none!important}.djs-dragger marker circle,.djs-dragger marker path,.djs-dragger marker polygon,.djs-dragger marker polyline,.djs-dragger marker rect{fill:var(--element-dragger-color)!important;stroke:none!important}.djs-dragger marker text,.djs-dragger marker tspan{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragging,.djs-dragging>*{opacity:.3!important;pointer-events:none!important}.djs-visual,.djs-outline{pointer-events:none}.djs-element.attach-ok .djs-hit{stroke-width:60px!important}.djs-element>.djs-hit-all,.djs-element>.djs-hit-no-move{pointer-events:all}.djs-element>.djs-hit-stroke,.djs-element>.djs-hit-click-stroke{pointer-events:stroke}.djs-connection .djs-visual{stroke-width:2px;fill:none}.djs-cursor-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.djs-cursor-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.djs-cursor-crosshair{cursor:crosshair}.djs-cursor-move{cursor:move}.djs-cursor-resize-ns{cursor:ns-resize}.djs-cursor-resize-ew{cursor:ew-resize}.djs-snap-line{stroke:var(--snap-line-stroke-color);stroke-linecap:round;stroke-width:2px;pointer-events:none}.djs-crosshair{stroke:var(--space-tool-crosshair-stroke-color);stroke-linecap:round;stroke-width:1px;pointer-events:none;shape-rendering:geometricPrecision;stroke-dasharray:5,5}.djs-palette{position:absolute;left:20px;top:20px;box-sizing:border-box;width:48px}.djs-palette .separator{margin:5px;padding-top:5px;border:none;border-bottom:solid 1px var(--palette-separator-color);clear:both}.djs-palette .entry:before{vertical-align:initial}.djs-palette .djs-palette-toggle{cursor:pointer}.djs-palette .entry,.djs-palette .djs-palette-toggle{color:var(--palette-entry-color);font-size:30px;text-align:center}.djs-palette .entry{float:left}.djs-palette .entry img{max-width:100%}.djs-palette .djs-palette-entries:after{content:"";display:table;clear:both}.djs-palette .djs-palette-toggle:hover{background:var(--palette-toggle-hover-background-color)}.djs-palette .entry:hover{color:var(--palette-entry-hover-color)}.djs-palette .highlighted-entry{color:var(--palette-entry-selected-color)!important}.djs-palette .entry,.djs-palette .djs-palette-toggle{width:46px;height:46px;line-height:46px;cursor:default}.djs-palette.two-column.open{width:94px}.djs-palette:not(.open) .djs-palette-entries{display:none}.djs-palette:not(.open){overflow:hidden}.djs-palette.open .djs-palette-toggle{display:none}.djs-context-pad{position:absolute;display:none;pointer-events:none;line-height:1;width:72px;z-index:100}.djs-context-pad .entry{width:22px;height:22px;text-align:center;display:inline-block;font-size:22px;margin:0 2px 2px 0;border-radius:3px;cursor:default;background-color:var(--context-pad-entry-background-color);box-shadow:0 0 2px 1px var(--context-pad-entry-background-color);pointer-events:all;vertical-align:middle}.djs-context-pad .entry:hover{background:var(--context-pad-entry-hover-background-color)}.djs-context-pad.open{display:block}.djs-popup{line-height:1;box-sizing:border-box;width:min-content;background:var(--popup-background-color);overflow:hidden;position:fixed;z-index:200;box-shadow:0 2px 6px var(--popup-shadow-color);border:solid 1px var(--popup-border-color);min-width:120px;outline:none;font-size:var(--popup-font-size);font-family:var(--popup-font-family)}.djs-popup-search input{width:100%;box-sizing:border-box;font-size:var(--popup-font-size);padding:3px 6px 3px 28px;border-radius:2px;border:solid 1px var(--popup-search-border-color);line-height:21px}.djs-popup-search input:focus{background-color:var(--popup-search-focus-background-color);border:solid 1px var(--popup-search-focus-border-color);outline:none}.djs-popup-header{display:flex;align-items:stretch;line-height:20px;margin:10px 12px}.djs-popup-header .entry{border-radius:2px}.djs-popup button.entry{padding:0;background:transparent;border:0}.djs-popup-header .entry.active{color:var(--popup-header-entry-selected-color)}.djs-popup-header .entry.disabled{color:inherit}.djs-popup-header-group{display:flex;flex-direction:row;align-items:center;list-style:none;margin:0;padding:0}.djs-popup-header-group .entry{display:flex;flex-direction:row;align-items:center}.djs-popup-header-group+.djs-popup-header-group:before{content:"";width:1px;height:20px;background:var(--popup-header-group-divider-color);margin:0 5px}.djs-popup-search{position:relative;width:auto;margin:10px 12px}.djs-popup-title{font-size:var(--popup-font-size);font-weight:var(--popup-header-font-weight);flex:1;margin:0}.djs-popup-breadcrumbs{display:flex;line-height:20px;margin:10px 12px}.djs-popup-breadcrumbs-item{display:inline-flex;min-width:0;padding:0;margin:0;background:transparent;border:0;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--popup-description-color);font:inherit;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.djs-popup-breadcrumbs-item--separator:before{display:inline-block;content:"/";color:var(--popup-description-color);margin:0 4px}.djs-popup-breadcrumbs-item:hover{color:inherit;text-decoration:underline}.djs-popup-breadcrumbs-item:focus-visible{outline:1px solid var(--popup-search-focus-border-color);outline-offset:2px}.djs-popup-breadcrumbs-item--back{align-items:center;justify-content:center;flex-shrink:0;padding:2px 3px;margin-right:6px;border:1px solid var(--popup-search-border-color);border-radius:4px}.djs-popup-breadcrumbs-item--back:hover{background:#f2f3f5}.djs-popup-breadcrumbs-item--current{font-weight:var(--popup-header-font-weight);color:inherit;cursor:default}.djs-popup-breadcrumbs-item--current:hover{text-decoration:none}.djs-popup-entry-chevron{display:flex;align-items:center;margin-left:6px;color:var(--popup-description-color)}.djs-popup-search-icon{position:absolute;left:8px;top:7px}.djs-popup-search-count{margin:0 12px;font-size:11px;color:var(--popup-description-color)}.djs-popup-results{margin:7px 3px 7px 12px;list-style:none;max-height:280px;overflow:auto;padding-right:9px}.djs-popup-group{margin:0;padding:0;width:100%}.djs-popup-body .entry,.djs-popup-body .entry-header{padding:5px 7px;cursor:default;border-radius:4px}.djs-popup-body .entry-header{font-weight:var(--popup-header-font-weight);color:var(--popup-entry-title-color);padding-left:0}.djs-popup [class*=icon] .djs-popup-label,.djs-popup-label:not(:first-child){margin-left:.5em}.djs-popup [class*=icon]:before,.djs-popup-entry-icon{width:1em;height:1em;display:inline-block;font-size:1.4em;vertical-align:middle}.djs-popup-body .entry-header:not(:first-child){margin-top:8px;margin-bottom:2px}.djs-popup-body .entry{display:flex;flex-direction:row;align-items:stretch;height:min-content}.djs-popup .entry.selected{background-color:var(--popup-entry-hover-color)}.djs-popup .entry.disabled{color:var(--popup-disabled-color);cursor:not-allowed}.djs-popup-body .entry:not(:first-child){margin-top:2px}.djs-popup-entry-content{display:flex;flex-direction:column;flex:1}.djs-popup-entry-description{font-size:.9em;margin-top:.25em;color:var(--popup-description-color)}.djs-popup-label,.djs-popup-entry-description{line-height:1.4em}.djs-popup .entry,.djs-popup .entry-header{margin:1px}.djs-popup-body{flex-direction:column;width:auto}.djs-popup *::-webkit-scrollbar{width:6px}.djs-popup *::-webkit-scrollbar-thumb{border-radius:3px;background-color:#0003}.djs-popup *::-webkit-scrollbar-track{box-shadow:none;background:transparent;margin:0;padding:5px}.djs-popup-no-results{padding:0 12px 12px;color:var(--popup-no-results-color)}.djs-popup-entry-docs{display:none;margin-left:3px;color:var(--popup-description-color)}.djs-popup-body .entry:focus-within .djs-popup-entry-docs,.djs-popup-body .entry:focus .djs-popup-entry-docs,.djs-popup-body .entry:hover .djs-popup-entry-docs{display:inline}.djs-popup-entry-docs svg{vertical-align:middle;margin:2px}.djs-palette{background:var(--palette-background-color);border:solid 1px var(--palette-border-color);border-radius:2px}.djs-segment-dragger,.djs-bendpoint{display:none}.djs-segment-dragger .djs-visual{display:none;fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px;stroke-opacity:1}.djs-segment-dragger:hover .djs-visual{display:block}.djs-bendpoint .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px}.djs-segment-dragger:hover,.djs-bendpoints.hover .djs-segment-dragger,.djs-bendpoints.selected .djs-segment-dragger,.djs-bendpoint:hover,.djs-bendpoints.hover .djs-bendpoint,.djs-bendpoints.selected .djs-bendpoint{display:block}.djs-drag-active .djs-bendpoints *{display:none}.djs-bendpoints:not(.hover) .floating{display:none}.djs-segment-dragger:hover .djs-visual,.djs-segment-dragger.djs-dragging .djs-visual,.djs-bendpoint:hover .djs-visual,.djs-bendpoint.floating .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-opacity:1}.djs-bendpoint.floating .djs-hit{pointer-events:none}.djs-segment-dragger .djs-hit,.djs-bendpoint .djs-hit{fill:none;pointer-events:all}.djs-segment-dragger.horizontal .djs-hit{cursor:ns-resize}.djs-segment-dragger.vertical .djs-hit{cursor:ew-resize}.djs-segment-dragger.djs-dragging .djs-hit{pointer-events:none}.djs-updating,.djs-updating>*{pointer-events:none!important}.djs-updating .djs-context-pad,.djs-updating .djs-outline,.djs-updating .djs-bendpoint,.djs-multi-select .djs-bendpoint,.djs-multi-select .djs-segment-dragger,.connect-ok .djs-bendpoint,.connect-not-ok .djs-bendpoint,.drop-ok .djs-bendpoint,.drop-not-ok .djs-bendpoint{display:none!important}.djs-segment-dragger.djs-dragging,.djs-bendpoint.djs-dragging{display:block;opacity:1}.djs-tooltip-error{width:160px;padding:6px;background:var(--tooltip-error-background-color);border:solid 1px var(--tooltip-error-border-color);border-radius:2px;color:var(--tooltip-error-color);font-size:12px;line-height:16px;opacity:.75}.djs-tooltip-error:hover{opacity:1}.djs-search-open .djs-context-pad{display:none}.djs-search-open .djs-connection.selected .djs-outline{display:block}.djs-search-container{position:absolute;top:20px;left:0;right:0;margin-left:auto;margin-right:auto;width:25%;min-width:300px;max-width:400px;z-index:10;font-family:var(--search-font-family);font-size:var(--search-font-size);border-radius:2px;box-shadow:0 2px 6px var(--search-shadow-color)}.djs-search-container:not(.open){display:none}.djs-search-input{position:relative}.djs-search-input svg{position:absolute;left:8px;top:7px}.djs-search-input input{font-size:var(--search-font-size);width:100%;padding:3px 6px 3px 28px;border:1px solid var(--search-input-border-color);border-radius:2px;box-sizing:border-box;line-height:21px}.djs-search-input input:focus{background-color:var(--search-input-focus-background-color);border:solid 1px var(--search-input-focus-border-color);outline:none}.djs-search-results{position:relative;overflow-y:auto;max-height:200px;background:var(--search-container-background-color)}.djs-search-result{padding:6px 8px}.djs-search-result-primary{margin:0 0 3px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.djs-search-result-secondary{font-family:monospace;margin:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:var(--search-result-secondary-color)}.djs-search-result:hover,.djs-search-result-selected,.djs-search-result-selected:hover{background:var(--search-result-hover-background-color)}.djs-search-open .djs-element .djs-outline{fill:var(--search-preselected-background-color)!important}.djs-element-hidden,.djs-element-hidden .djs-hit,.djs-element-hidden .djs-outline,.djs-label-hidden .djs-label{display:none!important}.djs-element .djs-hit-stroke,.djs-element .djs-hit-click-stroke,.djs-element .djs-hit-all{cursor:move}', St = ":host{display:block;position:relative;width:100%;height:100%}.toolbar{position:absolute;top:.5rem;right:.5rem;z-index:1}.error{padding:1rem;border:1px solid var(--llumi-color-danger, #e53935);border-radius:var(--llumi-radius, .375rem);color:var(--llumi-color-danger, #e53935);font-size:.875rem}.error-title{margin:0;font-weight:600}.error-detail{margin:.5rem 0 0;font-size:.75rem;white-space:pre-wrap}", It = {
10
10
  "bpmn-focus-single": { stroke: "#7c3aed", fill: "#ede9fe" },
11
11
  "bpmn-error": { stroke: "#e53935", fill: "#ffcdd2" },
@@ -4888,12 +4888,12 @@ ${Lt}
4888
4888
  try {
4889
4889
  let i = Oi(t);
4890
4890
  if (this.autoLayout) {
4891
- const { layoutProcess: o } = await import("./index-BEhA78nX.js");
4891
+ const { layoutProcess: o } = await import("./index-CAsEAVKB.js");
4892
4892
  if (e !== this._seq) return;
4893
4893
  i = await o(i);
4894
4894
  }
4895
4895
  if (e !== this._seq) return;
4896
- const { default: s } = await import("https://cdn.jsdelivr.net/npm/bpmn-js@18.19.0/lib/NavigatedViewer");
4896
+ const { default: s } = await import("https://cdn.jsdelivr.net/npm/bpmn-js@18.19.0/lib/NavigatedViewer/+esm");
4897
4897
  if (e !== this._seq || (await this.updateComplete, e !== this._seq)) return;
4898
4898
  const r = new s({
4899
4899
  container: this._container
package/copy-button.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import { html as d } from "https://cdn.jsdelivr.net/npm/lit@3.3.3";
2
- import { property as u, customElement as h } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js";
3
- import { i as s } from "./icons-BaUbjt-v.js";
4
- import { L as b } from "./llumi-element-BWRwgzW5.js";
5
- import { defineMachine as m } from "https://cdn.jsdelivr.net/npm/yay-machine@1.5.0";
6
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ import { html as d } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/+esm";
2
+ import { property as u, customElement as h } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js/+esm";
3
+ import { i as s } from "./icons-Cjb2xhwP.js";
4
+ import { L as b } from "./llumi-element-DREcOcPF.js";
5
+ import { defineMachine as m } from "https://cdn.jsdelivr.net/npm/yay-machine@1.5.0/+esm";
6
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
7
7
  const p = 1e3, f = m({
8
8
  initialState: { name: "idle" },
9
9
  states: {
@@ -512,366 +512,366 @@
512
512
  },
513
513
  {
514
514
  "kind": "javascript-module",
515
- "path": "src/components/highlighter/highlighter.element.ts",
515
+ "path": "src/components/download-button/download-button.element.ts",
516
516
  "declarations": [
517
517
  {
518
518
  "kind": "class",
519
- "description": "`<llumi-highlighter>` — syntax-highlighted code block (Prism via refractor),\n4 themes, optional copy button, and line-range dimming. Shadow DOM.",
520
- "name": "LlumiHighlighter",
519
+ "description": "`<llumi-download-button>` — download-a-string-as-a-file icon button with\nsuccess/error feedback. Renders in light DOM; styled by the shared\nicon-button rules in `base.css`.",
520
+ "name": "LlumiDownloadButton",
521
521
  "members": [
522
522
  {
523
523
  "kind": "field",
524
- "name": "language",
524
+ "name": "filename",
525
525
  "type": {
526
526
  "text": "string"
527
527
  },
528
528
  "default": "\"\"",
529
- "attribute": "language"
529
+ "description": "Name of the downloaded file. Required — a click with no filename is a no-op.",
530
+ "attribute": "filename"
530
531
  },
531
532
  {
532
533
  "kind": "field",
533
- "name": "theme",
534
+ "name": "mimeType",
534
535
  "type": {
535
536
  "text": "string"
536
537
  },
537
- "default": "\"ghcolors\"",
538
- "attribute": "theme",
539
- "reflects": true
538
+ "default": "\"text/plain\"",
539
+ "description": "MIME type for the Blob.",
540
+ "attribute": "mime-type"
540
541
  },
541
542
  {
542
543
  "kind": "field",
543
- "name": "code",
544
+ "name": "title",
544
545
  "type": {
545
546
  "text": "string"
546
547
  },
547
- "default": "\"\"",
548
- "attribute": "code"
549
- },
550
- {
551
- "kind": "field",
552
- "name": "highlight",
553
- "type": {
554
- "text": "LineRange[] | undefined"
555
- }
556
- },
557
- {
558
- "kind": "field",
559
- "name": "copyButton",
560
- "type": {
561
- "text": "boolean"
562
- },
563
- "default": "true",
564
- "attribute": "copy-button"
548
+ "default": "\"Download file\"",
549
+ "description": "Tooltip + mirrored to the button's aria-label.",
550
+ "attribute": "title"
565
551
  },
566
552
  {
567
553
  "kind": "field",
568
- "name": "_tokenLines",
554
+ "name": "getValue",
569
555
  "type": {
570
- "text": "Line[]"
556
+ "text": "() => string | undefined"
571
557
  },
572
- "privacy": "private",
573
- "default": "[]"
558
+ "description": "Content source (highest precedence), JS property only — no attribute."
574
559
  },
575
560
  {
576
561
  "kind": "field",
577
- "name": "_seq",
562
+ "name": "instance",
578
563
  "type": {
579
- "text": "number"
564
+ "text": "ReturnType<typeof downloadButtonMachine.newInstance> | undefined"
580
565
  },
581
- "privacy": "private",
582
- "default": "0"
566
+ "privacy": "private"
583
567
  },
584
568
  {
585
569
  "kind": "field",
586
- "name": "_highlightTask",
570
+ "name": "unsubscribe",
587
571
  "type": {
588
- "text": "Promise<void>"
572
+ "text": "() => void | undefined"
589
573
  },
590
574
  "privacy": "private"
591
575
  },
592
576
  {
593
- "kind": "field",
594
- "name": "_warnedLang",
595
- "type": {
596
- "text": "string"
597
- },
577
+ "kind": "method",
578
+ "name": "onTransition",
598
579
  "privacy": "private",
599
- "default": "\"\""
600
- },
601
- {
602
- "kind": "field",
603
- "name": "resolvedCode",
604
- "type": {
605
- "text": "string"
606
- },
607
- "description": "Code source: `code` property, else light-DOM text content.",
608
- "readonly": true
609
- },
610
- {
611
- "kind": "field",
612
- "name": "whenHighlighted",
613
- "type": {
614
- "text": "Promise<void>"
615
- },
616
- "description": "Test hook: resolves when the in-flight highlight pass has finished.",
617
- "readonly": true
580
+ "parameters": [
581
+ {
582
+ "name": "_state",
583
+ "type": {
584
+ "text": "DownloadButtonState"
585
+ }
586
+ },
587
+ {
588
+ "name": "event",
589
+ "type": {
590
+ "text": "DownloadButtonEvent | undefined"
591
+ }
592
+ }
593
+ ]
618
594
  },
619
595
  {
620
596
  "kind": "method",
621
- "name": "runHighlight",
622
- "privacy": "private",
623
- "return": {
624
- "type": {
625
- "text": "Promise<void>"
626
- }
627
- }
597
+ "name": "onClick",
598
+ "privacy": "private"
628
599
  },
629
600
  {
630
601
  "kind": "method",
631
- "name": "renderLines",
602
+ "name": "viewFor",
632
603
  "privacy": "private",
633
604
  "return": {
634
605
  "type": {
635
- "text": "TemplateResult[]"
606
+ "text": "{\n\t\ticon: TemplateResult;\n\t\tcls: string;\n\t}"
636
607
  }
637
- }
608
+ },
609
+ "parameters": [
610
+ {
611
+ "name": "name",
612
+ "type": {
613
+ "text": "DownloadButtonState[\"name\"]"
614
+ }
615
+ }
616
+ ]
638
617
  }
639
618
  ],
640
- "attributes": [
619
+ "events": [
641
620
  {
642
- "name": "language",
621
+ "name": "llumi-download",
643
622
  "type": {
644
- "text": "string"
623
+ "text": "CustomEvent"
645
624
  },
646
- "default": "\"\"",
647
- "fieldName": "language"
625
+ "description": "on success; detail `{ filename }`"
648
626
  },
649
627
  {
650
- "name": "theme",
628
+ "name": "llumi-download-error",
629
+ "type": {
630
+ "text": "CustomEvent"
631
+ },
632
+ "description": "on failure; detail `{ error }`"
633
+ }
634
+ ],
635
+ "attributes": [
636
+ {
637
+ "name": "filename",
651
638
  "type": {
652
639
  "text": "string"
653
640
  },
654
- "default": "\"ghcolors\"",
655
- "fieldName": "theme"
641
+ "default": "\"\"",
642
+ "description": "Name of the downloaded file. Required — a click with no filename is a no-op.",
643
+ "fieldName": "filename"
656
644
  },
657
645
  {
658
- "name": "code",
646
+ "name": "mime-type",
659
647
  "type": {
660
648
  "text": "string"
661
649
  },
662
- "default": "\"\"",
663
- "fieldName": "code"
650
+ "default": "\"text/plain\"",
651
+ "description": "MIME type for the Blob.",
652
+ "fieldName": "mimeType"
664
653
  },
665
654
  {
666
- "name": "copy-button",
655
+ "name": "title",
667
656
  "type": {
668
- "text": "boolean"
657
+ "text": "string"
669
658
  },
670
- "default": "true",
671
- "fieldName": "copyButton"
659
+ "default": "\"Download file\"",
660
+ "description": "Tooltip + mirrored to the button's aria-label.",
661
+ "fieldName": "title"
672
662
  }
673
663
  ],
674
664
  "superclass": {
675
665
  "name": "LlumiElement",
676
666
  "module": "/src/shared/llumi-element"
677
667
  },
678
- "tagName": "llumi-highlighter",
668
+ "tagName": "llumi-download-button",
679
669
  "customElement": true
680
670
  }
681
671
  ],
682
672
  "exports": [
683
673
  {
684
674
  "kind": "js",
685
- "name": "LlumiHighlighter",
675
+ "name": "LlumiDownloadButton",
686
676
  "declaration": {
687
- "name": "LlumiHighlighter",
688
- "module": "src/components/highlighter/highlighter.element.ts"
677
+ "name": "LlumiDownloadButton",
678
+ "module": "src/components/download-button/download-button.element.ts"
689
679
  }
690
680
  },
691
681
  {
692
682
  "kind": "custom-element-definition",
693
- "name": "llumi-highlighter",
683
+ "name": "llumi-download-button",
694
684
  "declaration": {
695
- "name": "LlumiHighlighter",
696
- "module": "src/components/highlighter/highlighter.element.ts"
685
+ "name": "LlumiDownloadButton",
686
+ "module": "src/components/download-button/download-button.element.ts"
697
687
  }
698
688
  }
699
689
  ]
700
690
  },
701
691
  {
702
692
  "kind": "javascript-module",
703
- "path": "src/components/download-button/download-button.element.ts",
693
+ "path": "src/components/highlighter/highlighter.element.ts",
704
694
  "declarations": [
705
695
  {
706
696
  "kind": "class",
707
- "description": "`<llumi-download-button>` — download-a-string-as-a-file icon button with\nsuccess/error feedback. Renders in light DOM; styled by the shared\nicon-button rules in `base.css`.",
708
- "name": "LlumiDownloadButton",
697
+ "description": "`<llumi-highlighter>` — syntax-highlighted code block (Prism via refractor),\n4 themes, optional copy button, and line-range dimming. Shadow DOM.",
698
+ "name": "LlumiHighlighter",
709
699
  "members": [
710
700
  {
711
701
  "kind": "field",
712
- "name": "filename",
702
+ "name": "language",
713
703
  "type": {
714
704
  "text": "string"
715
705
  },
716
706
  "default": "\"\"",
717
- "description": "Name of the downloaded file. Required — a click with no filename is a no-op.",
718
- "attribute": "filename"
707
+ "attribute": "language"
719
708
  },
720
709
  {
721
710
  "kind": "field",
722
- "name": "mimeType",
711
+ "name": "theme",
723
712
  "type": {
724
713
  "text": "string"
725
714
  },
726
- "default": "\"text/plain\"",
727
- "description": "MIME type for the Blob.",
728
- "attribute": "mime-type"
715
+ "default": "\"ghcolors\"",
716
+ "attribute": "theme",
717
+ "reflects": true
729
718
  },
730
719
  {
731
720
  "kind": "field",
732
- "name": "title",
721
+ "name": "code",
733
722
  "type": {
734
723
  "text": "string"
735
724
  },
736
- "default": "\"Download file\"",
737
- "description": "Tooltip + mirrored to the button's aria-label.",
738
- "attribute": "title"
725
+ "default": "\"\"",
726
+ "attribute": "code"
739
727
  },
740
728
  {
741
729
  "kind": "field",
742
- "name": "getValue",
730
+ "name": "highlight",
743
731
  "type": {
744
- "text": "() => string | undefined"
745
- },
746
- "description": "Content source (highest precedence), JS property only — no attribute."
732
+ "text": "LineRange[] | undefined"
733
+ }
747
734
  },
748
735
  {
749
736
  "kind": "field",
750
- "name": "instance",
737
+ "name": "copyButton",
751
738
  "type": {
752
- "text": "ReturnType<typeof downloadButtonMachine.newInstance> | undefined"
739
+ "text": "boolean"
753
740
  },
754
- "privacy": "private"
741
+ "default": "true",
742
+ "attribute": "copy-button"
755
743
  },
756
744
  {
757
745
  "kind": "field",
758
- "name": "unsubscribe",
746
+ "name": "_tokenLines",
759
747
  "type": {
760
- "text": "() => void | undefined"
748
+ "text": "Line[]"
761
749
  },
762
- "privacy": "private"
750
+ "privacy": "private",
751
+ "default": "[]"
763
752
  },
764
753
  {
765
- "kind": "method",
766
- "name": "onTransition",
754
+ "kind": "field",
755
+ "name": "_seq",
756
+ "type": {
757
+ "text": "number"
758
+ },
767
759
  "privacy": "private",
768
- "parameters": [
769
- {
770
- "name": "_state",
771
- "type": {
772
- "text": "DownloadButtonState"
773
- }
774
- },
775
- {
776
- "name": "event",
777
- "type": {
778
- "text": "DownloadButtonEvent | undefined"
779
- }
780
- }
781
- ]
760
+ "default": "0"
782
761
  },
783
762
  {
784
- "kind": "method",
785
- "name": "onClick",
763
+ "kind": "field",
764
+ "name": "_highlightTask",
765
+ "type": {
766
+ "text": "Promise<void>"
767
+ },
786
768
  "privacy": "private"
787
769
  },
788
770
  {
789
- "kind": "method",
790
- "name": "viewFor",
791
- "privacy": "private",
792
- "return": {
793
- "type": {
794
- "text": "{\n\t\ticon: TemplateResult;\n\t\tcls: string;\n\t}"
795
- }
771
+ "kind": "field",
772
+ "name": "_warnedLang",
773
+ "type": {
774
+ "text": "string"
796
775
  },
797
- "parameters": [
798
- {
799
- "name": "name",
800
- "type": {
801
- "text": "DownloadButtonState[\"name\"]"
802
- }
803
- }
804
- ]
805
- }
806
- ],
807
- "events": [
776
+ "privacy": "private",
777
+ "default": "\"\""
778
+ },
808
779
  {
809
- "name": "llumi-download",
780
+ "kind": "field",
781
+ "name": "resolvedCode",
810
782
  "type": {
811
- "text": "CustomEvent"
783
+ "text": "string"
812
784
  },
813
- "description": "on success; detail `{ filename }`"
785
+ "description": "Code source: `code` property, else light-DOM text content.",
786
+ "readonly": true
814
787
  },
815
788
  {
816
- "name": "llumi-download-error",
789
+ "kind": "field",
790
+ "name": "whenHighlighted",
817
791
  "type": {
818
- "text": "CustomEvent"
792
+ "text": "Promise<void>"
819
793
  },
820
- "description": "on failure; detail `{ error }`"
794
+ "description": "Test hook: resolves when the in-flight highlight pass has finished.",
795
+ "readonly": true
796
+ },
797
+ {
798
+ "kind": "method",
799
+ "name": "runHighlight",
800
+ "privacy": "private",
801
+ "return": {
802
+ "type": {
803
+ "text": "Promise<void>"
804
+ }
805
+ }
806
+ },
807
+ {
808
+ "kind": "method",
809
+ "name": "renderLines",
810
+ "privacy": "private",
811
+ "return": {
812
+ "type": {
813
+ "text": "TemplateResult[]"
814
+ }
815
+ }
821
816
  }
822
817
  ],
823
818
  "attributes": [
824
819
  {
825
- "name": "filename",
820
+ "name": "language",
826
821
  "type": {
827
822
  "text": "string"
828
823
  },
829
824
  "default": "\"\"",
830
- "description": "Name of the downloaded file. Required — a click with no filename is a no-op.",
831
- "fieldName": "filename"
825
+ "fieldName": "language"
832
826
  },
833
827
  {
834
- "name": "mime-type",
828
+ "name": "theme",
835
829
  "type": {
836
830
  "text": "string"
837
831
  },
838
- "default": "\"text/plain\"",
839
- "description": "MIME type for the Blob.",
840
- "fieldName": "mimeType"
832
+ "default": "\"ghcolors\"",
833
+ "fieldName": "theme"
841
834
  },
842
835
  {
843
- "name": "title",
836
+ "name": "code",
844
837
  "type": {
845
838
  "text": "string"
846
839
  },
847
- "default": "\"Download file\"",
848
- "description": "Tooltip + mirrored to the button's aria-label.",
849
- "fieldName": "title"
840
+ "default": "\"\"",
841
+ "fieldName": "code"
842
+ },
843
+ {
844
+ "name": "copy-button",
845
+ "type": {
846
+ "text": "boolean"
847
+ },
848
+ "default": "true",
849
+ "fieldName": "copyButton"
850
850
  }
851
851
  ],
852
852
  "superclass": {
853
853
  "name": "LlumiElement",
854
854
  "module": "/src/shared/llumi-element"
855
855
  },
856
- "tagName": "llumi-download-button",
856
+ "tagName": "llumi-highlighter",
857
857
  "customElement": true
858
858
  }
859
859
  ],
860
860
  "exports": [
861
861
  {
862
862
  "kind": "js",
863
- "name": "LlumiDownloadButton",
863
+ "name": "LlumiHighlighter",
864
864
  "declaration": {
865
- "name": "LlumiDownloadButton",
866
- "module": "src/components/download-button/download-button.element.ts"
865
+ "name": "LlumiHighlighter",
866
+ "module": "src/components/highlighter/highlighter.element.ts"
867
867
  }
868
868
  },
869
869
  {
870
870
  "kind": "custom-element-definition",
871
- "name": "llumi-download-button",
871
+ "name": "llumi-highlighter",
872
872
  "declaration": {
873
- "name": "LlumiDownloadButton",
874
- "module": "src/components/download-button/download-button.element.ts"
873
+ "name": "LlumiHighlighter",
874
+ "module": "src/components/highlighter/highlighter.element.ts"
875
875
  }
876
876
  }
877
877
  ]
@@ -1,9 +1,9 @@
1
- import { html as u } from "https://cdn.jsdelivr.net/npm/lit@3.3.3";
2
- import { property as l, customElement as p } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js";
3
- import { i as a } from "./icons-BaUbjt-v.js";
4
- import { L as f } from "./llumi-element-BWRwgzW5.js";
5
- import { defineMachine as h } from "https://cdn.jsdelivr.net/npm/yay-machine@1.5.0";
6
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ import { html as u } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/+esm";
2
+ import { property as l, customElement as p } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js/+esm";
3
+ import { i as a } from "./icons-Cjb2xhwP.js";
4
+ import { L as f } from "./llumi-element-DREcOcPF.js";
5
+ import { defineMachine as h } from "https://cdn.jsdelivr.net/npm/yay-machine@1.5.0/+esm";
6
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
7
7
  const d = 1e3, O = h({
8
8
  initialState: { name: "idle" },
9
9
  states: {
package/highlighter.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import { nothing as f, html as h, unsafeCSS as p } from "https://cdn.jsdelivr.net/npm/lit@3.3.3";
2
- import { property as c, customElement as v } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js";
3
- import { refractor as u } from "https://cdn.jsdelivr.net/npm/refractor@5.0.0/core";
4
- import { i as w } from "./icon-button-BwB11RGC.js";
5
- import { L as b } from "./llumi-element-BWRwgzW5.js";
6
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ import { nothing as f, html as h, unsafeCSS as p } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/+esm";
2
+ import { property as c, customElement as v } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js/+esm";
3
+ import { refractor as u } from "https://cdn.jsdelivr.net/npm/refractor@5.0.0/core/+esm";
4
+ import { i as w } from "./icon-button-DAkuwHJL.js";
5
+ import { L as b } from "./llumi-element-DREcOcPF.js";
6
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
7
7
  const y = [
8
8
  "ghcolors",
9
9
  "oneLight",
@@ -207,22 +207,22 @@ const T = {
207
207
  shell: "bash",
208
208
  md: "markdown"
209
209
  }, S = {
210
- markup: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/markup"),
211
- css: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/css"),
212
- javascript: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/javascript"),
213
- jsx: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/jsx"),
214
- typescript: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/typescript"),
215
- tsx: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/tsx"),
216
- json: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/json"),
217
- bash: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/bash"),
218
- python: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/python"),
219
- rust: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/rust"),
220
- go: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/go"),
221
- java: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/java"),
222
- yaml: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/yaml"),
223
- markdown: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/markdown"),
224
- sql: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/sql"),
225
- diff: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/diff")
210
+ markup: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/markup/+esm"),
211
+ css: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/css/+esm"),
212
+ javascript: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/javascript/+esm"),
213
+ jsx: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/jsx/+esm"),
214
+ typescript: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/typescript/+esm"),
215
+ tsx: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/tsx/+esm"),
216
+ json: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/json/+esm"),
217
+ bash: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/bash/+esm"),
218
+ python: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/python/+esm"),
219
+ rust: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/rust/+esm"),
220
+ go: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/go/+esm"),
221
+ java: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/java/+esm"),
222
+ yaml: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/yaml/+esm"),
223
+ markdown: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/markdown/+esm"),
224
+ sql: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/sql/+esm"),
225
+ diff: () => import("https://cdn.jsdelivr.net/npm/refractor@5.0.0/diff/+esm")
226
226
  };
227
227
  function D(t) {
228
228
  const e = T[t] ?? t;
@@ -1,4 +1,4 @@
1
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
2
2
  const o = ":where(button:has(>i:only-child)){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:1px solid var(--llumi-color-border, oklch(92% .004 286.32));border-radius:var(--llumi-radius, .5rem);background:var(--llumi-color-surface, oklch(100% 0 0));color:var(--llumi-color-fg, oklch(21% .006 285.885));cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}:where(button:has(>i:only-child):hover:not(:disabled)){background:color-mix(in oklab,var(--llumi-color-fg, oklch(21% .006 285.885)) 6%,transparent)}:where(button:has(>i:only-child):focus-visible){outline:2px solid var(--llumi-color-ring, oklch(55.8% .288 302.321));outline-offset:2px}:where(button:has(>i:only-child):disabled){opacity:.6;cursor:default}:where(button:has(>i:only-child)>i){display:inline-flex;width:1rem;height:1rem}:where(button:has(>i:only-child)>i>svg){width:100%;height:100%}:where(button.is-done:has(>i:only-child)){border-color:var(--llumi-color-success, oklch(62.7% .194 149.214));color:var(--llumi-color-success, oklch(62.7% .194 149.214))}:where(button.is-error:has(>i:only-child)){border-color:var(--llumi-color-danger, oklch(57.7% .245 27.325));color:var(--llumi-color-danger, oklch(57.7% .245 27.325))}:where(button.is-working:has(>i:only-child)>i>svg){animation:llumi-spin 1s linear infinite}@keyframes llumi-spin{to{transform:rotate(360deg)}}";
3
3
  export {
4
4
  o as i
@@ -1,5 +1,5 @@
1
- import { svg as c, html as e } from "https://cdn.jsdelivr.net/npm/lit@3.3.3";
2
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ import { svg as c, html as e } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/+esm";
2
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
3
3
  function r(t) {
4
4
  return e`<svg
5
5
  xmlns="http://www.w3.org/2000/svg"
@@ -1,7 +1,7 @@
1
1
  var Qt = Object.defineProperty;
2
2
  var Jt = (t, e, n) => e in t ? Qt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
3
  var ze = (t, e, n) => Jt(t, typeof e != "symbol" ? e + "" : e, n);
4
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
4
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
5
5
  const Le = Object.prototype.toString, Zt = Object.prototype.hasOwnProperty;
6
6
  function Ke(t) {
7
7
  return t === void 0;
@@ -1,5 +1,5 @@
1
- import { LitElement as t, css as o } from "https://cdn.jsdelivr.net/npm/lit@3.3.3";
2
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ import { LitElement as t, css as o } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/+esm";
2
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
3
3
  const e = o`
4
4
  :host {
5
5
  box-sizing: border-box;
package/mermaid.mjs CHANGED
@@ -1,14 +1,14 @@
1
- import { select as _ } from "https://cdn.jsdelivr.net/npm/d3-selection@3.0.0";
2
- import { zoomIdentity as l, zoom as C } from "https://cdn.jsdelivr.net/npm/d3-zoom@3.0.0";
3
- import { nothing as m, html as c, unsafeCSS as d } from "https://cdn.jsdelivr.net/npm/lit@3.3.3";
4
- import { property as b, state as u, query as y, customElement as T } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js";
5
- import p from "https://cdn.jsdelivr.net/npm/mermaid@11.16.0";
6
- import "https://cdn.jsdelivr.net/npm/d3-transition@3.0.1";
7
- import { i as w } from "./icon-button-BwB11RGC.js";
8
- import { i as S } from "./icons-BaUbjt-v.js";
9
- import { L as f } from "./llumi-element-BWRwgzW5.js";
10
- import { S as E } from "./slot-text-mSWBdWBc.js";
11
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ import { select as _ } from "https://cdn.jsdelivr.net/npm/d3-selection@3.0.0/+esm";
2
+ import { zoomIdentity as l, zoom as C } from "https://cdn.jsdelivr.net/npm/d3-zoom@3.0.0/+esm";
3
+ import { nothing as m, html as c, unsafeCSS as d } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/+esm";
4
+ import { property as b, state as u, query as y, customElement as T } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js/+esm";
5
+ import p from "https://cdn.jsdelivr.net/npm/mermaid@11.16.0/+esm";
6
+ import "https://cdn.jsdelivr.net/npm/d3-transition@3.0.1/+esm";
7
+ import { i as w } from "./icon-button-DAkuwHJL.js";
8
+ import { i as S } from "./icons-Cjb2xhwP.js";
9
+ import { L as f } from "./llumi-element-DREcOcPF.js";
10
+ import { S as E } from "./slot-text-D4E6m0AN.js";
11
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
12
12
  const x = 0.01, z = 150;
13
13
  function P(r, t, e) {
14
14
  return l.translate(r.x - t, r.y - e).scale(r.k);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llumi/design-system",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "type": "module",
6
6
  "sideEffects": [
package/review.mjs CHANGED
@@ -1,15 +1,15 @@
1
- import { fromCallback as rt, setup as xt, emit as st, assign as E, stateIn as yt, enqueueActions as It, createActor as St } from "https://cdn.jsdelivr.net/npm/xstate@5.32.2";
2
- import { a as Tt } from "./adopt-global-styles-D9108lqB.js";
3
- import { tinykeys as Lt } from "https://cdn.jsdelivr.net/npm/tinykeys@3.1.0";
4
- import { html as w, css as F } from "https://cdn.jsdelivr.net/npm/lit@3.3.3";
5
- import { property as v, query as U, state as Ot, customElement as k } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js";
6
- import { classMap as A } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/directives/class-map.js";
7
- import { i as M } from "./icons-BaUbjt-v.js";
8
- import { L as C } from "./llumi-element-BWRwgzW5.js";
9
- import { autoUpdate as gt, computePosition as ut, offset as pt, flip as ft, shift as vt, size as bt } from "https://cdn.jsdelivr.net/npm/@floating-ui/dom@1.7.6";
10
- import { repeat as At } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/directives/repeat.js";
11
- import { styleMap as Dt } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/directives/style-map.js";
12
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ import { fromCallback as rt, setup as xt, emit as st, assign as E, stateIn as yt, enqueueActions as It, createActor as St } from "https://cdn.jsdelivr.net/npm/xstate@5.32.2/+esm";
2
+ import { a as Tt } from "./adopt-global-styles-INmlhDAE.js";
3
+ import { tinykeys as Lt } from "https://cdn.jsdelivr.net/npm/tinykeys@3.1.0/+esm";
4
+ import { html as w, css as F } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/+esm";
5
+ import { property as v, query as U, state as Ot, customElement as k } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/decorators.js/+esm";
6
+ import { classMap as A } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/directives/class-map.js/+esm";
7
+ import { i as M } from "./icons-Cjb2xhwP.js";
8
+ import { L as C } from "./llumi-element-DREcOcPF.js";
9
+ import { autoUpdate as gt, computePosition as ut, offset as pt, flip as ft, shift as vt, size as bt } from "https://cdn.jsdelivr.net/npm/@floating-ui/dom@1.7.6/+esm";
10
+ import { repeat as At } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/directives/repeat.js/+esm";
11
+ import { styleMap as Dt } from "https://cdn.jsdelivr.net/npm/lit@3.3.3/directives/style-map.js/+esm";
12
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
13
13
  function at(o, e) {
14
14
  const t = o.getAttribute("data-review-id");
15
15
  if (t) return t;
@@ -1,4 +1,4 @@
1
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
2
2
  function o(n) {
3
3
  var i;
4
4
  const t = n.split(`
package/theme.css CHANGED
@@ -1,2 +1,2 @@
1
- /*! @llumi/design-system v2.1.0 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.0/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
1
+ /*! @llumi/design-system v2.1.1 | (c) 2026 pAIrprog SAS | license: https://cdn.jsdelivr.net/npm/@llumi/design-system@2.1.1/LICENSE | bundled third-party components under MIT, see NOTICE | @license */
2
2
  :root{--llumi-white:oklch(100% 0 0);--llumi-zinc-50:oklch(98.5% 0 0);--llumi-zinc-100:oklch(96.7% .001 286.375);--llumi-zinc-200:oklch(92% .004 286.32);--llumi-zinc-300:oklch(87.1% .006 286.286);--llumi-zinc-400:oklch(70.5% .015 286.067);--llumi-zinc-500:oklch(55.2% .016 285.938);--llumi-zinc-700:oklch(37% .013 285.805);--llumi-zinc-800:oklch(27.4% .006 286.033);--llumi-zinc-900:oklch(21% .006 285.885);--llumi-zinc-950:oklch(14.1% .005 285.823);--llumi-purple-100:oklch(94.6% .033 307.174);--llumi-purple-300:oklch(82.7% .119 306.383);--llumi-purple-400:oklch(71.4% .203 305.504);--llumi-purple-600:oklch(55.8% .288 302.321);--llumi-purple-700:oklch(49.6% .265 301.924);--llumi-pink-100:oklch(94.8% .028 342.258);--llumi-pink-600:oklch(59.2% .249 .584);--llumi-pink-700:oklch(52.5% .223 3.958);--llumi-green-100:oklch(96.2% .044 156.743);--llumi-green-600:oklch(62.7% .194 149.214);--llumi-red-100:oklch(93.6% .032 17.717);--llumi-red-600:oklch(57.7% .245 27.325);--llumi-amber-100:oklch(96.2% .059 95.617);--llumi-amber-600:oklch(66.6% .179 58.318);--llumi-color-bg:var(--llumi-zinc-50);--llumi-color-surface:var(--llumi-white);--llumi-color-fg:var(--llumi-zinc-900);--llumi-color-muted:var(--llumi-zinc-500);--llumi-color-border:var(--llumi-zinc-200);--llumi-color-primary:var(--llumi-purple-600);--llumi-color-primary-hover:var(--llumi-purple-700);--llumi-color-primary-subtle:var(--llumi-purple-100);--llumi-color-on-primary:var(--llumi-white);--llumi-color-accent:var(--llumi-pink-600);--llumi-color-accent-subtle:var(--llumi-pink-100);--llumi-color-on-accent:var(--llumi-white);--llumi-color-success:var(--llumi-green-600);--llumi-color-success-subtle:var(--llumi-green-100);--llumi-color-danger:var(--llumi-red-600);--llumi-color-danger-subtle:var(--llumi-red-100);--llumi-color-warning:var(--llumi-amber-600);--llumi-color-warning-subtle:var(--llumi-amber-100);--llumi-color-link:var(--llumi-purple-600);--llumi-color-link-hover:var(--llumi-purple-700);--llumi-color-ring:var(--llumi-color-primary);--llumi-radius-sm:.25rem;--llumi-radius:.5rem;--llumi-radius-lg:.75rem;--llumi-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--llumi-font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--llumi-text-xs:.75rem;--llumi-text-sm:.875rem;--llumi-text-base:1rem;--llumi-text-lg:1.125rem;--llumi-text-xl:1.25rem;--llumi-text-2xl:1.5rem;--llumi-text-3xl:1.875rem;--llumi-text-4xl:2.25rem;--llumi-leading:1.5;--llumi-leading-tight:1.25;--llumi-font-weight-normal:400;--llumi-font-weight-medium:500;--llumi-font-weight-semibold:600;--llumi-font-weight-bold:700;--llumi-space:1rem;--buncss-light:initial;--buncss-dark: ;color-scheme:light}[data-theme=dark]{--llumi-color-bg:var(--llumi-zinc-950);--llumi-color-surface:var(--llumi-zinc-900);--llumi-color-fg:var(--llumi-zinc-50);--llumi-color-muted:var(--llumi-zinc-400);--llumi-color-border:var(--llumi-zinc-800);--llumi-color-link:var(--llumi-purple-400);--llumi-color-link-hover:var(--llumi-purple-300);--buncss-light: ;--buncss-dark:initial;color-scheme:dark}[data-theme=light]{--llumi-color-bg:var(--llumi-zinc-50);--llumi-color-surface:var(--llumi-white);--llumi-color-fg:var(--llumi-zinc-900);--llumi-color-muted:var(--llumi-zinc-500);--llumi-color-border:var(--llumi-zinc-200);--llumi-color-link:var(--llumi-purple-600);--llumi-color-link-hover:var(--llumi-purple-700);--buncss-light:initial;--buncss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--llumi-color-bg:var(--llumi-zinc-950);--llumi-color-surface:var(--llumi-zinc-900);--llumi-color-fg:var(--llumi-zinc-50);--llumi-color-muted:var(--llumi-zinc-400);--llumi-color-border:var(--llumi-zinc-800);--llumi-color-link:var(--llumi-purple-400);--llumi-color-link-hover:var(--llumi-purple-300);--buncss-light: ;--buncss-dark:initial;color-scheme:dark}}