@prolibu-suite/cobalt-core 0.11.1 → 0.11.3

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.
Files changed (103) hide show
  1. package/custom-elements.json +153 -34
  2. package/dist/cjs/co-button.cjs.entry.js +1 -1
  3. package/dist/cjs/co-chip_2.cjs.entry.js +2 -2
  4. package/dist/cjs/co-document-editor.cjs.entry.js +1 -1
  5. package/dist/cjs/co-modal.cjs.entry.js +27 -1
  6. package/dist/cjs/co-overlay.cjs.entry.js +205 -34
  7. package/dist/cjs/co-rich-text-editor.cjs.entry.js +2 -2
  8. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +1 -1
  9. package/dist/cjs/co-toggle-button.cjs.entry.js +1 -1
  10. package/dist/cjs/cobalt.cjs.js +1 -1
  11. package/dist/cjs/{index-oMHzCXm6.js → index-BbSD1Eyw.js} +1 -1
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/{pagination-DV43TRj9.js → pagination-S2sSAgdl.js} +26 -2
  14. package/dist/cobalt/cobalt.esm.js +1 -1
  15. package/dist/cobalt/{p-d6e7c258.entry.js → p-02ff847e.entry.js} +1 -1
  16. package/dist/cobalt/{p-87e62e2b.entry.js → p-12914c0a.entry.js} +1 -1
  17. package/dist/cobalt/p-38eb2615.entry.js +1 -0
  18. package/dist/cobalt/{p-47eca182.entry.js → p-6c7e423c.entry.js} +1 -1
  19. package/dist/cobalt/p-93063876.entry.js +1 -0
  20. package/dist/cobalt/p-9b114836.entry.js +1 -0
  21. package/dist/cobalt/{p-RVQJEYxa.js → p-Ch-Tygdb.js} +1 -1
  22. package/dist/cobalt/p-DGLDAl09.js +1 -0
  23. package/dist/cobalt/{p-3b6efb79.entry.js → p-bb7bbe70.entry.js} +1 -1
  24. package/dist/cobalt/p-e5f0d560.entry.js +1 -0
  25. package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
  26. package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
  27. package/dist/collection/components/co-button/co-button.css +15 -0
  28. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
  29. package/dist/collection/components/co-chip/co-chip.css +16 -11
  30. package/dist/collection/components/co-color-area/co-color-area.js +2 -2
  31. package/dist/collection/components/co-color-slider/co-color-slider.js +1 -1
  32. package/dist/collection/components/co-combobox/co-combobox.js +1 -1
  33. package/dist/collection/components/co-command-search/co-command-search.js +1 -1
  34. package/dist/collection/components/co-data-table/co-data-table.js +1 -1
  35. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
  36. package/dist/collection/components/co-document-editor/co-document-editor.js +5 -5
  37. package/dist/collection/components/co-modal/co-modal.js +68 -1
  38. package/dist/collection/components/co-option-list/co-option-list.css +30 -4
  39. package/dist/collection/components/co-overlay/co-overlay.css +7 -0
  40. package/dist/collection/components/co-overlay/co-overlay.js +130 -26
  41. package/dist/collection/components/co-overlay/focusTrap.js +111 -3
  42. package/dist/collection/components/co-popover/co-popover.js +1 -1
  43. package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
  44. package/dist/collection/components/co-ref-field/co-ref-field.js +4 -4
  45. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
  46. package/dist/collection/components/co-select/co-select.js +1 -1
  47. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
  48. package/dist/collection/components/co-toast/co-toast.js +2 -2
  49. package/dist/collection/components/co-toggle-button/co-toggle-button.css +43 -13
  50. package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
  51. package/dist/collection/components/co-tree-item/co-tree-item.js +2 -2
  52. package/dist/components/co-autocomplete.js +1 -1
  53. package/dist/components/co-button.js +1 -1
  54. package/dist/components/co-chip.js +1 -1
  55. package/dist/components/co-column-picker.js +1 -1
  56. package/dist/components/co-combobox.js +1 -1
  57. package/dist/components/co-command-search.js +1 -1
  58. package/dist/components/co-data-table.js +1 -1
  59. package/dist/components/co-date-picker.js +1 -1
  60. package/dist/components/co-date-range-picker.js +1 -1
  61. package/dist/components/co-date-range.js +1 -1
  62. package/dist/components/co-date-time-picker.js +1 -1
  63. package/dist/components/co-document-editor.js +1 -1
  64. package/dist/components/co-drawer.js +1 -1
  65. package/dist/components/co-modal.js +1 -1
  66. package/dist/components/co-option-list.js +1 -1
  67. package/dist/components/co-overlay.js +1 -1
  68. package/dist/components/co-ref-field.js +1 -1
  69. package/dist/components/co-rich-text-editor.js +1 -1
  70. package/dist/components/co-rich-text-viewer.js +1 -1
  71. package/dist/components/co-toggle-button.js +1 -1
  72. package/dist/components/{p-BVdCvEza.js → p-BI_VaFsx.js} +1 -1
  73. package/dist/components/{p-Cnfd6Zze.js → p-BqFBZ1PT.js} +1 -1
  74. package/dist/components/{p-Du8EpQb-.js → p-C_6szR7t.js} +1 -1
  75. package/dist/components/{p-RVQJEYxa.js → p-Ch-Tygdb.js} +1 -1
  76. package/dist/components/{p-zJ3pjFzW.js → p-DB8DGMc-.js} +1 -1
  77. package/dist/components/p-DGLDAl09.js +1 -0
  78. package/dist/components/{p-Hi57w2_2.js → p-DhPxNA2f.js} +1 -1
  79. package/dist/components/p-wUXcJGdy.js +1 -0
  80. package/dist/esm/co-button.entry.js +1 -1
  81. package/dist/esm/co-chip_2.entry.js +2 -2
  82. package/dist/esm/co-document-editor.entry.js +1 -1
  83. package/dist/esm/co-modal.entry.js +28 -2
  84. package/dist/esm/co-overlay.entry.js +205 -34
  85. package/dist/esm/co-rich-text-editor.entry.js +2 -2
  86. package/dist/esm/co-rich-text-viewer.entry.js +1 -1
  87. package/dist/esm/co-toggle-button.entry.js +1 -1
  88. package/dist/esm/cobalt.js +1 -1
  89. package/dist/esm/{index-Cpo8HTwr.js → index-CgyOJePd.js} +1 -1
  90. package/dist/esm/loader.js +1 -1
  91. package/dist/esm/{pagination-D9OfZUnY.js → pagination-BzrIQtrk.js} +26 -2
  92. package/dist/types/components/co-modal/co-modal.d.ts +23 -0
  93. package/dist/types/components/co-overlay/co-overlay.d.ts +29 -1
  94. package/dist/types/components/co-overlay/focusTrap.d.ts +24 -3
  95. package/dist/types/components.d.ts +21 -2
  96. package/package.json +4 -4
  97. package/dist/cobalt/p-1a5bec8c.entry.js +0 -1
  98. package/dist/cobalt/p-67a024dd.entry.js +0 -1
  99. package/dist/cobalt/p-9ee5bef3.entry.js +0 -1
  100. package/dist/cobalt/p-B1JT7us1.js +0 -1
  101. package/dist/cobalt/p-c4c997f3.entry.js +0 -1
  102. package/dist/components/p-B1JT7us1.js +0 -1
  103. package/dist/components/p-nrwDl_gx.js +0 -1
