@prolibu-suite/cobalt-core 0.11.3 → 0.11.4

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 (28) hide show
  1. package/custom-elements.json +31 -31
  2. package/dist/cjs/co-number-field.cjs.entry.js +12 -4
  3. package/dist/cobalt/cobalt.esm.js +1 -1
  4. package/dist/cobalt/p-7c20207b.entry.js +1 -0
  5. package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
  6. package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
  7. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
  8. package/dist/collection/components/co-color-area/co-color-area.js +2 -2
  9. package/dist/collection/components/co-color-slider/co-color-slider.js +1 -1
  10. package/dist/collection/components/co-combobox/co-combobox.js +1 -1
  11. package/dist/collection/components/co-command-search/co-command-search.js +1 -1
  12. package/dist/collection/components/co-data-table/co-data-table.js +1 -1
  13. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
  14. package/dist/collection/components/co-document-editor/co-document-editor.js +5 -5
  15. package/dist/collection/components/co-number-field/co-number-field.js +12 -4
  16. package/dist/collection/components/co-popover/co-popover.js +1 -1
  17. package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
  18. package/dist/collection/components/co-ref-field/co-ref-field.js +4 -4
  19. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
  20. package/dist/collection/components/co-select/co-select.js +1 -1
  21. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
  22. package/dist/collection/components/co-toast/co-toast.js +2 -2
  23. package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
  24. package/dist/collection/components/co-tree-item/co-tree-item.js +2 -2
  25. package/dist/components/co-number-field.js +1 -1
  26. package/dist/esm/co-number-field.entry.js +12 -4
  27. package/package.json +4 -4
  28. package/dist/cobalt/p-ae999b94.entry.js +0 -1