@@ -0,0 +1 @@
1
+ import{i as t,w as e,g as a,s,r as n,a as o,b as r,C as i,c as l,d as u,F as E,e as g,f as T,h as d,I as m,j as S,L as _,k as I,l as c,M as P,m as p,P as x,n as A,o as f,p as L,q as F,S as h,t as N,u as C,T as y,V as b,v as k,x as O,y as H,z as M,A as z,B,D as G,E as R,G as j,H as v,J as U,K as Y,N as $,O as w,Q as D,R as K,U as V,W,X,Y as Z,Z as q,_ as J}from"./p-Ch-Tygdb.js";import{C as Q,T as tt,t as et}from"./p-CRxTFT_z.js";function at(t,e){return r(t,{includeUiExtensions:!1,features:e})}var st=Object.freeze({__proto__:null,COLOR_PALETTE:Q,CalloutNode:i,CobaltTaskItem:l,CobaltTaskList:u,FIELD_SYNC_META:E,FontFamilyExtension:g,FontSizeExtension:T,FontWeightExtension:d,IMAGE_LAYOUT_MODES:m,IndentExtension:S,LetterSpacingExtension:_,LineHeightExtension:I,ListStyleExtension:c,MentionNode:P,MergeField:p,PAGE_GAP_PX:x,PAGE_SIZES:A,PAGINATION_META:f,PRESETS:L,Pagination:F,SANITIZE_CONFIGS:h,SIGNATURE_TOKEN_STYLE:N,SignatureSlot:C,TABLE_CONTEXT_ITEMS:tt,TRAILING_BREAK_CLASS:y,VariableNode:b,applyImageLayoutMode:k,collectFields:O,computePageBreaks:H,createEditor:M,defaultToolbarForPreset:z,getExtensions:r,getImageLayoutMode:B,getPrintExtensions:G,headerImageWidth:R,htmlToJson:function(e,a="task",r){if(t(a))return n(e,a,r);const i=s(e??"",a,r);return o(i,at(a,r))},isPrintPreset:t,jsonToHtml:function(n,o="task",r){if(t(o))return n?e(n,o,r):"";if(function(t){if(!t)return!0;const e=t.content;return!Array.isArray(e)||0===e.length||e.every((t=>"paragraph"===t?.type&&(!t.content||0===t.content.length)))}(n))return"";const i=a(n,at(o,r));return s(i,o,r)},jsonToText:function(t){if(!t)return"";const e=new Set(["paragraph","heading","blockquote","listItem","bulletList","orderedList","codeBlock","horizontalRule"]),a=[],s=t=>{t&&("text"!==t.type||"string"!=typeof t.text?"variable"!==t.type?"mention"!==t.type?"mergeField"!==t.type?"signatureSlot"!==t.type?"hardBreak"!==t.type?(Array.isArray(t.content)&&t.content.forEach(s),e.has(t.type)&&a.push("\n")):a.push("\n"):a.push(`⟦sig:${t.attrs?.slot??1}⟧`):a.push(t.attrs?.value||`[[${t.attrs?.name??""}]]`):a.push(`@${t.attrs?.label??""}`):a.push(`{{${t.attrs?.name??""}}}`):a.push(t.text))};return s(t),a.join("").replace(/\n{3,}/g,"\n\n").trim()},layoutBox:j,maxLengthForPreset:v,nextFreeSlot:U,normalizePrintHtml:Y,pageContentHeight:$,parseFieldToken:w,readPrintHtml:n,resolvePageSize:D,sanitize:s,sanitizeFieldName:K,serializePrintHtml:V,setFieldValuesInHtml:W,signatureBoxStyle:X,signatureSlotHtml:Z,signatureToken:q,stripBandOffsets:J,toolbarItems:et,writePrintHtml:e});export{st as R}
@@ -1 +1 @@
1
- import{r as o,h as r,a as t}from"./p-DJkaRtbb.js";const a={l:20,m:18,s:16,xs:14,sm:16},c=class{constructor(r){o(this,r),this.variant="primary",this.shape="rounded",this.size="m",this.fullWidth=!1,this.elevated=!1,this.surface="light",this.disabled=!1,this.iconWeight="regular",this.type="button",this.handleClick=()=>{if(!this.disabled){if("submit"===this.type){const o=this.el.closest("form");if(o)return void o.requestSubmit()}if("reset"===this.type){const o=this.el.closest("form");o&&o.reset()}}}}render(){var o,t;const c=null!==(t=null!==(o=this.iconSize)&&void 0!==o?o:a[this.size])&&void 0!==t?t:18,n={};return this.color&&(n.background=this.color),this.textColor&&(n.color=this.textColor),r("button",{key:"e77a3b67e23b2690a818e6ad9aa38b21b4c8f972",class:{"co-button":!0,[`co-button--${this.variant}`]:!0,[`co-button--${this.shape}`]:!0,[`co-button--${this.size}`]:!0,[`co-button--surface-${this.surface}`]:!0,"co-button--elevated":this.elevated,"co-button--disabled":this.disabled},style:Object.keys(n).length?n:void 0,type:this.type,disabled:this.disabled,"aria-label":this.ariaLabelText||void 0,onClick:this.handleClick,part:"button"},this.iconLeft?r("co-icon",{name:this.iconLeft,weight:this.iconWeight,size:c}):null,r("slot",{key:"ee52eb057c04ee3e1f5a5b2e87dc778a338d9887"},this.label),this.iconRight?r("co-icon",{name:this.iconRight,weight:this.iconWeight,size:c}):null)}get el(){return t(this)}};c.style=':host{display:inline-flex}:host([disabled]){pointer-events:none}.co-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid transparent;outline:none;font-family:var(--co-font-family-primary);font-weight:400;line-height:1;letter-spacing:var(--co-font-letter-spacing-body);white-space:nowrap;-webkit-font-smoothing:antialiased;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out), background var(--co-motion-duration-fast) var(--co-motion-ease-out), transform var(--co-motion-duration-fast) var(--co-motion-ease-out);box-sizing:border-box;-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-button--primary{background:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary);border-color:var(--co-button-border-color, color-mix(in srgb, var(--co-semantic-on-primary) 28%, transparent))}.co-button--secondary{background:color-mix(in srgb, var(--co-button-bg, var(--co-semantic-surface-secondary)) 55%, transparent);color:var(--co-button-color, var(--co-semantic-on-secondary));border-color:var(--co-button-border-color, var(--co-button-border, var(--co-semantic-border-subtle)))}.co-button--stroke{background:color-mix(in srgb, var(--co-semantic-surface-secondary) 25%, transparent);color:var(--co-semantic-text-default);border-color:var(--co-button-border-color, var(--co-semantic-border-default))}.co-button--ghost{background:transparent;color:var(--co-semantic-text-default);border-color:var(--co-button-border-color, transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.co-button--danger{background:var(--co-semantic-status-error);color:var(--co-color-base-blanco);border-color:var(--co-button-border-color, transparent)}.co-button--success{background:var(--co-semantic-status-success);color:var(--co-color-base-blanco);border-color:var(--co-button-border-color, transparent)}.co-button--rounded.co-button--l{padding:var(--co-spacing-xl) var(--co-spacing-2xl);gap:var(--co-spacing-md);font-size:var(--co-font-size-18);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--rounded.co-button--m{padding:var(--co-spacing-lg) var(--co-spacing-xl);gap:var(--co-spacing-md);font-size:var(--co-font-size-16);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--rounded.co-button--s{padding:var(--co-spacing-md) var(--co-spacing-lg);gap:var(--co-spacing-sm2);font-size:var(--co-font-size-14);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--rounded.co-button--xs{padding:var(--co-spacing-md) var(--co-spacing-lg);gap:var(--co-spacing-sm2);font-size:var(--co-font-size-12);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--square.co-button--l{padding:var(--co-spacing-lg) var(--co-spacing-xl);gap:var(--co-spacing-md);font-size:var(--co-font-size-18);border-radius:var(--co-border-radius-lg)}.co-button--square.co-button--m{padding:var(--co-spacing-md) var(--co-spacing-lg);gap:var(--co-spacing-sm2);font-size:var(--co-font-size-16);border-radius:var(--co-border-radius-sm)}.co-button--square.co-button--s{padding:var(--co-spacing-sm2) var(--co-spacing-md);gap:var(--co-spacing-sm);font-size:var(--co-font-size-14);border-radius:var(--co-border-radius-xs)}.co-button--square.co-button--xs{padding:var(--co-spacing-sm) var(--co-spacing-sm2);gap:var(--co-spacing-xs);font-size:var(--co-font-size-12);border-radius:var(--co-spacing-sm)}.co-button--disabled,.co-button:disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.co-button--primary:hover:not(:disabled){opacity:0.88}.co-button--secondary:hover:not(:disabled),.co-button--stroke:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-button--ghost:hover:not(:disabled){background:color-mix(in srgb, var(--co-semantic-surface-hover) 60%, transparent);-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-button--danger:hover:not(:disabled),.co-button--success:hover:not(:disabled){opacity:0.88}.co-button:active:not(:disabled){transform:scale(0.97);transition-duration:var(--co-motion-duration-instant)}.co-button--primary{transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out), background var(--co-motion-duration-fast) var(--co-motion-ease-out), transform var(--co-motion-duration-slow) var(--co-motion-ease-spring)}.co-button--secondary.co-button--elevated{box-shadow:var(--co-shadow-sm, 0 1px 2px 0 rgba(26, 26, 26, 0.04)), inset 0 0 0 1px var(--co-color-opacity-negro-8)}.co-button--ghost.co-button--surface-dark,.co-button--stroke.co-button--surface-dark{color:var(--co-color-base-blanco, #fff)}.co-button--ghost.co-button--surface-dark:hover:not(:disabled),.co-button--stroke.co-button--surface-dark:hover:not(:disabled){background:var(--co-color-opacity-blanco-16);-webkit-backdrop-filter:none;backdrop-filter:none}.co-button--danger.co-button--surface-dark:hover:not(:disabled){opacity:1;background:color-mix(in srgb, var(--co-semantic-status-error) 84%, var(--co-color-base-blanco, #fff))}.co-button--danger.co-button--surface-dark:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--co-color-base-blanco, #fff) 45%, transparent)}::slotted([slot="icon-left"]),::slotted([slot="icon-right"]){display:inline-flex;flex-shrink:0}.co-button>co-icon{margin-block:-1px}@supports not (background: color-mix(in srgb, red, transparent)){.co-button--primary{background:var(--co-semantic-surface-primary)}.co-button--secondary{background:var(--co-semantic-surface-secondary)}.co-button--stroke{background:transparent}}.co-button--soft{background:var(--co-semantic-surface-control);color:var(--co-semantic-text-default);border-color:var(--co-button-border-color, transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.co-button--soft:hover:not(:disabled){background:color-mix(in srgb, var(--co-semantic-surface-control), var(--co-semantic-surface-hover))}.co-button--rounded.co-button--sm{height:32px;padding:var(--co-spacing-sm2) var(--co-spacing-md);gap:var(--co-spacing-sm);font-size:var(--co-font-size-12);font-weight:500;line-height:1;letter-spacing:var(--co-font-letter-spacing-body);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--square.co-button--sm{height:32px;padding:var(--co-spacing-sm2) var(--co-spacing-md);gap:var(--co-spacing-sm);font-size:var(--co-font-size-12);font-weight:500;line-height:1;letter-spacing:var(--co-font-letter-spacing-body);border-radius:var(--co-border-radius-xs)}:host([full-width]){display:block;width:100%}:host([full-width]) .co-button{width:100%}co-icon{color:var(--co-button-icon-color, inherit)}';export{c as co_button}
1
+ import{r as o,h as r,a as t}from"./p-DJkaRtbb.js";const a={l:20,m:18,s:16,xs:14,sm:16},c=class{constructor(r){o(this,r),this.variant="primary",this.shape="rounded",this.size="m",this.fullWidth=!1,this.elevated=!1,this.surface="light",this.disabled=!1,this.iconWeight="regular",this.type="button",this.handleClick=()=>{if(!this.disabled){if("submit"===this.type){const o=this.el.closest("form");if(o)return void o.requestSubmit()}if("reset"===this.type){const o=this.el.closest("form");o&&o.reset()}}}}render(){var o,t;const c=null!==(t=null!==(o=this.iconSize)&&void 0!==o?o:a[this.size])&&void 0!==t?t:18,n={};return this.color&&(n.background=this.color),this.textColor&&(n.color=this.textColor),r("button",{key:"e77a3b67e23b2690a818e6ad9aa38b21b4c8f972",class:{"co-button":!0,[`co-button--${this.variant}`]:!0,[`co-button--${this.shape}`]:!0,[`co-button--${this.size}`]:!0,[`co-button--surface-${this.surface}`]:!0,"co-button--elevated":this.elevated,"co-button--disabled":this.disabled},style:Object.keys(n).length?n:void 0,type:this.type,disabled:this.disabled,"aria-label":this.ariaLabelText||void 0,onClick:this.handleClick,part:"button"},this.iconLeft?r("co-icon",{name:this.iconLeft,weight:this.iconWeight,size:c}):null,r("slot",{key:"ee52eb057c04ee3e1f5a5b2e87dc778a338d9887"},this.label),this.iconRight?r("co-icon",{name:this.iconRight,weight:this.iconWeight,size:c}):null)}get el(){return t(this)}};c.style=':host{display:inline-flex}:host([disabled]){pointer-events:none}.co-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid transparent;outline:none;font-family:var(--co-font-family-primary);font-weight:400;line-height:1;letter-spacing:var(--co-font-letter-spacing-body);white-space:nowrap;-webkit-font-smoothing:antialiased;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out), background var(--co-motion-duration-fast) var(--co-motion-ease-out), transform var(--co-motion-duration-fast) var(--co-motion-ease-out);box-sizing:border-box;-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-button--primary{background:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary);border-color:var(--co-button-border-color, color-mix(in srgb, var(--co-semantic-on-primary) 28%, transparent))}.co-button--secondary{background:color-mix(in srgb, var(--co-button-bg, var(--co-semantic-surface-secondary)) 55%, transparent);color:var(--co-button-color, var(--co-semantic-on-secondary));border-color:var(--co-button-border-color, var(--co-button-border, var(--co-semantic-border-subtle)))}.co-button--stroke{background:color-mix(in srgb, var(--co-semantic-surface-secondary) 25%, transparent);color:var(--co-semantic-text-default);border-color:var(--co-button-border-color, var(--co-semantic-border-default))}.co-button--ghost{background:transparent;color:var(--co-semantic-text-default);border-color:var(--co-button-border-color, transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.co-button--danger{background:var(--co-semantic-status-error);color:var(--co-color-base-blanco);border-color:var(--co-button-border-color, transparent)}.co-button--success{background:var(--co-semantic-status-success);color:var(--co-color-base-blanco);border-color:var(--co-button-border-color, transparent)}.co-button--rounded.co-button--l{padding:var(--co-spacing-xl) var(--co-spacing-2xl);gap:var(--co-spacing-md);font-size:var(--co-font-size-18);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--rounded.co-button--m{padding:var(--co-spacing-lg) var(--co-spacing-xl);gap:var(--co-spacing-md);font-size:var(--co-font-size-16);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--rounded.co-button--s{padding:var(--co-spacing-md) var(--co-spacing-lg);gap:var(--co-spacing-sm2);font-size:var(--co-font-size-14);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--rounded.co-button--xs{padding:var(--co-spacing-md) var(--co-spacing-lg);gap:var(--co-spacing-sm2);font-size:var(--co-font-size-12);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--square.co-button--l{padding:var(--co-spacing-lg) var(--co-spacing-xl);gap:var(--co-spacing-md);font-size:var(--co-font-size-18);border-radius:var(--co-border-radius-lg)}.co-button--square.co-button--m{padding:var(--co-spacing-md) var(--co-spacing-lg);gap:var(--co-spacing-sm2);font-size:var(--co-font-size-16);border-radius:var(--co-border-radius-sm)}.co-button--square.co-button--s{padding:var(--co-spacing-sm2) var(--co-spacing-md);gap:var(--co-spacing-sm);font-size:var(--co-font-size-14);border-radius:var(--co-border-radius-xs)}.co-button--square.co-button--xs{padding:var(--co-spacing-sm) var(--co-spacing-sm2);gap:var(--co-spacing-xs);font-size:var(--co-font-size-12);border-radius:var(--co-spacing-sm)}.co-button--disabled,.co-button:disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.co-button--primary:hover:not(:disabled){opacity:0.88}.co-button--secondary:hover:not(:disabled),.co-button--stroke:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-button--ghost:hover:not(:disabled){background:color-mix(in srgb, var(--co-semantic-surface-hover) 60%, transparent);-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-button--danger:hover:not(:disabled),.co-button--success:hover:not(:disabled){opacity:0.88}.co-button:active:not(:disabled){transform:scale(0.97);transition-duration:var(--co-motion-duration-instant)}.co-button--primary{transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out), background var(--co-motion-duration-fast) var(--co-motion-ease-out), transform var(--co-motion-duration-slow) var(--co-motion-ease-spring)}.co-button--secondary.co-button--elevated{box-shadow:var(--co-shadow-sm, 0 1px 2px 0 rgba(26, 26, 26, 0.04)), inset 0 0 0 1px var(--co-color-opacity-negro-8)}.co-button:focus-visible{box-shadow:0 0 0 2px var(--co-semantic-surface-page), 0 0 0 4px var(--co-semantic-border-focus);outline:2px solid transparent;outline-offset:2px}.co-button--ghost.co-button--surface-dark,.co-button--stroke.co-button--surface-dark{color:var(--co-color-base-blanco, #fff)}.co-button--ghost.co-button--surface-dark:hover:not(:disabled),.co-button--stroke.co-button--surface-dark:hover:not(:disabled){background:var(--co-color-opacity-blanco-16);-webkit-backdrop-filter:none;backdrop-filter:none}.co-button--danger.co-button--surface-dark:hover:not(:disabled){opacity:1;background:color-mix(in srgb, var(--co-semantic-status-error) 84%, var(--co-color-base-blanco, #fff))}.co-button--danger.co-button--surface-dark:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--co-color-base-blanco, #fff) 45%, transparent)}::slotted([slot="icon-left"]),::slotted([slot="icon-right"]){display:inline-flex;flex-shrink:0}.co-button>co-icon{margin-block:-1px}@supports not (background: color-mix(in srgb, red, transparent)){.co-button--primary{background:var(--co-semantic-surface-primary)}.co-button--secondary{background:var(--co-semantic-surface-secondary)}.co-button--stroke{background:transparent}}.co-button--soft{background:var(--co-semantic-surface-control);color:var(--co-semantic-text-default);border-color:var(--co-button-border-color, transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.co-button--soft:hover:not(:disabled){background:color-mix(in srgb, var(--co-semantic-surface-control), var(--co-semantic-surface-hover))}.co-button--rounded.co-button--sm{height:32px;padding:var(--co-spacing-sm2) var(--co-spacing-md);gap:var(--co-spacing-sm);font-size:var(--co-font-size-12);font-weight:500;line-height:1;letter-spacing:var(--co-font-letter-spacing-body);border-radius:var(--co-button-radius, var(--co-border-radius-full))}.co-button--square.co-button--sm{height:32px;padding:var(--co-spacing-sm2) var(--co-spacing-md);gap:var(--co-spacing-sm);font-size:var(--co-font-size-12);font-weight:500;line-height:1;letter-spacing:var(--co-font-letter-spacing-body);border-radius:var(--co-border-radius-xs)}:host([full-width]){display:block;width:100%}:host([full-width]) .co-button{width:100%}co-icon{color:var(--co-button-icon-color, inherit)}';export{c as co_button}
@@ -0,0 +1 @@
1
+ import{r as o,c as t,h as e,a as r}from"./p-DJkaRtbb.js";const a=new Set(["l","m","s","xs"]),c=class{constructor(e){o(this,e),this.coToggle=t(this,"coToggle",7),this.selected=!1,this.value="",this.size="m",this.disabled=!1,this.variant="connected",this.handleClick=()=>{this.disabled||(this.selected=!this.selected,this.coToggle.emit({value:this.value,selected:this.selected}))}}componentWillLoad(){this.adoptGroupSize()}adoptGroupSize(){var o,t;if(this.el.hasAttribute("size")||null!=this.size&&"m"!==this.size)return;const e=this.el.closest("co-toggle-button-group");if(!e)return;const r=null!==(o=e.variant)&&void 0!==o?o:e.getAttribute("variant"),c=null!==(t=e.size)&&void 0!==t?t:e.getAttribute("size");((o,t)=>a.has(null!=t?t:"")&&("soft"===o||"track"===o&&"xs"===t))(r,c)&&(this.size=c)}render(){const o="track"===this.variant?"xs"===this.size?14:18:"l"===this.size?20:"xs"===this.size?14:16,t=this.selected&&this.selectedIconWeight?this.selectedIconWeight:void 0;return e("button",{key:"a0b0aa7d128e4ee66a91a223851b126684d8e997",part:"button",class:{"co-toggle-button":!0,"co-toggle-button--selected":this.selected,[`co-toggle-button--${this.size}`]:!0,"co-toggle-button--disabled":this.disabled,"co-toggle-button--icon-only":!(this.label||!this.iconLeft&&!this.iconRight)},type:"button",disabled:this.disabled,"aria-pressed":String(this.selected),onClick:this.handleClick},e("slot",{key:"d683a91a68fb3820a01b8bd91dc3b81b8d8994f0",name:"leading"}),this.iconLeft&&e("co-icon",{key:"6894633951caa68a614824af931a33dc46a552ab",name:this.iconLeft,size:o,weight:t}),this.label&&e("span",{key:"96d902f0f28a8ea8a810425cf775ff6a9437be4d",class:"co-toggle-button__label"},this.label),this.iconRight&&e("co-icon",{key:"4e5db3f34af24fffce2ec95e4a7767c82768db39",name:this.iconRight,size:o,weight:t}))}get el(){return r(this)}};c.style=":host{display:inline-flex;--co-toggle-button-radius:var(--co-border-radius-sm)}:host([size='l']){--co-toggle-button-radius:var(--co-border-radius-lg)}:host([size='m']){--co-toggle-button-radius:var(--co-border-radius-sm)}:host([size='s']){--co-toggle-button-radius:var(--co-border-radius-xs)}:host([size='xs']){--co-toggle-button-radius:var(--co-border-radius-xs)}.co-toggle-button{display:inline-flex;width:var(--co-toggle-button-width, auto);align-items:center;justify-content:center;gap:var(--co-spacing-sm2);border:1px solid var(--co-semantic-border-subtle);border-top-left-radius:var(--co-tbr-tl, var(--co-toggle-button-radius));border-top-right-radius:var(--co-tbr-tr, var(--co-toggle-button-radius));border-bottom-right-radius:var(--co-tbr-br, var(--co-toggle-button-radius));border-bottom-left-radius:var(--co-tbr-bl, var(--co-toggle-button-radius));background:color-mix(in srgb, var(--co-semantic-surface-secondary) 35%, transparent);-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));color:var(--co-toggle-button-color, var(--co-semantic-text-default));font-family:var(--co-font-family-primary);font-weight:500;cursor:pointer;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);white-space:nowrap;box-sizing:border-box;line-height:1}.co-toggle-button--l{height:48px;padding:0 var(--co-spacing-lg);font-size:var(--co-toggle-button-font-size, var(--co-font-size-16))}.co-toggle-button--m{height:40px;padding:0 var(--co-spacing-md);font-size:var(--co-toggle-button-font-size, var(--co-font-size-14))}.co-toggle-button--s{height:32px;padding:0 var(--co-spacing-sm2);font-size:var(--co-toggle-button-font-size, var(--co-font-size-14))}.co-toggle-button--xs{height:24px;padding:0 var(--co-spacing-sm);font-size:var(--co-toggle-button-font-size, var(--co-font-size-12))}.co-toggle-button--icon-only.co-toggle-button--l{width:48px;padding:0}.co-toggle-button--icon-only.co-toggle-button--m{width:40px;padding:0}.co-toggle-button--icon-only.co-toggle-button--s{width:32px;padding:0}.co-toggle-button--icon-only.co-toggle-button--xs{width:24px;padding:0}.co-toggle-button:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-toggle-button--selected{background:var(--co-color-base-negro, #1f1c1b);color:var(--co-toggle-button-color-selected, var(--co-color-base-blanco, #fff));border-color:var(--co-color-base-negro, #1f1c1b)}.co-toggle-button--selected:hover:not(:disabled){background:var(--co-color-gray-800, #0a0a0a);border-color:var(--co-color-gray-800, #0a0a0a)}.co-toggle-button--disabled{opacity:0.4;cursor:not-allowed}.co-toggle-button:focus-visible{outline:2px solid var(--co-semantic-text-default);outline-offset:-3px}.co-toggle-button--selected:focus-visible{outline-color:currentColor}.co-toggle-button__label{line-height:1}@supports not (background: color-mix(in srgb, red, transparent)){.co-toggle-button{background:var(--co-semantic-surface-secondary)}}:host([variant='track']) .co-toggle-button{height:var(--co-toggle-pill-height, 30px);border-radius:var(--co-toggle-pill-radius, 8px);border-color:transparent;background:transparent;color:var(--co-toggle-button-color, var(--co-semantic-text-secondary));box-shadow:none;padding:0 12px;-webkit-backdrop-filter:none;backdrop-filter:none}:host([variant='track']) .co-toggle-button.co-toggle-button--icon-only{width:34px;padding:0}:host([variant='track']) .co-toggle-button:hover:not(:disabled){background:var(--co-semantic-surface-hover);color:var(--co-toggle-button-color-hover, var(--co-semantic-text-default))}:host([variant='track']) .co-toggle-button--selected{background:var(--co-semantic-surface-page);color:var(--co-toggle-button-color-selected, var(--co-semantic-text-default));border-color:var(--co-toggle-pill-border, var(--co-semantic-border-default));box-shadow:var(--co-toggle-pill-shadow, var(--co-shadow-sm, 0 1px 2px 0 rgba(26, 26, 26, 0.04)))}:host([variant='track']) .co-toggle-button--selected:hover:not(:disabled){background:var(--co-semantic-surface-page);color:var(--co-toggle-button-color-selected, var(--co-semantic-text-default));border-color:var(--co-toggle-pill-border, var(--co-semantic-border-default))}:host([variant='track'][size='xs']) .co-toggle-button{height:var(--co-toggle-pill-height, 20px);border-radius:var(--co-toggle-pill-radius, var(--co-border-radius-xxs))}:host([variant='track'][size='xs']) .co-toggle-button:not(.co-toggle-button--selected){color:var(--co-toggle-button-color, var(--co-semantic-text-default))}:host([variant='track'][size='xs']) .co-toggle-button:not(.co-toggle-button--selected):hover:not(:disabled){color:var(--co-toggle-button-color-hover, var(--co-semantic-text-default))}:host([variant='track'][size='xs']) .co-toggle-button.co-toggle-button--icon-only{width:20px}:host([variant='track'][size='xs']) .co-toggle-button--selected{box-shadow:var(--co-toggle-pill-shadow, none)}:host([variant='soft']) .co-toggle-button{height:24px;border-radius:var(--co-border-radius-xxs);border-color:transparent;background:var(--co-semantic-surface-control, #f6f6f6);color:var(--co-toggle-button-color, var(--co-semantic-text-default));font-size:var(--co-font-size-12);font-weight:var(--co-font-weight-regular);padding:0 calc(var(--co-spacing-sm2) - 1px);gap:var(--co-spacing-sm2);-webkit-backdrop-filter:none;backdrop-filter:none}:host([variant='soft']) .co-toggle-button:hover:not(:disabled){background:var(--co-semantic-surface-control, #f6f6f6)}:host([variant='soft']) .co-toggle-button--selected{background:var(--co-color-celeste-100);color:var(--co-toggle-button-color-selected, var(--co-color-primary-azul));border-color:transparent}:host([variant='soft']) .co-toggle-button--selected:hover:not(:disabled){background:var(--co-color-celeste-100)}";export{c as co_toggle_button}
@@ -431,7 +431,7 @@ export class CoAutocomplete {
431
431
  "references": {
432
432
  "AutocompleteOption": {
433
433
  "location": "local",
434
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-autocomplete/co-autocomplete.tsx",
434
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-autocomplete/co-autocomplete.tsx",
435
435
  "id": "src/components/co-autocomplete/co-autocomplete.tsx::AutocompleteOption"
436
436
  }
437
437
  }
@@ -92,7 +92,7 @@ export class CoAvatarGroup {
92
92
  "references": {
93
93
  "CoAvatarGroupItem": {
94
94
  "location": "local",
95
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-avatar-group/co-avatar-group.tsx",
95
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-avatar-group/co-avatar-group.tsx",
96
96
  "id": "src/components/co-avatar-group/co-avatar-group.tsx::CoAvatarGroupItem"
97
97
  }
98
98
  }
@@ -184,6 +184,21 @@
184
184
  inset 0 0 0 1px var(--co-color-opacity-negro-8);
185
185
  }
186
186
 
187
+ /* ─── FOCUS RING ─────────────────────────────────────────────────
188
+ Anillo de foco de teclado en TODAS las variantes (el base es outline:none). Doble anillo: el
189
+ interior del color de la página separa el anillo del fill del botón en cualquier variante.
190
+ QA 2026-09-24 («Generar contrato»): con Tab el foco era invisible en todo botón salvo
191
+ danger + surface-dark. Va DESPUÉS del elevated (misma especificidad: su sombra pisaba el
192
+ anillo) y antes de las overrides de superficie, que lo siguen ganando por especificidad. */
193
+ .co-button:focus-visible {
194
+ box-shadow:
195
+ 0 0 0 2px var(--co-semantic-surface-page),
196
+ 0 0 0 4px var(--co-semantic-border-focus);
197
+ /* forced-colors (alto contraste de Windows) borra el box-shadow: el sistema pinta este outline. */
198
+ outline: 2px solid transparent;
199
+ outline-offset: 2px;
200
+ }
201
+
187
202
  /* ─── ON-DARK SURFACE · ghost/stroke ─────────────────────────────
188
203
  surface="dark": for buttons placed on a dark bar (e.g. a selection
189
204
  bar). White ink/icon + a blanco-16 hover wash. Higher specificity
@@ -236,7 +236,7 @@ export class CoCheckboxGroup {
236
236
  "references": {
237
237
  "CheckboxOption": {
238
238
  "location": "local",
239
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-checkbox-group/co-checkbox-group.tsx",
239
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-checkbox-group/co-checkbox-group.tsx",
240
240
  "id": "src/components/co-checkbox-group/co-checkbox-group.tsx::CheckboxOption"
241
241
  }
242
242
  }
@@ -325,11 +325,15 @@ button.co-chip--disabled {
325
325
 
326
326
  /* ═══════════════════════════════════════════════════════════════
327
327
  VARIANT: FILTER — Cloud Drive filter-trigger pill.
328
- White pill with an inset hairline ring, a tinted leading icon, a
329
- two-tone muted value suffix and a trailing caret.
328
+ Page-surface pill with an inset hairline ring, a tinted leading icon,
329
+ a two-tone muted value suffix and a trailing caret.
330
330
  Fixed metrics: height 34, padding 0 12, gap 7, font-size 13.5.
331
331
  Declared with .co-chip.co-chip--filter so these override the
332
332
  size/icon-mode padding + gap rules (equal specificity, later in source).
333
+ Colours are SEMANTIC tokens (identical to the old primitives in light:
334
+ surface-page = base-blanco, text-default = base-negro, border-default =
335
+ opacity-negro-16, border-field = opacity-negro-25, surface-disabled =
336
+ gray-100) so the pill follows the dark theme instead of staying white.
333
337
  ═══════════════════════════════════════════════════════════════ */
334
338
  .co-chip.co-chip--filter {
335
339
  height: 34px;
@@ -337,31 +341,32 @@ button.co-chip--disabled {
337
341
  gap: 7px;
338
342
  font-size: 13.5px;
339
343
  border-radius: var(--co-border-radius-full);
340
- background: var(--co-color-base-blanco, #fff);
341
- color: var(--co-color-base-negro, #1f1c1b);
344
+ background: var(--co-semantic-surface-page, #fff);
345
+ color: var(--co-semantic-text-default, #1f1c1b);
342
346
  border-color: transparent;
343
- box-shadow: inset 0 0 0 1px var(--co-color-opacity-negro-16, rgba(0, 0, 0, 0.16));
347
+ box-shadow: inset 0 0 0 1px var(--co-semantic-border-default, rgba(0, 0, 0, 0.16));
344
348
  }
345
349
 
346
- /* Leading icon (prop- or slot-based) tinted gray-500 in this mode. */
350
+ /* Leading icon (prop- or slot-based) tinted muted in this mode. */
347
351
  .co-chip--filter .co-chip__icon-left {
348
- color: var(--co-color-gray-500, #888888);
352
+ color: var(--co-semantic-text-muted, #888888);
349
353
  }
350
354
 
351
- /* Trailing caret is a subtle gray-400. */
355
+ /* Trailing caret is a subtle mid gray (reads on both themes; no semantic
356
+ token sits at gray-400). */
352
357
  .co-chip--filter .co-chip__trailing {
353
358
  color: var(--co-color-gray-400, #a0a0a0);
354
359
  }
355
360
 
356
361
  .co-chip--filter.co-chip--clickable:hover:not(.co-chip--disabled) {
357
- box-shadow: inset 0 0 0 1px var(--co-color-opacity-negro-25, rgba(0, 0, 0, 0.25));
362
+ box-shadow: inset 0 0 0 1px var(--co-semantic-border-field, rgba(0, 0, 0, 0.25));
358
363
  }
359
364
 
360
365
  .co-chip--filter.co-chip--clickable:active:not(.co-chip--disabled) {
361
- background: var(--co-color-gray-100, #f6f6f6);
366
+ background: var(--co-semantic-surface-disabled, #f6f6f6);
362
367
  }
363
368
 
364
369
  /* Open/active trigger tint (consumer toggles `selected` while the menu is open). */
365
370
  .co-chip--filter.co-chip--selected {
366
- background: var(--co-color-gray-100, #f6f6f6);
371
+ background: var(--co-semantic-surface-disabled, #f6f6f6);
367
372
  }
@@ -310,7 +310,7 @@ export class CoColorArea {
310
310
  "references": {
311
311
  "ColorAreaDetail": {
312
312
  "location": "local",
313
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-color-area/co-color-area.tsx",
313
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-color-area/co-color-area.tsx",
314
314
  "id": "src/components/co-color-area/co-color-area.tsx::ColorAreaDetail"
315
315
  }
316
316
  }
@@ -331,7 +331,7 @@ export class CoColorArea {
331
331
  "references": {
332
332
  "ColorAreaDetail": {
333
333
  "location": "local",
334
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-color-area/co-color-area.tsx",
334
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-color-area/co-color-area.tsx",
335
335
  "id": "src/components/co-color-area/co-color-area.tsx::ColorAreaDetail"
336
336
  }
337
337
  }
@@ -215,7 +215,7 @@ export class CoColorSlider {
215
215
  "references": {
216
216
  "ColorSliderChannel": {
217
217
  "location": "local",
218
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-color-slider/co-color-slider.tsx",
218
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-color-slider/co-color-slider.tsx",
219
219
  "id": "src/components/co-color-slider/co-color-slider.tsx::ColorSliderChannel"
220
220
  }
221
221
  }
@@ -545,7 +545,7 @@ export class CoCombobox {
545
545
  "references": {
546
546
  "ComboboxOption": {
547
547
  "location": "local",
548
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-combobox/co-combobox.tsx",
548
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-combobox/co-combobox.tsx",
549
549
  "id": "src/components/co-combobox/co-combobox.tsx::ComboboxOption"
550
550
  }
551
551
  }
@@ -257,7 +257,7 @@ export class CoCommandSearch {
257
257
  "references": {
258
258
  "CommandItem": {
259
259
  "location": "local",
260
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-command-search/co-command-search.tsx",
260
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-command-search/co-command-search.tsx",
261
261
  "id": "src/components/co-command-search/co-command-search.tsx::CommandItem"
262
262
  }
263
263
  }
@@ -509,7 +509,7 @@ export class CoDataTable {
509
509
  "references": {
510
510
  "CoDataTableColumn": {
511
511
  "location": "local",
512
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-data-table/co-data-table.tsx",
512
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-data-table/co-data-table.tsx",
513
513
  "id": "src/components/co-data-table/co-data-table.tsx::CoDataTableColumn"
514
514
  }
515
515
  }
@@ -1055,7 +1055,7 @@ export class CoDateRangePicker {
1055
1055
  "references": {
1056
1056
  "DateRangeValue": {
1057
1057
  "location": "local",
1058
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-date-range-picker/co-date-range-picker.tsx",
1058
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-date-range-picker/co-date-range-picker.tsx",
1059
1059
  "id": "src/components/co-date-range-picker/co-date-range-picker.tsx::DateRangeValue"
1060
1060
  }
1061
1061
  }
@@ -1076,7 +1076,7 @@ export class CoDateRangePicker {
1076
1076
  "references": {
1077
1077
  "DateRangeValue": {
1078
1078
  "location": "local",
1079
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-date-range-picker/co-date-range-picker.tsx",
1079
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-date-range-picker/co-date-range-picker.tsx",
1080
1080
  "id": "src/components/co-date-range-picker/co-date-range-picker.tsx::DateRangeValue"
1081
1081
  }
1082
1082
  }
@@ -936,7 +936,7 @@ export class CoDocumentEditor {
936
936
  "references": {
937
937
  "DocumentPageSize": {
938
938
  "location": "local",
939
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-document-editor/co-document-editor.tsx",
939
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
940
940
  "id": "src/components/co-document-editor/co-document-editor.tsx::DocumentPageSize"
941
941
  }
942
942
  }
@@ -962,7 +962,7 @@ export class CoDocumentEditor {
962
962
  "references": {
963
963
  "DocumentMargins": {
964
964
  "location": "local",
965
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-document-editor/co-document-editor.tsx",
965
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
966
966
  "id": "src/components/co-document-editor/co-document-editor.tsx::DocumentMargins"
967
967
  }
968
968
  }
@@ -1027,7 +1027,7 @@ export class CoDocumentEditor {
1027
1027
  "references": {
1028
1028
  "DocumentFeatures": {
1029
1029
  "location": "local",
1030
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-document-editor/co-document-editor.tsx",
1030
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
1031
1031
  "id": "src/components/co-document-editor/co-document-editor.tsx::DocumentFeatures"
1032
1032
  }
1033
1033
  }
@@ -1220,7 +1220,7 @@ export class CoDocumentEditor {
1220
1220
  "references": {
1221
1221
  "DocumentHeaderDetail": {
1222
1222
  "location": "local",
1223
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-document-editor/co-document-editor.tsx",
1223
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
1224
1224
  "id": "src/components/co-document-editor/co-document-editor.tsx::DocumentHeaderDetail"
1225
1225
  }
1226
1226
  }
@@ -1256,7 +1256,7 @@ export class CoDocumentEditor {
1256
1256
  "references": {
1257
1257
  "DocumentActionDetail": {
1258
1258
  "location": "local",
1259
- "path": "/Users/agox/worktrees/cobalt-docs-2026-09-24/packages/core/src/components/co-document-editor/co-document-editor.tsx",
1259
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
1260
1260
  "id": "src/components/co-document-editor/co-document-editor.tsx::DocumentActionDetail"
1261
1261
  }
1262
1262
  }
@@ -113,6 +113,19 @@ export class CoModal {
113
113
  * mismo nombre taparía `HTMLElement.draggable` con dos semánticas encimadas.
114
114
  */
115
115
  this.movable = false;
116
+ /**
117
+ * Opt-in: trampa de foco accesible (QA 2026-09-24, «Generar contrato»). Con
118
+ * `true`, al abrir el foco ENTRA al modal (el primer `[autofocus]`; si no
119
+ * hay, el primer control), Tab / Shift+Tab ciclan adentro y al cerrar vuelve
120
+ * a donde estaba. El recorrido es compuesto: ve el contenido proyectado por
121
+ * los slots y el `<button>` interno de cada co-button. Default false → los
122
+ * consumidores actuales no cambian.
123
+ *
124
+ * La trampa es de `<co-overlay>`, así que sin overlay (`inline` o
125
+ * `backdrop="none"`) NO aplica: esos modos son paneles no bloqueantes y la
126
+ * página de atrás sigue operable.
127
+ */
128
+ this.trapFocus = false;
116
129
  /* `:empty` can't see across a <slot>, so slotted presence is tracked in JS */
117
130
  this.hasFooter = false;
118
131
  this.handleFooterSlotChange = (e) => {
@@ -228,6 +241,18 @@ export class CoModal {
228
241
  if (e.key === 'Escape')
229
242
  this.coClose.emit();
230
243
  }
244
+ /**
245
+ * Re-promueve el modal al TOPE del top layer (QA 2026-09-24, «Generar
246
+ * contrato»): un drawer que se abre DESPUÉS del modal (cambio de URL,
247
+ * historial) pinta encima, porque en el top layer gana el último promovido.
248
+ * Delega en su `<co-overlay>`: sin cerrar el modal, sin eventos (`coClose` /
249
+ * `coAfterClose` / `coAfterOpen`), sin soltar el scroll lock y sin re-animar
250
+ * la entrada. No-op sin overlay (`inline`, `backdrop="none"`) o cerrado.
251
+ */
252
+ async bringToFront() {
253
+ var _a, _b, _c;
254
+ await ((_c = (_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('co-overlay')) === null || _b === void 0 ? void 0 : _b.bringToFront) === null || _c === void 0 ? void 0 : _c.call(_b));
255
+ }
231
256
  /**
232
257
  * La posición no se persiste: cada APERTURA arranca desde la posición por
233
258
  * defecto. El reset va al abrir y no al cerrar a propósito — reseteando al
@@ -343,7 +368,7 @@ export class CoModal {
343
368
  }, part: "header", ref: (el) => (this.headerEl = el), onPointerDown: this.movable ? this.handleDragDown : undefined, onPointerMove: this.movable ? this.handleDragMove : undefined, onPointerUp: this.movable ? this.handleDragUp : undefined, onPointerCancel: this.movable ? this.handleDragCancel : undefined }, h("slot", { name: "header-leading" }), h("div", { class: "co-modal__header-text", part: "header-text" }, h("h2", { class: "co-modal__heading", part: "heading", id: "modal-heading" }, this.heading), this.description && (h("p", { class: "co-modal__description", part: "description" }, this.description))), h("slot", { name: "header-actions" }), this.closable && (h("button", { class: "co-modal__close", type: "button", "aria-label": "Close", onClick: this.handleCloseClick }, h("co-icon", { name: "x", size: closeIconSize })))), !this.noDividers && (h("div", { class: "co-modal__body", part: "body" }, h("slot", null))), h("div", { class: { 'co-modal__footer': true, 'co-modal__footer--empty': !this.hasFooter }, part: "footer" }, h("slot", { name: "footer", onSlotchange: this.handleFooterSlotChange })))));
344
369
  if (!this.usesOverlay)
345
370
  return frame;
346
- return (h("co-overlay", { open: this.open, onCoClose: this.handleOverlayClick }, frame));
371
+ return (h("co-overlay", { open: this.open, trapFocus: this.trapFocus, onCoClose: this.handleOverlayClick }, frame));
347
372
  }
348
373
  static get is() { return "co-modal"; }
349
374
  static get encapsulation() { return "shadow"; }
@@ -617,6 +642,26 @@ export class CoModal {
617
642
  "reflect": true,
618
643
  "attribute": "movable",
619
644
  "defaultValue": "false"
645
+ },
646
+ "trapFocus": {
647
+ "type": "boolean",
648
+ "mutable": false,
649
+ "complexType": {
650
+ "original": "boolean",
651
+ "resolved": "boolean",
652
+ "references": {}
653
+ },
654
+ "required": false,
655
+ "optional": false,
656
+ "docs": {
657
+ "tags": [],
658
+ "text": "Opt-in: trampa de foco accesible (QA 2026-09-24, \u00ABGenerar contrato\u00BB). Con\n`true`, al abrir el foco ENTRA al modal (el primer `[autofocus]`; si no\nhay, el primer control), Tab / Shift+Tab ciclan adentro y al cerrar vuelve\na donde estaba. El recorrido es compuesto: ve el contenido proyectado por\nlos slots y el `<button>` interno de cada co-button. Default false \u2192 los\nconsumidores actuales no cambian.\n\nLa trampa es de `<co-overlay>`, as\u00ED que sin overlay (`inline` o\n`backdrop=\"none\"`) NO aplica: esos modos son paneles no bloqueantes y la\np\u00E1gina de atr\u00E1s sigue operable."
659
+ },
660
+ "getter": false,
661
+ "setter": false,
662
+ "reflect": true,
663
+ "attribute": "trap-focus",
664
+ "defaultValue": "false"
620
665
  }
621
666
  };
622
667
  }
@@ -674,6 +719,28 @@ export class CoModal {
674
719
  }
675
720
  }];
676
721
  }
722
+ static get methods() {
723
+ return {
724
+ "bringToFront": {
725
+ "complexType": {
726
+ "signature": "() => Promise<void>",
727
+ "parameters": [],
728
+ "references": {
729
+ "Promise": {
730
+ "location": "global",
731
+ "id": "global::Promise"
732
+ }
733
+ },
734
+ "return": "Promise<void>"
735
+ },
736
+ "docs": {
737
+ "text": "Re-promueve el modal al TOPE del top layer (QA 2026-09-24, \u00ABGenerar\ncontrato\u00BB): un drawer que se abre DESPU\u00C9S del modal (cambio de URL,\nhistorial) pinta encima, porque en el top layer gana el \u00FAltimo promovido.\nDelega en su `<co-overlay>`: sin cerrar el modal, sin eventos (`coClose` /\n`coAfterClose` / `coAfterOpen`), sin soltar el scroll lock y sin re-animar\nla entrada. No-op sin overlay (`inline`, `backdrop=\"none\"`) o cerrado.",
738
+ "tags": []
739
+ }
740
+ }
741
+ };
742
+ }
743
+ static get elementRef() { return "el"; }
677
744
  static get watchers() {
678
745
  return [{
679
746
  "propName": "open",
@@ -676,6 +676,7 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
676
676
  * @prop --co-option-list-item-gap: Separación entre los elementos de una fila (ícono, textos, acciones).
677
677
  * @prop --co-option-list-item-min-height: Alto mínimo de fila (default 32px); no cambia el paso fijo de la lista virtual.
678
678
  * @prop --co-option-list-item-padding-y: Padding vertical de la fila.
679
+ * @prop --co-option-list-item-padding-start: Padding izquierdo de la fila (default 4px).
679
680
  * @prop --co-option-list-item-radius: Radio de la fila.
680
681
  * @prop --co-option-list-item-bg: Fondo de la fila en reposo.
681
682
  * @prop --co-option-list-item-ring: Sombra/anillo de la fila en reposo.
@@ -688,6 +689,7 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
688
689
  * @prop --co-option-list-icon-tile-radius: Radio del recuadro del ícono.
689
690
  * @prop --co-option-list-icon-tile-mix: Porcentaje del tinte del ícono en el fondo del recuadro (default 12%).
690
691
  * @prop --co-option-list-icon-tile-ring-mix: Porcentaje del tinte en el borde del recuadro (default 0%, sin borde).
692
+ * @prop --co-option-list-icon-tile-glyph-size: Lado del glifo dentro del recuadro del ícono (default 14px).
691
693
  * @prop --co-option-list-search-height: Alto del buscador (default 32px).
692
694
  * @prop --co-option-list-search-margin: Margen del buscador.
693
695
  * @prop --co-option-list-search-padding: Padding del buscador.
@@ -697,7 +699,10 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
697
699
  * @prop --co-option-list-search-border-focus: Color del borde del buscador con foco.
698
700
  * @prop --co-option-list-search-bg-focus: Fondo del buscador con foco.
699
701
  * @prop --co-option-list-search-caret: Color del cursor de texto del buscador.
702
+ * @prop --co-option-list-search-font-size: Tamaño del texto del buscador (default 14px).
703
+ * @prop --co-option-list-search-font-weight: Peso del texto del buscador (default 500).
700
704
  * @prop --co-option-list-group-padding-top: Padding superior del encabezado de grupo.
705
+ * @prop --co-option-list-group-first-padding-top: Padding superior del PRIMER encabezado de grupo (default = el de todos).
701
706
  * @prop --co-option-list-group-padding-bottom: Padding inferior del encabezado de grupo.
702
707
  * @prop --co-option-list-group-font-family: Familia tipográfica del encabezado de grupo (default mono).
703
708
  * @prop --co-option-list-group-font-size: Tamaño del encabezado de grupo.
@@ -742,7 +747,10 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
742
747
  * `-search-margin` (12px 12px 0), `-search-padding` (0 8px 0 4px),
743
748
  * `-search-border` (1px solid border-subtle), `-search-border-focus`
744
749
  * (border-focus), `-search-bg` (transparent), `-search-bg-focus` (= bg),
745
- * `-search-radius` (radius-xs) y `-search-caret` (auto). Defaults = Figma. */
750
+ * `-search-radius` (radius-xs) y `-search-caret` (auto). Tipografía del
751
+ * texto/placeholder: `-search-font-size` (14px) y `-search-font-weight` (500)
752
+ * — paletas con filas de 13 donde el buscador a 14/500 se leía más grande que
753
+ * la lista. Defaults = Figma. */
746
754
  .co-option-list__search {
747
755
  display: flex;
748
756
  align-items: center;
@@ -779,8 +787,8 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
779
787
  background: transparent;
780
788
  padding: 0;
781
789
  font-family: var(--co-font-family-primary, 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
782
- font-size: var(--co-font-size-14, 14px);
783
- font-weight: 500;
790
+ font-size: var(--co-option-list-search-font-size, var(--co-font-size-14, 14px));
791
+ font-weight: var(--co-option-list-search-font-weight, 500);
784
792
  letter-spacing: var(--co-font-letter-spacing-body, -0.03em);
785
793
  line-height: 1;
786
794
  color: var(--co-semantic-text-default, #1f1c1b);
@@ -837,7 +845,9 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
837
845
  min-width: 0;
838
846
  min-height: var(--co-option-list-item-min-height, 32px);
839
847
  box-sizing: border-box;
840
- padding: var(--co-option-list-item-padding-y, var(--co-spacing-xs, 4px)) var(--co-spacing-sm2, 8px) var(--co-option-list-item-padding-y, var(--co-spacing-xs, 4px)) var(--co-spacing-xs, 4px);
848
+ /* Overridable: `--co-option-list-item-padding-start` (default 4px) — paletas con tile grande que lo centran en la
849
+ fila con el mismo aire a la izquierda que arriba/abajo (fila 40 + tile 24: 8 por lado = 6 + el margen 2 del tile). */
850
+ padding: var(--co-option-list-item-padding-y, var(--co-spacing-xs, 4px)) var(--co-spacing-sm2, 8px) var(--co-option-list-item-padding-y, var(--co-spacing-xs, 4px)) var(--co-option-list-item-padding-start, var(--co-spacing-xs, 4px));
841
851
  /* Overridables (paletas con filas-tarjeta, Attio): `--co-option-list-item-radius` (default 8px) y
842
852
  `--co-option-list-item-font-size` (default 14px). */
843
853
  border-radius: var(--co-option-list-item-radius, var(--co-border-radius-xs, 8px));
@@ -905,6 +915,15 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
905
915
  color: var(--co-option-list-icon-tint);
906
916
  }
907
917
 
918
+ /* Glifo del tile: `--co-option-list-icon-tile-glyph-size` (default 14px, el `size` que el .tsx le pasa al co-icon) —
919
+ paletas con tile de 24 que llevan el glifo de 16 del bloque del lienzo. El `!important` es necesario porque co-icon
920
+ fija su ancho/alto INLINE en el estilo de su Host (mismo caso que `--co-select-caret-size` en co-select.css); sin
921
+ setear la variable el glifo mide lo mismo que siempre. */
922
+ .co-option-list__icon-tile co-icon {
923
+ width: var(--co-option-list-icon-tile-glyph-size, 14px) !important;
924
+ height: var(--co-option-list-icon-tile-glyph-size, 14px) !important;
925
+ }
926
+
908
927
  .co-option-list__dot {
909
928
  flex-shrink: 0;
910
929
  width: 10px;
@@ -1075,6 +1094,13 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
1075
1094
  color: var(--co-option-list-group-color, var(--co-semantic-text-default, #1f1c1b));
1076
1095
  }
1077
1096
 
1097
+ /* Primer rótulo de la lista: `--co-option-list-group-first-padding-top` (default = el de todos los rótulos) — paletas
1098
+ con aire grande ENTRE secciones que no quieren ese mismo aire bajo su cabecera (filtro/buscador): arriba del primero
1099
+ ya está el padding de la lista. */
1100
+ .co-option-list__group:first-child {
1101
+ padding-top: var(--co-option-list-group-first-padding-top, var(--co-option-list-group-padding-top, var(--co-spacing-sm2, 8px)));
1102
+ }
1103
+
1078
1104
  /* ── Clear row ───────────────────────────────────────────── */
1079
1105
  .co-option-list__clear-row {
1080
1106
  display: flex;
@@ -37,3 +37,10 @@
37
37
  pointer-events: auto;
38
38
  transition: opacity var(--co-motion-duration-base) var(--co-motion-ease-out);
39
39
  }
40
+
41
+ /* bringToFront(): el hide + show que re-apila el scrim en el top layer no es una
42
+ apertura — nada transiciona durante el re-show (la clase se retira en el frame
43
+ siguiente). */
44
+ .co-overlay--refront {
45
+ transition: none !important;
46
+ }