@@ -0,0 +1 @@
1
+ import{r as e,c as i,h as t,a as r}from"./p-DJkaRtbb.js";import{R as o}from"./p-CYN5B3IQ.js";const n=(e,i)=>({integer:e.slice(0,15),decimals:i.slice(0,8)});function s(e,i=!1){const t=String(null!=e?e:""),r=i&&/^\s*-/.test(t),o=t.replace(/[^\d.]/g,""),[s,...c]=o.split("."),{integer:a,decimals:l}=n(s,c.join("")),d=c.length?`${a}.${l}`:a;return d?r?`-${d}`:d:r?"-":""}function c(e){if(!e)return"";const i=e.startsWith("-"),t=i?e.slice(1):e,r=t.indexOf("."),o=r>=0?t.slice(0,r):t,n=r>=0?t.slice(r):"";let s="";for(let e=0;e<o.length;e++)e>0&&(o.length-e)%3==0&&(s+=","),s+=o[e];return`${i?"-":""}${s}${n}`}const a=/[^0-9.,-]/g,l=/[0-9.-]/,d=e=>{let i=0;for(const t of e)l.test(t)&&i++;return i},u=(e,i)=>{if(i<=0)return 0;let t=0;for(let r=0;r<e.length;r++)if(l.test(e[r])&&(t++,t===i))return r+1;return e.length},h=class{constructor(t){e(this,t),this.coChange=i(this,"coChange",7),this.coClear=i(this,"coClear",7),this.required=!1,this.layout="vertical",this.status="default",this.value=0,this.step=1,this.disabled=!1,this.placeholder="0",this.size="md",this.clearable=!1,this.hideControls=!1,this.focused=!1,this.emptiedByUser=!1,this.handleDecrement=()=>{this.canDecrement&&(this.emitValue(this.current-this.step),this.syncInputText())},this.handleIncrement=()=>{this.canIncrement&&(this.emitValue(this.current+this.step),this.syncInputText())},this.handleInput=e=>{var i;const t=e.target;if(this.isAmount)return void this.handleAmountInput(t);let r=t.value;const o=r.replace(a,"");if(o!==r){const e=(null!==(i=t.selectionStart)&&void 0!==i?i:r.length)-(r.length-o.length);t.value=o;const n=e<0?0:e;t.setSelectionRange(n,n),r=o}if(""===r)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===r)return;const n=parseFloat(function(e){return 1!=e.split(",").length-1||e.includes(".")?e:e.replace(",",".")}(r));isNaN(n)||this.emitValue(this.fromDisplay(n))},this.handlePaste=e=>{var i,t,r,o;if(!this.isAmount)return;e.preventDefault();const a=e.target,l=null!==(t=null===(i=e.clipboardData)||void 0===i?void 0:i.getData("text"))&&void 0!==t?t:"";let h=function(e){const i=String(null!=e?e:"").replace(/[^\d.,]/g,"");if(!i)return"";const t=i.lastIndexOf("."),r=i.lastIndexOf(",");let o=-1;if(t>=0&&r>=0)o=Math.max(t,r);else if(t>=0||r>=0){const e=t>=0?".":",",r=i.split(e);2===r.length&&3!==r[1].length&&(o=i.lastIndexOf(e))}const{integer:s,decimals:c}=n((o>=0?i.slice(0,o):i).replace(/[.,]/g,""),o>=0?i.slice(o+1).replace(/[.,]/g,""):"");return s||c?c?`${s||"0"}.${c}`:s:""}(l);h&&this.allowNegative&&/^\s*-/.test(l)&&(h=`-${h}`);const f=null!==(r=a.selectionStart)&&void 0!==r?r:a.value.length,b=null!==(o=a.selectionEnd)&&void 0!==o?o:f,m=s(a.value.slice(0,f),this.allowNegative),_=s(a.value.slice(b)),p=s(m+h+_,this.allowNegative),g=c(p);a.value=g;const v=u(g,d(m+h));if(a.setSelectionRange(v,v),""===p||"-"===p)return void(""===p&&this.clearable?(this.value=null,this.coChange.emit(null)):""===p&&(this.emptiedByUser=!0));const x=parseFloat(p);isNaN(x)||this.emitValue(x)},this.handleClear=()=>{var e;this.value=null,this.syncInputText(),this.coClear.emit(),this.coChange.emit(null),null===(e=this.inputEl)||void 0===e||e.focus()},this.handleBlur=()=>{var e;this.focused=!1,this.emptiedByUser?this.emitValue(null!==(e=this.min)&&void 0!==e?e:0):this.isEmpty||this.emitValue(this.value),this.syncInputText()},this.handleFocus=()=>{this.focused=!0},this.handleKeyDown=e=>{"ArrowUp"===e.key?(e.preventDefault(),this.handleIncrement()):"ArrowDown"===e.key&&(e.preventDefault(),this.handleDecrement())}}onValueChange(){this.inputEl&&!this.focused&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get isEmpty(){return null==this.value||Number.isNaN(this.value)}get current(){var e;return this.isEmpty?null!==(e=this.min)&&void 0!==e?e:0:this.value}get statusIcon(){return{error:"warning-circle",success:"check-circle",warning:"warning",info:"info"}[this.status]||null}get canDecrement(){return!this.disabled&&(void 0===this.min||this.current>this.min)}get canIncrement(){return!this.disabled&&(void 0===this.max||this.current<this.max)}clamp(e){return void 0!==this.min&&e<this.min?this.min:void 0!==this.max&&e>this.max?this.max:e}get scaled(){return"rate"===this.format||"percent"===this.format}get isAmount(){return"amount"===this.format}get allowNegative(){return void 0===this.min||this.min<0}get displayValue(){if(this.isEmpty)return"";const e=String(this.toDisplay(this.value));return this.isAmount?c(e):e}toDisplay(e){return this.scaled?Number((100*e).toFixed(6)):e}fromDisplay(e){return this.scaled?e/100:e}emitValue(e){this.emptiedByUser=!1;const i=this.clamp(e);this.value=i,this.coChange.emit(i)}handleAmountInput(e){var i;const t=e.value,r=null!==(i=e.selectionStart)&&void 0!==i?i:t.length,o=d(t.slice(0,r)),n=s(t,this.allowNegative),a=c(n);if(e.value!==a){e.value=a;const i=u(a,o);e.setSelectionRange(i,i)}if(""===n)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===n)return;const l=parseFloat(n);isNaN(l)||this.emitValue(l)}syncInputText(){this.inputEl&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get affixText(){return void 0!==this.suffix?this.suffix||null:this.scaled&&!this.isEmpty?"%":null}render(){return t("div",{key:"87d77047c35e2f0b3b9a978839e5b3c99541dc2e",class:{"co-number-field":!0,"co-number-field--disabled":this.disabled,"co-number-field--focused":this.focused,[`co-number-field--${this.size}`]:!0,[`co-number-field--${this.status}`]:"default"!==this.status}},(this.label||this.secondaryLabel)&&t("div",{key:"22f0674035a68861fae6ce37aba4e51b10c03226",class:"co-number-field__labels"},this.label&&t("label",{key:"442ee74bed62bf7c800f231ad4992b791b85a30c",class:"co-number-field__label"},this.label,t(o,{key:"ff7517b83b8e942512dcb8c1f504eafab55cea90",required:this.required})),this.secondaryLabel&&t("span",{key:"736889aae85065fb28a56131e2f7a3da9fc86a48",class:"co-number-field__secondary-label"},this.secondaryLabel)),t("div",{key:"fd6163c7cb83073db2c19c3477447076372abb44",class:"co-number-field__row",part:"row"},!this.hideControls&&t("button",{key:"e1a52831b83c3255ce63c4ed48a228fe4fdb1629",class:"co-number-field__btn co-number-field__btn--minus",type:"button",tabIndex:-1,disabled:!this.canDecrement,onClick:this.handleDecrement,"aria-label":"Decrease"},t("co-icon",{key:"86e0ce9b9801e50d9bda6b18a8e1f6f96581b178",name:"minus",size:16})),t("input",{key:"4bdf89e9a4958841a948b3bd6e9886898917f464",ref:e=>this.inputEl=e,class:"co-number-field__input",type:"text",inputMode:"decimal",value:this.focused&&this.inputEl?this.inputEl.value:this.displayValue,placeholder:this.placeholder,disabled:this.disabled,onInput:this.handleInput,onPaste:this.handlePaste,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,part:"input"}),this.affixText&&t("span",{key:"7bc7c12c6fe2708691d9a2972f9ed3037e82a1a8",class:"co-number-field__affix","aria-hidden":"true"},this.affixText),this.clearable&&!this.isEmpty&&!this.disabled&&t("button",{key:"2ef7c424a34a8a6cbfe8ac4cd0a5d8f0ed74e6d4",class:"co-number-field__clear",type:"button",tabIndex:-1,onClick:this.handleClear,"aria-label":"Clear"},t("co-icon",{key:"c428ca841c0de013cd151bd356686be43992de04",name:"x-circle",size:16,weight:"fill"})),t("slot",{key:"fb127a663d3839bbb10b8232b250eaf67faab898",name:"suffix"}),!this.hideControls&&t("button",{key:"684329d2f32a58f6be2a124f0cd20986a7fc49af",class:"co-number-field__btn co-number-field__btn--plus",type:"button",tabIndex:-1,disabled:!this.canIncrement,onClick:this.handleIncrement,"aria-label":"Increase"},t("co-icon",{key:"7ef48466e060efb314466d62216a8e00168ddbcd",name:"plus",size:16}))),this.helperText&&t("div",{key:"2cf6df2556160fef3c1dfd1b525991eb822cb285",class:`co-number-field__helper co-number-field__helper--${this.status}`},this.statusIcon&&t("co-icon",{key:"905ad795d9714fa9ae8fc2b9d4b9f6a7bba2d2ce",name:this.statusIcon,size:14,weight:"fill",class:"co-number-field__helper-icon"}),t("span",{key:"0c4825c4145298700de006eb3170e9ec3b52d3b7",class:"co-number-field__helper-text"},this.helperText)))}get el(){return r(this)}static get watchers(){return{value:[{onValueChange:0}]}}};h.style=":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-number-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-number-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-number-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-number-field__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-number-field--disabled .co-number-field__label,.co-number-field--disabled .co-number-field__secondary-label{color:var(--co-semantic-text-disabled)}.co-number-field__row{display:flex;align-items:center;gap:0;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;overflow:hidden;box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field--s .co-number-field__row{min-height:28px}.co-number-field--s .co-number-field__btn{width:28px}.co-number-field--sm .co-number-field__row{min-height:32px}.co-number-field--sm .co-number-field__btn{width:32px}.co-number-field--lg .co-number-field__row{min-height:48px}.co-number-field--lg .co-number-field__btn{width:48px}.co-number-field--focused .co-number-field__row{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-number-field--disabled .co-number-field__row{background:var(--co-semantic-surface-disabled);border-color:transparent}.co-number-field--error .co-number-field__row{border-color:var(--co-semantic-status-error)}.co-number-field--success .co-number-field__row{border-color:var(--co-semantic-status-success)}.co-number-field--warning .co-number-field__row{border-color:var(--co-color-status-review)}.co-number-field--info .co-number-field__row{border-color:var(--co-semantic-status-info)}.co-number-field__btn{display:flex;align-items:center;justify-content:center;width:40px;align-self:stretch;flex-shrink:0;border:none;background:transparent;color:var(--co-semantic-text-default);cursor:pointer;padding:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__btn:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-number-field__btn:active:not(:disabled){background:var(--co-semantic-surface-muted)}.co-number-field__btn:disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__btn--minus{border-right:1px solid var(--co-semantic-border-subtle)}.co-number-field__btn--plus{border-left:1px solid var(--co-semantic-border-subtle)}.co-number-field__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:100%;padding:0;border:none;background:transparent;color:var(--co-semantic-text-muted);cursor:pointer;transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__clear:hover{color:var(--co-semantic-text-default)}.co-number-field__input{flex:1;min-width:0;border:none;background:transparent;text-align:center;color:var(--co-semantic-text-default);font-family:inherit;font-size:inherit;font-weight:400;line-height:1;padding:var(--co-spacing-sm2) var(--co-spacing-sm2);outline:none;-moz-appearance:textfield}.co-number-field__input::placeholder{color:var(--co-semantic-text-muted)}.co-number-field__affix{flex-shrink:0;padding-right:var(--co-spacing-sm2);color:var(--co-semantic-text-muted);font-size:inherit;font-weight:400;line-height:1;pointer-events:none;user-select:none}::slotted([slot='suffix']){flex-shrink:0;margin-right:var(--co-spacing-xxs)}:host([hide-controls]) .co-number-field__input{text-align:right;padding-left:var(--co-spacing-md);padding-right:var(--co-spacing-md)}:host([hide-controls]) .co-number-field__affix{padding-right:var(--co-spacing-md);font-size:var(--co-font-size-12)}.co-number-field__input::-webkit-outer-spin-button,.co-number-field__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.co-number-field--disabled .co-number-field__input{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-number-field__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-number-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-number-field__helper--error .co-number-field__helper-icon,.co-number-field__helper--error .co-number-field__helper-text{color:var(--co-semantic-status-error)}.co-number-field__helper--success .co-number-field__helper-icon,.co-number-field__helper--success .co-number-field__helper-text{color:var(--co-semantic-status-success)}.co-number-field__helper--warning .co-number-field__helper-icon,.co-number-field__helper--warning .co-number-field__helper-text{color:var(--co-color-status-review)}.co-number-field__helper--info .co-number-field__helper-icon,.co-number-field__helper--info .co-number-field__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-number-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-number-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-number-field__label{white-space:normal}:host([layout='horizontal']) .co-number-field>:not(.co-number-field__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}";export{h as co_number_field}
@@ -431,7 +431,7 @@ export class CoAutocomplete {
431
431
  "references": {
432
432
  "AutocompleteOption": {
433
433
  "location": "local",
434
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-autocomplete/co-autocomplete.tsx",
434
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-avatar-group/co-avatar-group.tsx",
95
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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
  }
@@ -236,7 +236,7 @@ export class CoCheckboxGroup {
236
236
  "references": {
237
237
  "CheckboxOption": {
238
238
  "location": "local",
239
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-checkbox-group/co-checkbox-group.tsx",
239
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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
  }
@@ -310,7 +310,7 @@ export class CoColorArea {
310
310
  "references": {
311
311
  "ColorAreaDetail": {
312
312
  "location": "local",
313
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-color-area/co-color-area.tsx",
313
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-color-area/co-color-area.tsx",
334
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-color-slider/co-color-slider.tsx",
218
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-combobox/co-combobox.tsx",
548
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-command-search/co-command-search.tsx",
260
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-data-table/co-data-table.tsx",
512
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-date-range-picker/co-date-range-picker.tsx",
1058
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-date-range-picker/co-date-range-picker.tsx",
1079
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
939
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
965
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
1030
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
1223
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-document-editor/co-document-editor.tsx",
1259
+ "path": "/Users/agox/worktrees/cobalt-number-comma/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
  }
@@ -10,6 +10,11 @@ import { formatAmountText, parseNumericText, stripAmountText } from "../../utils
10
10
  * blur—, solo impide que el campo muestre algo que no es un número.
11
11
  */
12
12
  const NON_NUMERIC = /[^0-9.,-]/g;
13
+ /** «12,5» → «12.5»; con dos comas o con punto no se adivina (queda igual). */
14
+ function decimalCommaToDot(raw) {
15
+ const commas = raw.split(',').length - 1;
16
+ return commas === 1 && !raw.includes('.') ? raw.replace(',', '.') : raw;
17
+ }
13
18
  /** Caracteres que CUENTAN para el caret en modo amount (la coma es decorado). */
14
19
  const SIGNIFICANT = /[0-9.-]/;
15
20
  const countSignificant = (text) => {
@@ -122,7 +127,10 @@ export class CoNumberField {
122
127
  }
123
128
  if (raw === '-')
124
129
  return;
125
- const num = parseFloat(raw);
130
+ // Una coma sola y sin punto es el separador decimal (es/pt: «12,5»): parseFloat
131
+ // cortaría en ella y commitearía 12. Solo se normaliza lo que se parsea — el
132
+ // texto del campo queda como lo tipeó el usuario (y el caret en su lugar).
133
+ const num = parseFloat(decimalCommaToDot(raw));
126
134
  if (!isNaN(num)) {
127
135
  this.emitValue(this.fromDisplay(num));
128
136
  }
@@ -337,18 +345,18 @@ export class CoNumberField {
337
345
  return this.scaled && !this.isEmpty ? '%' : null;
338
346
  }
339
347
  render() {
340
- return (h("div", { key: 'cf4d63ce0278fd8f429aa4bf541497b7cf178ffe', class: {
348
+ return (h("div", { key: '87d77047c35e2f0b3b9a978839e5b3c99541dc2e', class: {
341
349
  'co-number-field': true,
342
350
  'co-number-field--disabled': this.disabled,
343
351
  'co-number-field--focused': this.focused,
344
352
  [`co-number-field--${this.size}`]: true,
345
353
  [`co-number-field--${this.status}`]: this.status !== 'default',
346
- } }, (this.label || this.secondaryLabel) && (h("div", { key: 'ecf9fd16f18a3ebbaef5b81b0c8ae41b80f04abf', class: "co-number-field__labels" }, this.label && h("label", { key: '7602d901e085e3380dff2a355d61ac1dc515428b', class: "co-number-field__label" }, this.label, h(RequiredMark, { key: '361743bf41c66ff28ceec00aba583328f2404713', required: this.required })), this.secondaryLabel && h("span", { key: 'ec9af4b27f3915704ef89ed6f51e7184eb5e1dd4', class: "co-number-field__secondary-label" }, this.secondaryLabel))), h("div", { key: '30f1716aed06da03f924fa1da2b2ab29dbede0bb', class: "co-number-field__row", part: "row" }, !this.hideControls && (h("button", { key: '1dbee1178df2a86e54ae42572a20ecf30484b8bc', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, h("co-icon", { key: '40f61bd3774fb03b6aaceaef006dd45f2df260d3', name: "minus", size: 16 }))), h("input", { key: '254a74cd61a2776a69953965f8b289267b25fbb2', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
354
+ } }, (this.label || this.secondaryLabel) && (h("div", { key: '22f0674035a68861fae6ce37aba4e51b10c03226', class: "co-number-field__labels" }, this.label && h("label", { key: '442ee74bed62bf7c800f231ad4992b791b85a30c', class: "co-number-field__label" }, this.label, h(RequiredMark, { key: 'ff7517b83b8e942512dcb8c1f504eafab55cea90', required: this.required })), this.secondaryLabel && h("span", { key: '736889aae85065fb28a56131e2f7a3da9fc86a48', class: "co-number-field__secondary-label" }, this.secondaryLabel))), h("div", { key: 'fd6163c7cb83073db2c19c3477447076372abb44', class: "co-number-field__row", part: "row" }, !this.hideControls && (h("button", { key: 'e1a52831b83c3255ce63c4ed48a228fe4fdb1629', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, h("co-icon", { key: '86e0ce9b9801e50d9bda6b18a8e1f6f96581b178', name: "minus", size: 16 }))), h("input", { key: '4bdf89e9a4958841a948b3bd6e9886898917f464', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
347
355
  // Mismo guard `focused` que el @Watch: mientras el usuario edita, su
348
356
  // texto manda. Sin esto, el re-render que dispara emitValue repinta
349
357
  // el input desde el NÚMERO y se come el texto en construcción
350
358
  // ("34,640.00" pegado quedaba "34,640"; un "12." perdería el punto).
351
- value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: '836ea4e4cba0b21a36b1017d6fc0c4d621d69e56', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (h("button", { key: '5eefa937a055dea1855d1bc3bae675003d8382c8', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: '096dec8d88b7b241cd83a04788bc4db05feec585', name: "x-circle", size: 16, weight: "fill" }))), h("slot", { key: '1ea7d1ff2c61d74b0884e7b8f1b7b54de4978876', name: "suffix" }), !this.hideControls && (h("button", { key: '9ae95697534b85dcd928c0d0e7f72a3b8c5402c7', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, h("co-icon", { key: 'af526ac4278865052f32ae7359a571aa485492af', name: "plus", size: 16 })))), this.helperText && (h("div", { key: '9bad3ffd8c70ce49205132f9f73294a83b6ebbc3', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '4987bc82011c4bb93e1bd00ef1ffd45d2e8681f4', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), h("span", { key: '8eac5821653dc0110113f94833e13f27411188a7', class: "co-number-field__helper-text" }, this.helperText)))));
359
+ value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: '7bc7c12c6fe2708691d9a2972f9ed3037e82a1a8', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (h("button", { key: '2ef7c424a34a8a6cbfe8ac4cd0a5d8f0ed74e6d4', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: 'c428ca841c0de013cd151bd356686be43992de04', name: "x-circle", size: 16, weight: "fill" }))), h("slot", { key: 'fb127a663d3839bbb10b8232b250eaf67faab898', name: "suffix" }), !this.hideControls && (h("button", { key: '684329d2f32a58f6be2a124f0cd20986a7fc49af', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, h("co-icon", { key: '7ef48466e060efb314466d62216a8e00168ddbcd', name: "plus", size: 16 })))), this.helperText && (h("div", { key: '2cf6df2556160fef3c1dfd1b525991eb822cb285', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '905ad795d9714fa9ae8fc2b9d4b9f6a7bba2d2ce', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), h("span", { key: '0c4825c4145298700de006eb3170e9ec3b52d3b7', class: "co-number-field__helper-text" }, this.helperText)))));
352
360
  }
353
361
  static get is() { return "co-number-field"; }
354
362
  static get encapsulation() { return "shadow"; }
@@ -446,7 +446,7 @@ export class CoPopover {
446
446
  "references": {
447
447
  "PopoverPlacement": {
448
448
  "location": "local",
449
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-popover/co-popover.tsx",
449
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-popover/co-popover.tsx",
450
450
  "id": "src/components/co-popover/co-popover.tsx::PopoverPlacement"
451
451
  }
452
452
  }
@@ -224,7 +224,7 @@ export class CoRadioGroup {
224
224
  "references": {
225
225
  "RadioOption": {
226
226
  "location": "local",
227
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-radio-group/co-radio-group.tsx",
227
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-radio-group/co-radio-group.tsx",
228
228
  "id": "src/components/co-radio-group/co-radio-group.tsx::RadioOption"
229
229
  }
230
230
  }
@@ -1349,7 +1349,7 @@ export class CoRefField {
1349
1349
  "references": {
1350
1350
  "RefFieldOption": {
1351
1351
  "location": "local",
1352
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1352
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1353
1353
  "id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
1354
1354
  }
1355
1355
  }
@@ -1490,7 +1490,7 @@ export class CoRefField {
1490
1490
  "references": {
1491
1491
  "RefFieldOption": {
1492
1492
  "location": "local",
1493
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1493
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1494
1494
  "id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
1495
1495
  }
1496
1496
  }
@@ -1511,7 +1511,7 @@ export class CoRefField {
1511
1511
  "references": {
1512
1512
  "RefFieldOption": {
1513
1513
  "location": "local",
1514
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1514
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1515
1515
  "id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
1516
1516
  }
1517
1517
  }
@@ -1550,7 +1550,7 @@ export class CoRefField {
1550
1550
  },
1551
1551
  "RefFieldOption": {
1552
1552
  "location": "local",
1553
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1553
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1554
1554
  "id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
1555
1555
  }
1556
1556
  },
@@ -160,7 +160,7 @@ export class CoSegmentedBar {
160
160
  "references": {
161
161
  "CoSegment": {
162
162
  "location": "local",
163
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-segmented-bar/co-segmented-bar.tsx",
163
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-segmented-bar/co-segmented-bar.tsx",
164
164
  "id": "src/components/co-segmented-bar/co-segmented-bar.tsx::CoSegment"
165
165
  }
166
166
  }
@@ -846,7 +846,7 @@ export class CoSelect {
846
846
  "references": {
847
847
  "SelectOption": {
848
848
  "location": "local",
849
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-select/co-select.tsx",
849
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-select/co-select.tsx",
850
850
  "id": "src/components/co-select/co-select.tsx::SelectOption"
851
851
  }
852
852
  }
@@ -718,7 +718,7 @@ export class CoSidebarNav {
718
718
  "references": {
719
719
  "NavigateDetail": {
720
720
  "location": "local",
721
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-sidebar-nav/co-sidebar-nav.tsx",
721
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-sidebar-nav/co-sidebar-nav.tsx",
722
722
  "id": "src/components/co-sidebar-nav/co-sidebar-nav.tsx::NavigateDetail"
723
723
  }
724
724
  }
@@ -189,7 +189,7 @@ export class CoToast {
189
189
  "references": {
190
190
  "CoToastActionsLayout": {
191
191
  "location": "local",
192
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-toast/co-toast.tsx",
192
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-toast/co-toast.tsx",
193
193
  "id": "src/components/co-toast/co-toast.tsx::CoToastActionsLayout"
194
194
  }
195
195
  }
@@ -215,7 +215,7 @@ export class CoToast {
215
215
  "references": {
216
216
  "CoToastVariant": {
217
217
  "location": "local",
218
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-toast/co-toast.tsx",
218
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-toast/co-toast.tsx",
219
219
  "id": "src/components/co-toast/co-toast.tsx::CoToastVariant"
220
220
  }
221
221
  }
@@ -214,7 +214,7 @@ export class CoTransferList {
214
214
  "references": {
215
215
  "TransferOption": {
216
216
  "location": "local",
217
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-transfer-list/co-transfer-list.tsx",
217
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-transfer-list/co-transfer-list.tsx",
218
218
  "id": "src/components/co-transfer-list/co-transfer-list.tsx::TransferOption"
219
219
  }
220
220
  }
@@ -243,7 +243,7 @@ export class CoTreeItem {
243
243
  "references": {
244
244
  "TreeItemSelection": {
245
245
  "location": "local",
246
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-tree-item/co-tree-item.tsx",
246
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-tree-item/co-tree-item.tsx",
247
247
  "id": "src/components/co-tree-item/co-tree-item.tsx::TreeItemSelection"
248
248
  }
249
249
  }
@@ -269,7 +269,7 @@ export class CoTreeItem {
269
269
  "references": {
270
270
  "TreeItemSize": {
271
271
  "location": "local",
272
- "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-tree-item/co-tree-item.tsx",
272
+ "path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-tree-item/co-tree-item.tsx",
273
273
  "id": "src/components/co-tree-item/co-tree-item.tsx::TreeItemSize"
274
274
  }
275
275
  }
@@ -1 +1 @@
1
- import{t as e,p as t,H as i,c as r,h as o}from"./index.js";import{R as n}from"./p-CWneqh4n.js";import{d as s}from"./p-KK2vAKs-.js";const c=(e,t)=>({integer:e.slice(0,15),decimals:t.slice(0,8)});function a(e,t=!1){const i=(null!=e?e:"")+"",r=t&&/^\s*-/.test(i),o=i.replace(/[^\d.]/g,""),[n,...s]=o.split("."),{integer:a,decimals:l}=c(n,s.join("")),d=s.length?`${a}.${l}`:a;return d?r?"-"+d:d:r?"-":""}function l(e){if(!e)return"";const t=e.startsWith("-"),i=t?e.slice(1):e,r=i.indexOf("."),o=r>=0?i.slice(0,r):i,n=r>=0?i.slice(r):"";let s="";for(let e=0;e<o.length;e++)e>0&&(o.length-e)%3==0&&(s+=","),s+=o[e];return`${t?"-":""}${s}${n}`}const d=/[^0-9.,-]/g,u=/[0-9.-]/,f=e=>{let t=0;for(const i of e)u.test(i)&&t++;return t},h=(e,t)=>{if(t<=0)return 0;let i=0;for(let r=0;r<e.length;r++)if(u.test(e[r])&&(i++,i===t))return r+1;return e.length},b=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.coChange=r(this,"coChange",7),this.coClear=r(this,"coClear",7),this.required=!1,this.layout="vertical",this.status="default",this.value=0,this.step=1,this.disabled=!1,this.placeholder="0",this.size="md",this.clearable=!1,this.hideControls=!1,this.focused=!1,this.emptiedByUser=!1,this.handleDecrement=()=>{this.canDecrement&&(this.emitValue(this.current-this.step),this.syncInputText())},this.handleIncrement=()=>{this.canIncrement&&(this.emitValue(this.current+this.step),this.syncInputText())},this.handleInput=e=>{var t;const i=e.target;if(this.isAmount)return void this.handleAmountInput(i);let r=i.value;const o=r.replace(d,"");if(o!==r){const e=(null!==(t=i.selectionStart)&&void 0!==t?t:r.length)-(r.length-o.length);i.value=o;const n=e<0?0:e;i.setSelectionRange(n,n),r=o}if(""===r)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===r)return;const n=parseFloat(r);isNaN(n)||this.emitValue(this.fromDisplay(n))},this.handlePaste=e=>{var t,i,r,o;if(!this.isAmount)return;e.preventDefault();const n=e.target,s=null!==(i=null===(t=e.clipboardData)||void 0===t?void 0:t.getData("text"))&&void 0!==i?i:"";let d=function(e){const t=((null!=e?e:"")+"").replace(/[^\d.,]/g,"");if(!t)return"";const i=t.lastIndexOf("."),r=t.lastIndexOf(",");let o=-1;if(i>=0&&r>=0)o=Math.max(i,r);else if(i>=0||r>=0){const e=i>=0?".":",",r=t.split(e);2===r.length&&3!==r[1].length&&(o=t.lastIndexOf(e))}const{integer:n,decimals:s}=c((o>=0?t.slice(0,o):t).replace(/[.,]/g,""),o>=0?t.slice(o+1).replace(/[.,]/g,""):"");return n||s?s?`${n||"0"}.${s}`:n:""}(s);d&&this.allowNegative&&/^\s*-/.test(s)&&(d="-"+d);const u=null!==(r=n.selectionStart)&&void 0!==r?r:n.value.length,b=null!==(o=n.selectionEnd)&&void 0!==o?o:u,m=a(n.value.slice(0,u),this.allowNegative),p=a(n.value.slice(b)),_=a(m+d+p,this.allowNegative),g=l(_);n.value=g;const v=h(g,f(m+d));if(n.setSelectionRange(v,v),""===_||"-"===_)return void(""===_&&this.clearable?(this.value=null,this.coChange.emit(null)):""===_&&(this.emptiedByUser=!0));const x=parseFloat(_);isNaN(x)||this.emitValue(x)},this.handleClear=()=>{var e;this.value=null,this.syncInputText(),this.coClear.emit(),this.coChange.emit(null),null===(e=this.inputEl)||void 0===e||e.focus()},this.handleBlur=()=>{var e;this.focused=!1,this.emptiedByUser?this.emitValue(null!==(e=this.min)&&void 0!==e?e:0):this.isEmpty||this.emitValue(this.value),this.syncInputText()},this.handleFocus=()=>{this.focused=!0},this.handleKeyDown=e=>{"ArrowUp"===e.key?(e.preventDefault(),this.handleIncrement()):"ArrowDown"===e.key&&(e.preventDefault(),this.handleDecrement())}}onValueChange(){this.inputEl&&!this.focused&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get isEmpty(){return null==this.value||Number.isNaN(this.value)}get current(){var e;return this.isEmpty?null!==(e=this.min)&&void 0!==e?e:0:this.value}get statusIcon(){return{error:"warning-circle",success:"check-circle",warning:"warning",info:"info"}[this.status]||null}get canDecrement(){return!this.disabled&&(void 0===this.min||this.current>this.min)}get canIncrement(){return!this.disabled&&(void 0===this.max||this.current<this.max)}clamp(e){return void 0!==this.min&&e<this.min?this.min:void 0!==this.max&&e>this.max?this.max:e}get scaled(){return"rate"===this.format||"percent"===this.format}get isAmount(){return"amount"===this.format}get allowNegative(){return void 0===this.min||this.min<0}get displayValue(){if(this.isEmpty)return"";const e=this.toDisplay(this.value)+"";return this.isAmount?l(e):e}toDisplay(e){return this.scaled?Number((100*e).toFixed(6)):e}fromDisplay(e){return this.scaled?e/100:e}emitValue(e){this.emptiedByUser=!1;const t=this.clamp(e);this.value=t,this.coChange.emit(t)}handleAmountInput(e){var t;const i=e.value,r=null!==(t=e.selectionStart)&&void 0!==t?t:i.length,o=f(i.slice(0,r)),n=a(i,this.allowNegative),s=l(n);if(e.value!==s){e.value=s;const t=h(s,o);e.setSelectionRange(t,t)}if(""===n)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===n)return;const c=parseFloat(n);isNaN(c)||this.emitValue(c)}syncInputText(){this.inputEl&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get affixText(){return void 0!==this.suffix?this.suffix||null:this.scaled&&!this.isEmpty?"%":null}render(){return o("div",{key:"cf4d63ce0278fd8f429aa4bf541497b7cf178ffe",class:{"co-number-field":!0,"co-number-field--disabled":this.disabled,"co-number-field--focused":this.focused,["co-number-field--"+this.size]:!0,["co-number-field--"+this.status]:"default"!==this.status}},(this.label||this.secondaryLabel)&&o("div",{key:"ecf9fd16f18a3ebbaef5b81b0c8ae41b80f04abf",class:"co-number-field__labels"},this.label&&o("label",{key:"7602d901e085e3380dff2a355d61ac1dc515428b",class:"co-number-field__label"},this.label,o(n,{key:"361743bf41c66ff28ceec00aba583328f2404713",required:this.required})),this.secondaryLabel&&o("span",{key:"ec9af4b27f3915704ef89ed6f51e7184eb5e1dd4",class:"co-number-field__secondary-label"},this.secondaryLabel)),o("div",{key:"30f1716aed06da03f924fa1da2b2ab29dbede0bb",class:"co-number-field__row",part:"row"},!this.hideControls&&o("button",{key:"1dbee1178df2a86e54ae42572a20ecf30484b8bc",class:"co-number-field__btn co-number-field__btn--minus",type:"button",tabIndex:-1,disabled:!this.canDecrement,onClick:this.handleDecrement,"aria-label":"Decrease"},o("co-icon",{key:"40f61bd3774fb03b6aaceaef006dd45f2df260d3",name:"minus",size:16})),o("input",{key:"254a74cd61a2776a69953965f8b289267b25fbb2",ref:e=>this.inputEl=e,class:"co-number-field__input",type:"text",inputMode:"decimal",value:this.focused&&this.inputEl?this.inputEl.value:this.displayValue,placeholder:this.placeholder,disabled:this.disabled,onInput:this.handleInput,onPaste:this.handlePaste,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,part:"input"}),this.affixText&&o("span",{key:"836ea4e4cba0b21a36b1017d6fc0c4d621d69e56",class:"co-number-field__affix","aria-hidden":"true"},this.affixText),this.clearable&&!this.isEmpty&&!this.disabled&&o("button",{key:"5eefa937a055dea1855d1bc3bae675003d8382c8",class:"co-number-field__clear",type:"button",tabIndex:-1,onClick:this.handleClear,"aria-label":"Clear"},o("co-icon",{key:"096dec8d88b7b241cd83a04788bc4db05feec585",name:"x-circle",size:16,weight:"fill"})),o("slot",{key:"1ea7d1ff2c61d74b0884e7b8f1b7b54de4978876",name:"suffix"}),!this.hideControls&&o("button",{key:"9ae95697534b85dcd928c0d0e7f72a3b8c5402c7",class:"co-number-field__btn co-number-field__btn--plus",type:"button",tabIndex:-1,disabled:!this.canIncrement,onClick:this.handleIncrement,"aria-label":"Increase"},o("co-icon",{key:"af526ac4278865052f32ae7359a571aa485492af",name:"plus",size:16}))),this.helperText&&o("div",{key:"9bad3ffd8c70ce49205132f9f73294a83b6ebbc3",class:"co-number-field__helper co-number-field__helper--"+this.status},this.statusIcon&&o("co-icon",{key:"4987bc82011c4bb93e1bd00ef1ffd45d2e8681f4",name:this.statusIcon,size:14,weight:"fill",class:"co-number-field__helper-icon"}),o("span",{key:"8eac5821653dc0110113f94833e13f27411188a7",class:"co-number-field__helper-text"},this.helperText)))}get el(){return this}static get watchers(){return{value:[{onValueChange:0}]}}static get style(){return":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-number-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-number-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-number-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-number-field__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-number-field--disabled .co-number-field__label,.co-number-field--disabled .co-number-field__secondary-label{color:var(--co-semantic-text-disabled)}.co-number-field__row{display:flex;align-items:center;gap:0;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;overflow:hidden;box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field--s .co-number-field__row{min-height:28px}.co-number-field--s .co-number-field__btn{width:28px}.co-number-field--sm .co-number-field__row{min-height:32px}.co-number-field--sm .co-number-field__btn{width:32px}.co-number-field--lg .co-number-field__row{min-height:48px}.co-number-field--lg .co-number-field__btn{width:48px}.co-number-field--focused .co-number-field__row{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-number-field--disabled .co-number-field__row{background:var(--co-semantic-surface-disabled);border-color:transparent}.co-number-field--error .co-number-field__row{border-color:var(--co-semantic-status-error)}.co-number-field--success .co-number-field__row{border-color:var(--co-semantic-status-success)}.co-number-field--warning .co-number-field__row{border-color:var(--co-color-status-review)}.co-number-field--info .co-number-field__row{border-color:var(--co-semantic-status-info)}.co-number-field__btn{display:flex;align-items:center;justify-content:center;width:40px;align-self:stretch;flex-shrink:0;border:none;background:transparent;color:var(--co-semantic-text-default);cursor:pointer;padding:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__btn:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-number-field__btn:active:not(:disabled){background:var(--co-semantic-surface-muted)}.co-number-field__btn:disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__btn--minus{border-right:1px solid var(--co-semantic-border-subtle)}.co-number-field__btn--plus{border-left:1px solid var(--co-semantic-border-subtle)}.co-number-field__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:100%;padding:0;border:none;background:transparent;color:var(--co-semantic-text-muted);cursor:pointer;transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__clear:hover{color:var(--co-semantic-text-default)}.co-number-field__input{flex:1;min-width:0;border:none;background:transparent;text-align:center;color:var(--co-semantic-text-default);font-family:inherit;font-size:inherit;font-weight:400;line-height:1;padding:var(--co-spacing-sm2) var(--co-spacing-sm2);outline:none;-moz-appearance:textfield}.co-number-field__input::placeholder{color:var(--co-semantic-text-muted)}.co-number-field__affix{flex-shrink:0;padding-right:var(--co-spacing-sm2);color:var(--co-semantic-text-muted);font-size:inherit;font-weight:400;line-height:1;pointer-events:none;user-select:none}::slotted([slot='suffix']){flex-shrink:0;margin-right:var(--co-spacing-xxs)}:host([hide-controls]) .co-number-field__input{text-align:right;padding-left:var(--co-spacing-md);padding-right:var(--co-spacing-md)}:host([hide-controls]) .co-number-field__affix{padding-right:var(--co-spacing-md);font-size:var(--co-font-size-12)}.co-number-field__input::-webkit-outer-spin-button,.co-number-field__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.co-number-field--disabled .co-number-field__input{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-number-field__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-number-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-number-field__helper--error .co-number-field__helper-icon,.co-number-field__helper--error .co-number-field__helper-text{color:var(--co-semantic-status-error)}.co-number-field__helper--success .co-number-field__helper-icon,.co-number-field__helper--success .co-number-field__helper-text{color:var(--co-semantic-status-success)}.co-number-field__helper--warning .co-number-field__helper-icon,.co-number-field__helper--warning .co-number-field__helper-text{color:var(--co-color-status-review)}.co-number-field__helper--info .co-number-field__helper-icon,.co-number-field__helper--info .co-number-field__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-number-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-number-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-number-field__label{white-space:normal}:host([layout='horizontal']) .co-number-field>:not(.co-number-field__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}"}},[257,"co-number-field",{label:[1],required:[4],secondaryLabel:[1,"secondary-label"],helperText:[1,"helper-text"],layout:[513],status:[1],value:[1538],min:[2],max:[2],step:[2],disabled:[4],placeholder:[1],size:[513],clearable:[4],format:[513],hideControls:[516,"hide-controls"],suffix:[1],focused:[32]},void 0,{value:[{onValueChange:0}]}]);function m(){"undefined"!=typeof customElements&&["co-number-field","co-icon"].forEach((t=>{switch(t){case"co-number-field":customElements.get(e(t))||customElements.define(e(t),b);break;case"co-icon":customElements.get(e(t))||s()}}))}m();const p=b,_=m;export{p as CoNumberField,_ as defineCustomElement}
1
+ import{t as e,p as t,H as i,c as r,h as o}from"./index.js";import{R as n}from"./p-CWneqh4n.js";import{d as s}from"./p-KK2vAKs-.js";const c=(e,t)=>({integer:e.slice(0,15),decimals:t.slice(0,8)});function a(e,t=!1){const i=(null!=e?e:"")+"",r=t&&/^\s*-/.test(i),o=i.replace(/[^\d.]/g,""),[n,...s]=o.split("."),{integer:a,decimals:l}=c(n,s.join("")),d=s.length?`${a}.${l}`:a;return d?r?"-"+d:d:r?"-":""}function l(e){if(!e)return"";const t=e.startsWith("-"),i=t?e.slice(1):e,r=i.indexOf("."),o=r>=0?i.slice(0,r):i,n=r>=0?i.slice(r):"";let s="";for(let e=0;e<o.length;e++)e>0&&(o.length-e)%3==0&&(s+=","),s+=o[e];return`${t?"-":""}${s}${n}`}const d=/[^0-9.,-]/g,u=/[0-9.-]/,h=e=>{let t=0;for(const i of e)u.test(i)&&t++;return t},f=(e,t)=>{if(t<=0)return 0;let i=0;for(let r=0;r<e.length;r++)if(u.test(e[r])&&(i++,i===t))return r+1;return e.length},b=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.coChange=r(this,"coChange",7),this.coClear=r(this,"coClear",7),this.required=!1,this.layout="vertical",this.status="default",this.value=0,this.step=1,this.disabled=!1,this.placeholder="0",this.size="md",this.clearable=!1,this.hideControls=!1,this.focused=!1,this.emptiedByUser=!1,this.handleDecrement=()=>{this.canDecrement&&(this.emitValue(this.current-this.step),this.syncInputText())},this.handleIncrement=()=>{this.canIncrement&&(this.emitValue(this.current+this.step),this.syncInputText())},this.handleInput=e=>{var t;const i=e.target;if(this.isAmount)return void this.handleAmountInput(i);let r=i.value;const o=r.replace(d,"");if(o!==r){const e=(null!==(t=i.selectionStart)&&void 0!==t?t:r.length)-(r.length-o.length);i.value=o;const n=e<0?0:e;i.setSelectionRange(n,n),r=o}if(""===r)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===r)return;const n=parseFloat(function(e){return 1!=e.split(",").length-1||e.includes(".")?e:e.replace(",",".")}(r));isNaN(n)||this.emitValue(this.fromDisplay(n))},this.handlePaste=e=>{var t,i,r,o;if(!this.isAmount)return;e.preventDefault();const n=e.target,s=null!==(i=null===(t=e.clipboardData)||void 0===t?void 0:t.getData("text"))&&void 0!==i?i:"";let d=function(e){const t=((null!=e?e:"")+"").replace(/[^\d.,]/g,"");if(!t)return"";const i=t.lastIndexOf("."),r=t.lastIndexOf(",");let o=-1;if(i>=0&&r>=0)o=Math.max(i,r);else if(i>=0||r>=0){const e=i>=0?".":",",r=t.split(e);2===r.length&&3!==r[1].length&&(o=t.lastIndexOf(e))}const{integer:n,decimals:s}=c((o>=0?t.slice(0,o):t).replace(/[.,]/g,""),o>=0?t.slice(o+1).replace(/[.,]/g,""):"");return n||s?s?`${n||"0"}.${s}`:n:""}(s);d&&this.allowNegative&&/^\s*-/.test(s)&&(d="-"+d);const u=null!==(r=n.selectionStart)&&void 0!==r?r:n.value.length,b=null!==(o=n.selectionEnd)&&void 0!==o?o:u,m=a(n.value.slice(0,u),this.allowNegative),p=a(n.value.slice(b)),_=a(m+d+p,this.allowNegative),g=l(_);n.value=g;const v=f(g,h(m+d));if(n.setSelectionRange(v,v),""===_||"-"===_)return void(""===_&&this.clearable?(this.value=null,this.coChange.emit(null)):""===_&&(this.emptiedByUser=!0));const x=parseFloat(_);isNaN(x)||this.emitValue(x)},this.handleClear=()=>{var e;this.value=null,this.syncInputText(),this.coClear.emit(),this.coChange.emit(null),null===(e=this.inputEl)||void 0===e||e.focus()},this.handleBlur=()=>{var e;this.focused=!1,this.emptiedByUser?this.emitValue(null!==(e=this.min)&&void 0!==e?e:0):this.isEmpty||this.emitValue(this.value),this.syncInputText()},this.handleFocus=()=>{this.focused=!0},this.handleKeyDown=e=>{"ArrowUp"===e.key?(e.preventDefault(),this.handleIncrement()):"ArrowDown"===e.key&&(e.preventDefault(),this.handleDecrement())}}onValueChange(){this.inputEl&&!this.focused&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get isEmpty(){return null==this.value||Number.isNaN(this.value)}get current(){var e;return this.isEmpty?null!==(e=this.min)&&void 0!==e?e:0:this.value}get statusIcon(){return{error:"warning-circle",success:"check-circle",warning:"warning",info:"info"}[this.status]||null}get canDecrement(){return!this.disabled&&(void 0===this.min||this.current>this.min)}get canIncrement(){return!this.disabled&&(void 0===this.max||this.current<this.max)}clamp(e){return void 0!==this.min&&e<this.min?this.min:void 0!==this.max&&e>this.max?this.max:e}get scaled(){return"rate"===this.format||"percent"===this.format}get isAmount(){return"amount"===this.format}get allowNegative(){return void 0===this.min||this.min<0}get displayValue(){if(this.isEmpty)return"";const e=this.toDisplay(this.value)+"";return this.isAmount?l(e):e}toDisplay(e){return this.scaled?Number((100*e).toFixed(6)):e}fromDisplay(e){return this.scaled?e/100:e}emitValue(e){this.emptiedByUser=!1;const t=this.clamp(e);this.value=t,this.coChange.emit(t)}handleAmountInput(e){var t;const i=e.value,r=null!==(t=e.selectionStart)&&void 0!==t?t:i.length,o=h(i.slice(0,r)),n=a(i,this.allowNegative),s=l(n);if(e.value!==s){e.value=s;const t=f(s,o);e.setSelectionRange(t,t)}if(""===n)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===n)return;const c=parseFloat(n);isNaN(c)||this.emitValue(c)}syncInputText(){this.inputEl&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get affixText(){return void 0!==this.suffix?this.suffix||null:this.scaled&&!this.isEmpty?"%":null}render(){return o("div",{key:"87d77047c35e2f0b3b9a978839e5b3c99541dc2e",class:{"co-number-field":!0,"co-number-field--disabled":this.disabled,"co-number-field--focused":this.focused,["co-number-field--"+this.size]:!0,["co-number-field--"+this.status]:"default"!==this.status}},(this.label||this.secondaryLabel)&&o("div",{key:"22f0674035a68861fae6ce37aba4e51b10c03226",class:"co-number-field__labels"},this.label&&o("label",{key:"442ee74bed62bf7c800f231ad4992b791b85a30c",class:"co-number-field__label"},this.label,o(n,{key:"ff7517b83b8e942512dcb8c1f504eafab55cea90",required:this.required})),this.secondaryLabel&&o("span",{key:"736889aae85065fb28a56131e2f7a3da9fc86a48",class:"co-number-field__secondary-label"},this.secondaryLabel)),o("div",{key:"fd6163c7cb83073db2c19c3477447076372abb44",class:"co-number-field__row",part:"row"},!this.hideControls&&o("button",{key:"e1a52831b83c3255ce63c4ed48a228fe4fdb1629",class:"co-number-field__btn co-number-field__btn--minus",type:"button",tabIndex:-1,disabled:!this.canDecrement,onClick:this.handleDecrement,"aria-label":"Decrease"},o("co-icon",{key:"86e0ce9b9801e50d9bda6b18a8e1f6f96581b178",name:"minus",size:16})),o("input",{key:"4bdf89e9a4958841a948b3bd6e9886898917f464",ref:e=>this.inputEl=e,class:"co-number-field__input",type:"text",inputMode:"decimal",value:this.focused&&this.inputEl?this.inputEl.value:this.displayValue,placeholder:this.placeholder,disabled:this.disabled,onInput:this.handleInput,onPaste:this.handlePaste,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,part:"input"}),this.affixText&&o("span",{key:"7bc7c12c6fe2708691d9a2972f9ed3037e82a1a8",class:"co-number-field__affix","aria-hidden":"true"},this.affixText),this.clearable&&!this.isEmpty&&!this.disabled&&o("button",{key:"2ef7c424a34a8a6cbfe8ac4cd0a5d8f0ed74e6d4",class:"co-number-field__clear",type:"button",tabIndex:-1,onClick:this.handleClear,"aria-label":"Clear"},o("co-icon",{key:"c428ca841c0de013cd151bd356686be43992de04",name:"x-circle",size:16,weight:"fill"})),o("slot",{key:"fb127a663d3839bbb10b8232b250eaf67faab898",name:"suffix"}),!this.hideControls&&o("button",{key:"684329d2f32a58f6be2a124f0cd20986a7fc49af",class:"co-number-field__btn co-number-field__btn--plus",type:"button",tabIndex:-1,disabled:!this.canIncrement,onClick:this.handleIncrement,"aria-label":"Increase"},o("co-icon",{key:"7ef48466e060efb314466d62216a8e00168ddbcd",name:"plus",size:16}))),this.helperText&&o("div",{key:"2cf6df2556160fef3c1dfd1b525991eb822cb285",class:"co-number-field__helper co-number-field__helper--"+this.status},this.statusIcon&&o("co-icon",{key:"905ad795d9714fa9ae8fc2b9d4b9f6a7bba2d2ce",name:this.statusIcon,size:14,weight:"fill",class:"co-number-field__helper-icon"}),o("span",{key:"0c4825c4145298700de006eb3170e9ec3b52d3b7",class:"co-number-field__helper-text"},this.helperText)))}get el(){return this}static get watchers(){return{value:[{onValueChange:0}]}}static get style(){return":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-number-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-number-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-number-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-number-field__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-number-field--disabled .co-number-field__label,.co-number-field--disabled .co-number-field__secondary-label{color:var(--co-semantic-text-disabled)}.co-number-field__row{display:flex;align-items:center;gap:0;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;overflow:hidden;box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field--s .co-number-field__row{min-height:28px}.co-number-field--s .co-number-field__btn{width:28px}.co-number-field--sm .co-number-field__row{min-height:32px}.co-number-field--sm .co-number-field__btn{width:32px}.co-number-field--lg .co-number-field__row{min-height:48px}.co-number-field--lg .co-number-field__btn{width:48px}.co-number-field--focused .co-number-field__row{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-number-field--disabled .co-number-field__row{background:var(--co-semantic-surface-disabled);border-color:transparent}.co-number-field--error .co-number-field__row{border-color:var(--co-semantic-status-error)}.co-number-field--success .co-number-field__row{border-color:var(--co-semantic-status-success)}.co-number-field--warning .co-number-field__row{border-color:var(--co-color-status-review)}.co-number-field--info .co-number-field__row{border-color:var(--co-semantic-status-info)}.co-number-field__btn{display:flex;align-items:center;justify-content:center;width:40px;align-self:stretch;flex-shrink:0;border:none;background:transparent;color:var(--co-semantic-text-default);cursor:pointer;padding:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__btn:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-number-field__btn:active:not(:disabled){background:var(--co-semantic-surface-muted)}.co-number-field__btn:disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__btn--minus{border-right:1px solid var(--co-semantic-border-subtle)}.co-number-field__btn--plus{border-left:1px solid var(--co-semantic-border-subtle)}.co-number-field__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:100%;padding:0;border:none;background:transparent;color:var(--co-semantic-text-muted);cursor:pointer;transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__clear:hover{color:var(--co-semantic-text-default)}.co-number-field__input{flex:1;min-width:0;border:none;background:transparent;text-align:center;color:var(--co-semantic-text-default);font-family:inherit;font-size:inherit;font-weight:400;line-height:1;padding:var(--co-spacing-sm2) var(--co-spacing-sm2);outline:none;-moz-appearance:textfield}.co-number-field__input::placeholder{color:var(--co-semantic-text-muted)}.co-number-field__affix{flex-shrink:0;padding-right:var(--co-spacing-sm2);color:var(--co-semantic-text-muted);font-size:inherit;font-weight:400;line-height:1;pointer-events:none;user-select:none}::slotted([slot='suffix']){flex-shrink:0;margin-right:var(--co-spacing-xxs)}:host([hide-controls]) .co-number-field__input{text-align:right;padding-left:var(--co-spacing-md);padding-right:var(--co-spacing-md)}:host([hide-controls]) .co-number-field__affix{padding-right:var(--co-spacing-md);font-size:var(--co-font-size-12)}.co-number-field__input::-webkit-outer-spin-button,.co-number-field__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.co-number-field--disabled .co-number-field__input{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-number-field__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-number-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-number-field__helper--error .co-number-field__helper-icon,.co-number-field__helper--error .co-number-field__helper-text{color:var(--co-semantic-status-error)}.co-number-field__helper--success .co-number-field__helper-icon,.co-number-field__helper--success .co-number-field__helper-text{color:var(--co-semantic-status-success)}.co-number-field__helper--warning .co-number-field__helper-icon,.co-number-field__helper--warning .co-number-field__helper-text{color:var(--co-color-status-review)}.co-number-field__helper--info .co-number-field__helper-icon,.co-number-field__helper--info .co-number-field__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-number-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-number-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-number-field__label{white-space:normal}:host([layout='horizontal']) .co-number-field>:not(.co-number-field__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}"}},[257,"co-number-field",{label:[1],required:[4],secondaryLabel:[1,"secondary-label"],helperText:[1,"helper-text"],layout:[513],status:[1],value:[1538],min:[2],max:[2],step:[2],disabled:[4],placeholder:[1],size:[513],clearable:[4],format:[513],hideControls:[516,"hide-controls"],suffix:[1],focused:[32]},void 0,{value:[{onValueChange:0}]}]);function m(){"undefined"!=typeof customElements&&["co-number-field","co-icon"].forEach((t=>{switch(t){case"co-number-field":customElements.get(e(t))||customElements.define(e(t),b);break;case"co-icon":customElements.get(e(t))||s()}}))}m();const p=b,_=m;export{p as CoNumberField,_ as defineCustomElement}
@@ -108,6 +108,11 @@ const coNumberFieldCss = () => `:host{display:block;font-family:var(--co-font-fa
108
108
  * blur—, solo impide que el campo muestre algo que no es un número.
109
109
  */
110
110
  const NON_NUMERIC = /[^0-9.,-]/g;
111
+ /** «12,5» → «12.5»; con dos comas o con punto no se adivina (queda igual). */
112
+ function decimalCommaToDot(raw) {
113
+ const commas = raw.split(',').length - 1;
114
+ return commas === 1 && !raw.includes('.') ? raw.replace(',', '.') : raw;
115
+ }
111
116
  /** Caracteres que CUENTAN para el caret en modo amount (la coma es decorado). */
112
117
  const SIGNIFICANT = /[0-9.-]/;
113
118
  const countSignificant = (text) => {
@@ -215,7 +220,10 @@ const CoNumberField = class {
215
220
  }
216
221
  if (raw === '-')
217
222
  return;
218
- const num = parseFloat(raw);
223
+ // Una coma sola y sin punto es el separador decimal (es/pt: «12,5»): parseFloat
224
+ // cortaría en ella y commitearía 12. Solo se normaliza lo que se parsea — el
225
+ // texto del campo queda como lo tipeó el usuario (y el caret en su lugar).
226
+ const num = parseFloat(decimalCommaToDot(raw));
219
227
  if (!isNaN(num)) {
220
228
  this.emitValue(this.fromDisplay(num));
221
229
  }
@@ -430,18 +438,18 @@ const CoNumberField = class {
430
438
  return this.scaled && !this.isEmpty ? '%' : null;
431
439
  }
432
440
  render() {
433
- return (h("div", { key: 'cf4d63ce0278fd8f429aa4bf541497b7cf178ffe', class: {
441
+ return (h("div", { key: '87d77047c35e2f0b3b9a978839e5b3c99541dc2e', class: {
434
442
  'co-number-field': true,
435
443
  'co-number-field--disabled': this.disabled,
436
444
  'co-number-field--focused': this.focused,
437
445
  [`co-number-field--${this.size}`]: true,
438
446
  [`co-number-field--${this.status}`]: this.status !== 'default',
439
- } }, (this.label || this.secondaryLabel) && (h("div", { key: 'ecf9fd16f18a3ebbaef5b81b0c8ae41b80f04abf', class: "co-number-field__labels" }, this.label && h("label", { key: '7602d901e085e3380dff2a355d61ac1dc515428b', class: "co-number-field__label" }, this.label, h(RequiredMark, { key: '361743bf41c66ff28ceec00aba583328f2404713', required: this.required })), this.secondaryLabel && h("span", { key: 'ec9af4b27f3915704ef89ed6f51e7184eb5e1dd4', class: "co-number-field__secondary-label" }, this.secondaryLabel))), h("div", { key: '30f1716aed06da03f924fa1da2b2ab29dbede0bb', class: "co-number-field__row", part: "row" }, !this.hideControls && (h("button", { key: '1dbee1178df2a86e54ae42572a20ecf30484b8bc', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, h("co-icon", { key: '40f61bd3774fb03b6aaceaef006dd45f2df260d3', name: "minus", size: 16 }))), h("input", { key: '254a74cd61a2776a69953965f8b289267b25fbb2', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
447
+ } }, (this.label || this.secondaryLabel) && (h("div", { key: '22f0674035a68861fae6ce37aba4e51b10c03226', class: "co-number-field__labels" }, this.label && h("label", { key: '442ee74bed62bf7c800f231ad4992b791b85a30c', class: "co-number-field__label" }, this.label, h(RequiredMark, { key: 'ff7517b83b8e942512dcb8c1f504eafab55cea90', required: this.required })), this.secondaryLabel && h("span", { key: '736889aae85065fb28a56131e2f7a3da9fc86a48', class: "co-number-field__secondary-label" }, this.secondaryLabel))), h("div", { key: 'fd6163c7cb83073db2c19c3477447076372abb44', class: "co-number-field__row", part: "row" }, !this.hideControls && (h("button", { key: 'e1a52831b83c3255ce63c4ed48a228fe4fdb1629', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, h("co-icon", { key: '86e0ce9b9801e50d9bda6b18a8e1f6f96581b178', name: "minus", size: 16 }))), h("input", { key: '4bdf89e9a4958841a948b3bd6e9886898917f464', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
440
448
  // Mismo guard `focused` que el @Watch: mientras el usuario edita, su
441
449
  // texto manda. Sin esto, el re-render que dispara emitValue repinta
442
450
  // el input desde el NÚMERO y se come el texto en construcción
443
451
  // ("34,640.00" pegado quedaba "34,640"; un "12." perdería el punto).
444
- value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: '836ea4e4cba0b21a36b1017d6fc0c4d621d69e56', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (h("button", { key: '5eefa937a055dea1855d1bc3bae675003d8382c8', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: '096dec8d88b7b241cd83a04788bc4db05feec585', name: "x-circle", size: 16, weight: "fill" }))), h("slot", { key: '1ea7d1ff2c61d74b0884e7b8f1b7b54de4978876', name: "suffix" }), !this.hideControls && (h("button", { key: '9ae95697534b85dcd928c0d0e7f72a3b8c5402c7', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, h("co-icon", { key: 'af526ac4278865052f32ae7359a571aa485492af', name: "plus", size: 16 })))), this.helperText && (h("div", { key: '9bad3ffd8c70ce49205132f9f73294a83b6ebbc3', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '4987bc82011c4bb93e1bd00ef1ffd45d2e8681f4', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), h("span", { key: '8eac5821653dc0110113f94833e13f27411188a7', class: "co-number-field__helper-text" }, this.helperText)))));
452
+ value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: '7bc7c12c6fe2708691d9a2972f9ed3037e82a1a8', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (h("button", { key: '2ef7c424a34a8a6cbfe8ac4cd0a5d8f0ed74e6d4', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: 'c428ca841c0de013cd151bd356686be43992de04', name: "x-circle", size: 16, weight: "fill" }))), h("slot", { key: 'fb127a663d3839bbb10b8232b250eaf67faab898', name: "suffix" }), !this.hideControls && (h("button", { key: '684329d2f32a58f6be2a124f0cd20986a7fc49af', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, h("co-icon", { key: '7ef48466e060efb314466d62216a8e00168ddbcd', name: "plus", size: 16 })))), this.helperText && (h("div", { key: '2cf6df2556160fef3c1dfd1b525991eb822cb285', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '905ad795d9714fa9ae8fc2b9d4b9f6a7bba2d2ce', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), h("span", { key: '0c4825c4145298700de006eb3170e9ec3b52d3b7', class: "co-number-field__helper-text" }, this.helperText)))));
445
453
  }
446
454
  get el() { return getElement(this); }
447
455
  static get watchers() { return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prolibu-suite/cobalt-core",
3
- "version": "0.11.3",
3
+ "version": "0.11.4",
4
4
  "description": "Cobalt Design System — Framework-agnostic Web Components built with Stencil",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -50,10 +50,10 @@
50
50
  "@phosphor-icons/core": "^2.1.1",
51
51
  "dompurify": "^3.2.6",
52
52
  "overlayscrollbars": "^2.16.0",
53
- "@prolibu-suite/cobalt-calendar-utils": "0.1.1",
54
- "@prolibu-suite/cobalt-tokens": "0.6.0",
55
53
  "@prolibu-suite/cobalt-date-utils": "0.1.2",
56
- "@prolibu-suite/cobalt-rich-text": "0.2.1"
54
+ "@prolibu-suite/cobalt-calendar-utils": "0.1.1",
55
+ "@prolibu-suite/cobalt-rich-text": "0.2.1",
56
+ "@prolibu-suite/cobalt-tokens": "0.6.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@stencil/core": "^4.43.4",