@tedi-design-system/react 18.1.0-rc.9 → 18.1.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/bundle-stats.html +1 -1
  2. package/index.css +1 -1
  3. package/package.json +12 -6
  4. package/src/community/components/anchor/anchor.d.ts +1 -0
  5. package/src/community/components/button/button.d.ts +1 -0
  6. package/src/community/components/card/card-content/card-content.d.ts +3 -0
  7. package/src/community/components/card/card-header/card-header.d.ts +3 -0
  8. package/src/community/components/card/card-notification/card-notification.d.ts +3 -0
  9. package/src/community/components/card/card.d.ts +3 -0
  10. package/src/community/components/dropdown/dropdown.cjs.js +1 -1
  11. package/src/community/components/dropdown/dropdown.d.ts +3 -0
  12. package/src/community/components/dropdown/dropdown.es.js +5 -6
  13. package/src/community/components/form/choice-group/choice-group.d.ts +3 -0
  14. package/src/community/components/form/file-upload/file-upload.d.ts +6 -0
  15. package/src/community/components/form/radio/radio.d.ts +3 -0
  16. package/src/community/components/form/select/select.d.ts +3 -0
  17. package/src/community/components/form/toggle/toggle.cjs.js +1 -1
  18. package/src/community/components/form/toggle/toggle.d.ts +3 -0
  19. package/src/community/components/form/toggle/toggle.es.js +5 -6
  20. package/src/community/components/layout/header/components/header-language/header-language.d.ts +3 -0
  21. package/src/community/components/layout/header/components/header-role/header-role.d.ts +3 -0
  22. package/src/community/components/layout/header/components/sidenav-toggle/sidenav-toggle.d.ts +3 -0
  23. package/src/community/components/layout/header/header/header.d.ts +3 -0
  24. package/src/community/components/layout/sidenav/sidenav.d.ts +3 -0
  25. package/src/community/components/map-components/button-group/button-group.module.scss.cjs.js +1 -1
  26. package/src/community/components/map-components/button-group/button-group.module.scss.es.js +1 -0
  27. package/src/community/components/map-components/left-panel/left-panel-content.cjs.js +1 -1
  28. package/src/community/components/map-components/left-panel/left-panel-content.d.ts +10 -5
  29. package/src/community/components/map-components/left-panel/left-panel-content.es.js +7 -21
  30. package/src/community/components/map-components/left-panel/left-panel-footer.cjs.js +1 -1
  31. package/src/community/components/map-components/left-panel/left-panel-footer.d.ts +11 -1
  32. package/src/community/components/map-components/left-panel/left-panel-footer.es.js +7 -24
  33. package/src/community/components/map-components/left-panel/left-panel-header.cjs.js +1 -1
  34. package/src/community/components/map-components/left-panel/left-panel-header.d.ts +11 -1
  35. package/src/community/components/map-components/left-panel/left-panel-header.es.js +7 -62
  36. package/src/community/components/map-components/left-panel/left-panel.cjs.js +1 -1
  37. package/src/community/components/map-components/left-panel/left-panel.d.ts +67 -5
  38. package/src/community/components/map-components/left-panel/left-panel.es.js +85 -14
  39. package/src/community/components/map-components/left-panel/left-panel.module.scss.cjs.js +1 -1
  40. package/src/community/components/map-components/left-panel/left-panel.module.scss.es.js +4 -4
  41. package/src/community/components/map-components/map-button/map-button.cjs.js +1 -1
  42. package/src/community/components/map-components/map-button/map-button.d.ts +8 -3
  43. package/src/community/components/map-components/map-button/map-button.es.js +42 -33
  44. package/src/community/components/map-components/map-button/map-button.module.scss.cjs.js +1 -1
  45. package/src/community/components/map-components/map-button/map-button.module.scss.es.js +3 -0
  46. package/src/community/components/map-components/resizer/resizer.cjs.js +1 -1
  47. package/src/community/components/map-components/resizer/resizer.es.js +9 -10
  48. package/src/community/components/status/status.d.ts +3 -0
  49. package/src/community/components/table/table.d.ts +3 -0
  50. package/src/community/components/tag/tag.d.ts +3 -0
  51. package/src/community/components/toggle-open/toggle-open.d.ts +3 -0
  52. package/src/community/components/tooltip/tooltip-trigger.cjs.js +1 -1
  53. package/src/community/components/tooltip/tooltip-trigger.d.ts +3 -0
  54. package/src/community/components/tooltip/tooltip-trigger.es.js +15 -14
  55. package/src/community/components/tooltip/tooltip.d.ts +3 -0
  56. package/src/tedi/components/buttons/button-content/button-content.cjs.js +1 -1
  57. package/src/tedi/components/buttons/button-content/button-content.es.js +31 -30
  58. package/src/tedi/components/buttons/collapse-button/collapse-button.cjs.js +1 -1
  59. package/src/tedi/components/buttons/collapse-button/collapse-button.es.js +2 -1
  60. package/src/tedi/components/content/label/label.cjs.js +1 -1
  61. package/src/tedi/components/content/label/label.d.ts +4 -3
  62. package/src/tedi/components/content/label/label.es.js +24 -27
  63. package/src/tedi/components/content/label/label.module.scss.cjs.js +1 -1
  64. package/src/tedi/components/content/label/label.module.scss.es.js +2 -1
  65. package/src/tedi/components/content/table/table.cjs.js +1 -1
  66. package/src/tedi/components/content/table/table.d.ts +8 -5
  67. package/src/tedi/components/content/table/table.es.js +308 -295
  68. package/src/tedi/components/form/checkbox/checkbox.cjs.js +1 -1
  69. package/src/tedi/components/form/checkbox/checkbox.es.js +64 -58
  70. package/src/tedi/components/form/choice-group/choice-group.cjs.js +1 -1
  71. package/src/tedi/components/form/choice-group/choice-group.es.js +98 -85
  72. package/src/tedi/components/form/choice-group/components/choice-group-item/choice-group-item.cjs.js +1 -1
  73. package/src/tedi/components/form/choice-group/components/choice-group-item/choice-group-item.es.js +13 -14
  74. package/src/tedi/components/form/choice-input.types.d.ts +3 -2
  75. package/src/tedi/components/form/date-field/date-field.cjs.js +1 -1
  76. package/src/tedi/components/form/date-field/date-field.d.ts +15 -0
  77. package/src/tedi/components/form/date-field/date-field.es.js +304 -269
  78. package/src/tedi/components/form/file-dropzone/file-dropzone.cjs.js +1 -1
  79. package/src/tedi/components/form/file-dropzone/file-dropzone.es.js +90 -79
  80. package/src/tedi/components/form/file-upload/file-upload.cjs.js +1 -1
  81. package/src/tedi/components/form/file-upload/file-upload.d.ts +4 -1
  82. package/src/tedi/components/form/file-upload/file-upload.es.js +138 -119
  83. package/src/tedi/components/form/file-upload/file-upload.module.scss.cjs.js +1 -1
  84. package/src/tedi/components/form/file-upload/file-upload.module.scss.es.js +1 -1
  85. package/src/tedi/components/form/form-label/form-label.d.ts +1 -1
  86. package/src/tedi/components/form/input-group/input-group.cjs.js +1 -1
  87. package/src/tedi/components/form/input-group/input-group.d.ts +4 -7
  88. package/src/tedi/components/form/input-group/input-group.es.js +40 -38
  89. package/src/tedi/components/form/multi-value-field/multi-value-field.cjs.js +1 -1
  90. package/src/tedi/components/form/multi-value-field/multi-value-field.d.ts +8 -0
  91. package/src/tedi/components/form/multi-value-field/multi-value-field.es.js +147 -66
  92. package/src/tedi/components/form/multi-value-field/multi-value-field.module.scss.cjs.js +1 -1
  93. package/src/tedi/components/form/multi-value-field/multi-value-field.module.scss.es.js +3 -0
  94. package/src/tedi/components/form/number-field/number-field.cjs.js +1 -1
  95. package/src/tedi/components/form/number-field/number-field.es.js +117 -112
  96. package/src/tedi/components/form/radio/radio.cjs.js +1 -1
  97. package/src/tedi/components/form/radio/radio.es.js +24 -23
  98. package/src/tedi/components/form/search/search.cjs.js +1 -1
  99. package/src/tedi/components/form/search/search.es.js +60 -40
  100. package/src/tedi/components/form/search/search.module.scss.cjs.js +1 -1
  101. package/src/tedi/components/form/search/search.module.scss.es.js +7 -3
  102. package/src/tedi/components/form/select/components/select-input.cjs.js +1 -1
  103. package/src/tedi/components/form/select/components/select-input.es.js +24 -15
  104. package/src/tedi/components/form/select/components/select-multi-value-remove.cjs.js +1 -1
  105. package/src/tedi/components/form/select/components/select-multi-value-remove.es.js +11 -11
  106. package/src/tedi/components/form/select/components/select-multi-value.cjs.js +1 -1
  107. package/src/tedi/components/form/select/components/select-multi-value.es.js +34 -30
  108. package/src/tedi/components/form/select/select.cjs.js +1 -1
  109. package/src/tedi/components/form/select/select.d.ts +14 -0
  110. package/src/tedi/components/form/select/select.es.js +274 -267
  111. package/src/tedi/components/layout/header/components/header-language/header-language.cjs.js +1 -0
  112. package/src/tedi/components/layout/header/components/header-language/header-language.es.js +105 -0
  113. package/src/tedi/components/layout/header/components/header-language/header-language.module.scss.cjs.js +1 -0
  114. package/src/tedi/components/layout/header/components/header-language/header-language.module.scss.es.js +12 -0
  115. package/src/tedi/components/layout/header/components/header-login/header-login.cjs.js +1 -0
  116. package/src/tedi/components/layout/header/components/header-login/header-login.es.js +36 -0
  117. package/src/tedi/components/layout/header/components/header-login/header-login.module.scss.cjs.js +1 -0
  118. package/src/tedi/components/layout/header/components/header-login/header-login.module.scss.es.js +8 -0
  119. package/src/tedi/components/layout/header/components/header-logout/header-logout.cjs.js +1 -0
  120. package/src/tedi/components/layout/header/components/header-logout/header-logout.es.js +33 -0
  121. package/src/tedi/components/layout/header/components/header-logout/header-logout.module.scss.cjs.js +1 -0
  122. package/src/tedi/components/layout/header/components/header-logout/header-logout.module.scss.es.js +7 -0
  123. package/src/tedi/components/layout/header/components/header-mobile-button/header-mobile-button.cjs.js +1 -0
  124. package/src/tedi/components/layout/header/components/header-mobile-button/header-mobile-button.es.js +25 -0
  125. package/src/tedi/components/layout/header/components/header-mobile-button/header-mobile-button.module.scss.cjs.js +1 -0
  126. package/src/tedi/components/layout/header/components/header-mobile-button/header-mobile-button.module.scss.es.js +10 -0
  127. package/src/tedi/components/layout/header/components/header-profile/header-profile.cjs.js +1 -0
  128. package/src/tedi/components/layout/header/components/header-profile/header-profile.es.js +136 -0
  129. package/src/tedi/components/layout/header/components/header-profile/header-profile.module.scss.cjs.js +1 -0
  130. package/src/tedi/components/layout/header/components/header-profile/header-profile.module.scss.es.js +14 -0
  131. package/src/tedi/components/layout/header/components/header-role/header-role-representatives.cjs.js +1 -0
  132. package/src/tedi/components/layout/header/components/header-role/header-role-representatives.es.js +89 -0
  133. package/src/tedi/components/layout/header/components/header-role/header-role.cjs.js +1 -0
  134. package/src/tedi/components/layout/header/components/header-role/header-role.es.js +162 -0
  135. package/src/tedi/components/layout/header/components/header-role/header-role.module.scss.cjs.js +1 -0
  136. package/src/tedi/components/layout/header/components/header-role/header-role.module.scss.es.js +25 -0
  137. package/src/tedi/components/layout/header/components/header-search/header-search.cjs.js +1 -0
  138. package/src/tedi/components/layout/header/components/header-search/header-search.es.js +60 -0
  139. package/src/tedi/components/layout/header/components/header-search/header-search.module.scss.cjs.js +1 -0
  140. package/src/tedi/components/layout/header/components/header-search/header-search.module.scss.es.js +9 -0
  141. package/src/tedi/components/layout/header/header.cjs.js +1 -0
  142. package/src/tedi/components/layout/header/header.es.js +63 -0
  143. package/src/tedi/components/layout/header/header.module.scss.cjs.js +1 -0
  144. package/src/tedi/components/layout/header/header.module.scss.es.js +13 -0
  145. package/src/tedi/components/layout/hide-at/hide-at.cjs.js +1 -0
  146. package/src/tedi/components/layout/hide-at/hide-at.es.js +10 -0
  147. package/src/tedi/components/layout/show-at/show-at.cjs.js +1 -0
  148. package/src/tedi/components/layout/show-at/show-at.es.js +10 -0
  149. package/src/tedi/components/loaders/spinner/spinner.cjs.js +1 -1
  150. package/src/tedi/components/loaders/spinner/spinner.d.ts +7 -0
  151. package/src/tedi/components/loaders/spinner/spinner.es.js +29 -18
  152. package/src/tedi/components/overlays/dropdown/dropdown-trigger/dropdown-trigger.cjs.js +1 -1
  153. package/src/tedi/components/overlays/dropdown/dropdown-trigger/dropdown-trigger.es.js +8 -7
  154. package/src/tedi/components/overlays/modal/modal-trigger/modal-trigger.cjs.js +1 -1
  155. package/src/tedi/components/overlays/modal/modal-trigger/modal-trigger.es.js +10 -9
  156. package/src/tedi/components/overlays/overlay/overlay-content.cjs.js +1 -1
  157. package/src/tedi/components/overlays/overlay/overlay-content.es.js +14 -12
  158. package/src/tedi/components/overlays/overlay/overlay-trigger.cjs.js +1 -1
  159. package/src/tedi/components/overlays/overlay/overlay-trigger.es.js +20 -19
  160. package/src/tedi/components/overlays/overlay/overlay.cjs.js +1 -1
  161. package/src/tedi/components/overlays/overlay/overlay.d.ts +10 -0
  162. package/src/tedi/components/overlays/overlay/overlay.es.js +74 -71
  163. package/src/tedi/components/overlays/tooltip/index.d.ts +1 -0
  164. package/src/tedi/components/overlays/tooltip/info-tooltip.cjs.js +1 -0
  165. package/src/tedi/components/overlays/tooltip/info-tooltip.d.ts +52 -0
  166. package/src/tedi/components/overlays/tooltip/info-tooltip.es.js +24 -0
  167. package/src/tedi/components/tags/tag/tag.cjs.js +1 -1
  168. package/src/tedi/components/tags/tag/tag.d.ts +9 -0
  169. package/src/tedi/components/tags/tag/tag.es.js +18 -17
  170. package/src/tedi/helpers/get-element-ref.cjs.js +1 -0
  171. package/src/tedi/helpers/get-element-ref.d.ts +11 -0
  172. package/src/tedi/helpers/get-element-ref.es.js +8 -0
  173. package/src/tedi/helpers/hooks/use-file-upload.cjs.js +1 -1
  174. package/src/tedi/helpers/hooks/use-file-upload.es.js +71 -66
  175. package/src/tedi/index.d.ts +3 -0
  176. package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
  177. package/src/tedi/providers/label-provider/labels-map.d.ts +69 -6
  178. package/src/tedi/providers/label-provider/labels-map.es.js +137 -74
  179. package/tedi.cjs.js +1 -1
  180. package/tedi.es.js +306 -281
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),w=require("../../../../../external/classnames/index.cjs.js"),e=require("react"),G=require("../feedback-text/feedback-text.cjs.js"),N=require("../form-label/form-label.cjs.js"),R=require("./components/input/input.cjs.js"),_=require("./components/prefix/prefix.cjs.js"),A=require("./components/suffix/suffix.cjs.js"),t=require("./input-group.module.scss.cjs.js"),d=e.createContext(null),F=()=>{const n=e.useContext(d);if(!n)throw new Error("InputGroupContext missing");return n},T=()=>e.useContext(d),c=e.forwardRef(({className:n,addons:S=!0,helper:u,label:s,children:j,disabled:i,invalid:o,id:q,...P},h)=>{const l=e.useRef(null),y=e.useId(),a=q??y,[p,g]=e.useState(!1),[f,I]=e.useState(!1);e.useImperativeHandle(h,()=>({get root(){return l.current}}));const b=e.useMemo(()=>({hasPrefix:p,hasSuffix:f,disabled:i,invalid:o,hasExternalLabel:!!s,inputId:a,registerPrefix:()=>g(!0),unregisterPrefix:()=>g(!1),registerSuffix:()=>I(!0),unregisterSuffix:()=>I(!1)}),[a,p,f,i,o,s]),v=w.default(t.default["tedi-input-group"],{[t.default["tedi-input-group--addons"]]:S,[t.default["tedi-input-group--has-prefix"]]:p,[t.default["tedi-input-group--has-suffix"]]:f,[t.default["tedi-input-group--disabled"]]:i,[t.default["tedi-input-group--invalid"]]:o},n),C=()=>!u||Array.isArray(u)&&u.length===0?null:r.jsx("div",{className:t.default["tedi-input-group__feedback-wrapper"],children:Array.isArray(u)?u.map((k,m)=>r.jsx(G.FeedbackText,{...k,id:`group-helper-${m}`},m)):r.jsx(G.FeedbackText,{...u,id:"group-helper"})});return r.jsx(d.Provider,{value:b,children:r.jsxs("div",{ref:l,className:v,"data-name":"tedi-input-group","aria-disabled":i,children:[s&&r.jsx(N.FormLabel,{...P,label:s,id:a}),r.jsx("div",{className:t.default["tedi-input-group__row"],children:j}),C()]})})});c.displayName="InputGroup";const x=c;x.Prefix=_.Prefix;x.Suffix=A.Suffix;x.Input=R.Input;exports.InputGroupBase=c;exports.useInputGroup=F;exports.useOptionalInputGroup=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),k=require("../../../../../external/classnames/index.cjs.js"),e=require("react"),m=require("../feedback-text/feedback-text.cjs.js"),w=require("../form-label/form-label.cjs.js"),N=require("./components/input/input.cjs.js"),R=require("./components/prefix/prefix.cjs.js"),_=require("./components/suffix/suffix.cjs.js"),t=require("./input-group.module.scss.cjs.js"),d=e.createContext(null),A=()=>{const n=e.useContext(d);if(!n)throw new Error("InputGroupContext missing");return n},F=()=>e.useContext(d),c=e.forwardRef(({className:n,addons:G=!0,helper:u,label:s,children:j,disabled:i,invalid:o,id:S,...q},P)=>{const x=e.useRef(null),b=e.useId(),a=S??b,[p,l]=e.useState(!1),[f,g]=e.useState(!1);e.useImperativeHandle(P,()=>({get root(){return x.current}}));const h=e.useMemo(()=>({hasPrefix:p,hasSuffix:f,disabled:i,invalid:o,hasExternalLabel:!!s,inputId:a,registerPrefix:()=>l(!0),unregisterPrefix:()=>l(!1),registerSuffix:()=>g(!0),unregisterSuffix:()=>g(!1)}),[a,p,f,i,o,s]),y=k.default(t.default["tedi-input-group"],{[t.default["tedi-input-group--addons"]]:G,[t.default["tedi-input-group--has-prefix"]]:p,[t.default["tedi-input-group--has-suffix"]]:f,[t.default["tedi-input-group--disabled"]]:i,[t.default["tedi-input-group--invalid"]]:o},n),v=()=>!u||Array.isArray(u)&&u.length===0?null:r.jsx("div",{className:t.default["tedi-input-group__feedback-wrapper"],children:Array.isArray(u)?u.map((C,I)=>r.jsx(m.FeedbackText,{...C,id:`group-helper-${I}`},I)):r.jsx(m.FeedbackText,{...u,id:"group-helper"})});return r.jsx(d.Provider,{value:h,children:r.jsxs("div",{ref:x,className:y,"data-name":"tedi-input-group","aria-disabled":i,children:[s&&r.jsx(w.FormLabel,{...q,label:s,id:a}),r.jsx("div",{className:t.default["tedi-input-group__row"],children:j}),v()]})})});c.displayName="InputGroup";const O=Object.assign(c,{Prefix:R.Prefix,Suffix:_.Suffix,Input:N.Input});exports.InputGroup=O;exports.InputGroupBase=c;exports.useInputGroup=A;exports.useOptionalInputGroup=F;
@@ -1,9 +1,6 @@
1
1
  import { default as React, ReactNode } from 'react';
2
2
  import { FeedbackTextProps } from '../feedback-text/feedback-text';
3
3
  import { FormLabelProps } from '../form-label/form-label';
4
- import { Input } from './components/input/input';
5
- import { Prefix } from './components/prefix/prefix';
6
- import { Suffix } from './components/suffix/suffix';
7
4
  export interface InputGroupProps extends FormLabelProps {
8
5
  /**
9
6
  * Additional class name(s) applied to the root element of the InputGroup.
@@ -92,9 +89,9 @@ export type InputGroupContextValue = {
92
89
  export declare const useInputGroup: () => InputGroupContextValue;
93
90
  export declare const useOptionalInputGroup: () => InputGroupContextValue | null;
94
91
  export declare const InputGroupBase: React.ForwardRefExoticComponent<InputGroupProps & React.RefAttributes<InputGroupForwardRef>>;
95
- declare const InputGroup: typeof InputGroupBase & {
96
- Prefix: typeof Prefix;
97
- Suffix: typeof Suffix;
98
- Input: typeof Input;
92
+ export declare const InputGroup: React.ForwardRefExoticComponent<InputGroupProps & React.RefAttributes<InputGroupForwardRef>> & {
93
+ Prefix: ({ children, className, ...props }: import('.').PrefixProps) => import("react/jsx-runtime").JSX.Element;
94
+ Suffix: ({ children, className, ...props }: import('.').SuffixProps) => import("react/jsx-runtime").JSX.Element;
95
+ Input: ({ children }: import('.').InputProps) => string | number | boolean | React.ReactElement<any, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined;
99
96
  };
100
97
  export default InputGroup;
@@ -1,63 +1,65 @@
1
- import { jsx as e, jsxs as F } from "react/jsx-runtime";
2
- import H from "../../../../../external/classnames/index.es.js";
3
- import l, { forwardRef as j, useState as I, useImperativeHandle as E, useMemo as L, useContext as S, createContext as b } from "react";
4
- import { FeedbackText as G } from "../feedback-text/feedback-text.es.js";
5
- import { FormLabel as B } from "../form-label/form-label.es.js";
6
- import { Input as M } from "./components/input/input.es.js";
7
- import { Prefix as O } from "./components/prefix/prefix.es.js";
8
- import { Suffix as T } from "./components/suffix/suffix.es.js";
1
+ import { jsx as e, jsxs as j } from "react/jsx-runtime";
2
+ import k from "../../../../../external/classnames/index.es.js";
3
+ import g, { forwardRef as F, useState as l, useImperativeHandle as H, useMemo as b, useContext as G, createContext as E } from "react";
4
+ import { FeedbackText as I } from "../feedback-text/feedback-text.es.js";
5
+ import { FormLabel as L } from "../form-label/form-label.es.js";
6
+ import { Input as O } from "./components/input/input.es.js";
7
+ import { Prefix as B } from "./components/prefix/prefix.es.js";
8
+ import { Suffix as M } from "./components/suffix/suffix.es.js";
9
9
  import r from "./input-group.module.scss.es.js";
10
- const f = b(null), W = () => {
11
- const u = S(f);
10
+ const f = E(null), U = () => {
11
+ const u = G(f);
12
12
  if (!u) throw new Error("InputGroupContext missing");
13
13
  return u;
14
- }, X = () => S(f), h = j(
15
- ({ className: u, addons: P = !0, helper: t, label: o, children: y, disabled: i, invalid: n, id: N, ..._ }, v) => {
16
- const m = l.useRef(null), w = l.useId(), s = N ?? w, [p, c] = I(!1), [a, x] = I(!1);
17
- E(v, () => ({
14
+ }, W = () => G(f), h = F(
15
+ ({ className: u, addons: S = !0, helper: t, label: o, children: y, disabled: s, invalid: i, id: N, ...P }, _) => {
16
+ const c = g.useRef(null), v = g.useId(), n = N ?? v, [p, d] = l(!1), [a, m] = l(!1);
17
+ H(_, () => ({
18
18
  get root() {
19
- return m.current;
19
+ return c.current;
20
20
  }
21
21
  }));
22
- const C = L(
22
+ const w = b(
23
23
  () => ({
24
24
  hasPrefix: p,
25
25
  hasSuffix: a,
26
- disabled: i,
27
- invalid: n,
26
+ disabled: s,
27
+ invalid: i,
28
28
  hasExternalLabel: !!o,
29
- inputId: s,
30
- registerPrefix: () => c(!0),
31
- unregisterPrefix: () => c(!1),
32
- registerSuffix: () => x(!0),
33
- unregisterSuffix: () => x(!1)
29
+ inputId: n,
30
+ registerPrefix: () => d(!0),
31
+ unregisterPrefix: () => d(!1),
32
+ registerSuffix: () => m(!0),
33
+ unregisterSuffix: () => m(!1)
34
34
  }),
35
- [s, p, a, i, n, o]
36
- ), A = H(
35
+ [n, p, a, s, i, o]
36
+ ), C = k(
37
37
  r["tedi-input-group"],
38
38
  {
39
- [r["tedi-input-group--addons"]]: P,
39
+ [r["tedi-input-group--addons"]]: S,
40
40
  [r["tedi-input-group--has-prefix"]]: p,
41
41
  [r["tedi-input-group--has-suffix"]]: a,
42
- [r["tedi-input-group--disabled"]]: i,
43
- [r["tedi-input-group--invalid"]]: n
42
+ [r["tedi-input-group--disabled"]]: s,
43
+ [r["tedi-input-group--invalid"]]: i
44
44
  },
45
45
  u
46
- ), R = () => !t || Array.isArray(t) && t.length === 0 ? null : /* @__PURE__ */ e("div", { className: r["tedi-input-group__feedback-wrapper"], children: Array.isArray(t) ? t.map((k, g) => /* @__PURE__ */ e(G, { ...k, id: `group-helper-${g}` }, g)) : /* @__PURE__ */ e(G, { ...t, id: "group-helper" }) });
47
- return /* @__PURE__ */ e(f.Provider, { value: C, children: /* @__PURE__ */ F("div", { ref: m, className: A, "data-name": "tedi-input-group", "aria-disabled": i, children: [
48
- o && /* @__PURE__ */ e(B, { ..._, label: o, id: s }),
46
+ ), A = () => !t || Array.isArray(t) && t.length === 0 ? null : /* @__PURE__ */ e("div", { className: r["tedi-input-group__feedback-wrapper"], children: Array.isArray(t) ? t.map((R, x) => /* @__PURE__ */ e(I, { ...R, id: `group-helper-${x}` }, x)) : /* @__PURE__ */ e(I, { ...t, id: "group-helper" }) });
47
+ return /* @__PURE__ */ e(f.Provider, { value: w, children: /* @__PURE__ */ j("div", { ref: c, className: C, "data-name": "tedi-input-group", "aria-disabled": s, children: [
48
+ o && /* @__PURE__ */ e(L, { ...P, label: o, id: n }),
49
49
  /* @__PURE__ */ e("div", { className: r["tedi-input-group__row"], children: y }),
50
- R()
50
+ A()
51
51
  ] }) });
52
52
  }
53
53
  );
54
54
  h.displayName = "InputGroup";
55
- const d = h;
56
- d.Prefix = O;
57
- d.Suffix = T;
58
- d.Input = M;
55
+ const X = Object.assign(h, {
56
+ Prefix: B,
57
+ Suffix: M,
58
+ Input: O
59
+ });
59
60
  export {
61
+ X as InputGroup,
60
62
  h as InputGroupBase,
61
- W as useInputGroup,
62
- X as useOptionalInputGroup
63
+ U as useInputGroup,
64
+ W as useOptionalInputGroup
63
65
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),x=require("../../../../../external/classnames/index.cjs.js"),_=require("react"),j=require("../../base/icon/icon.cjs.js"),w=require("../../buttons/closing-button/closing-button.cjs.js"),k=require("../../misc/separator/separator.cjs.js"),z=require("../../tags/tag/tag.cjs.js"),R=require("../form-label/form-label.cjs.js"),i=require("./multi-value-field.module.scss.cjs.js"),$=require("../../../providers/label-provider/use-labels.cjs.js"),c=_.forwardRef((h,O)=>{const{id:b,label:d,name:m,values:f,onChange:n,tagColor:q="primary",className:N,icon:t,onIconClick:v,iconButtonProps:s,isClearable:V=!0,required:p,disabled:u}=h,{getLabel:y}=$.useLabels(),[C,S]=_.useState(f??[]),a=f??C,g=l=>{S(l),n==null||n(l)},F=l=>{const r=a.filter((T,M)=>M!==l);g(r)},o=!u&&V&&a.length>0,I=()=>{g([])},L=()=>{if(!t)return null;const l=typeof t=="string"?{name:t}:t;return v?e.jsx("button",{...s,className:x.default(i.default["tedi-multi-value-field__icon-wrapper"],s==null?void 0:s.className),onClick:v,type:"button",children:e.jsx(j.Icon,{...l,size:18})}):e.jsx("div",{className:i.default["tedi-multi-value-field__icon-wrapper"],children:e.jsx(j.Icon,{...l,size:18})})};return e.jsxs("div",{className:x.default(i.default["tedi-multi-value-field"],N),children:[d&&e.jsx(R.FormLabel,{id:b,label:d,required:p}),e.jsxs("div",{className:i.default["tedi-multi-value-field__inner"],children:[a.length>0&&e.jsx("div",{className:i.default["tedi-multi-value-field__tags"],children:a.map((l,r)=>e.jsx(z.Tag,{color:q,onClose:u?void 0:()=>F(r),children:l},`${l}-${r}`))}),(o||t)&&e.jsxs("div",{className:i.default["tedi-multi-value-field__right-area"],children:[o&&e.jsx(w.ClosingButton,{onClick:I,title:y("clear"),className:i.default["tedi-multi-value-field__clear-button"],iconSize:18}),o&&t&&e.jsx(k.Separator,{color:"primary",axis:"vertical",height:1.5,spacing:.25}),t&&L()]})]}),m&&e.jsx("input",{type:"hidden",name:m,value:a.length?JSON.stringify(a):"",required:p,disabled:u})]})});c.displayName="MultiValueField";exports.MultiValueField=c;exports.default=c;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react/jsx-runtime"),v=require("../../../../../external/classnames/index.cjs.js"),i=require("react"),T=require("../../base/icon/icon.cjs.js"),Z=require("../../buttons/closing-button/closing-button.cjs.js"),ee=require("../../misc/separator/separator.cjs.js"),z=require("../../tags/tag/tag.cjs.js"),te=require("../form-label/form-label.cjs.js"),r=require("./multi-value-field.module.scss.cjs.js"),le=require("../../../providers/label-provider/use-labels.cjs.js"),j=4,ie=44,N=i.forwardRef((F,O)=>{const{id:A,label:w,name:q,values:C,onChange:_,tagColor:y="primary",tagsDirection:P="stack",className:$,icon:o,onIconClick:V,iconButtonProps:m,isClearable:G=!0,required:S,disabled:b}=F,{getLabel:M}=le.useLabels(),[X,B]=i.useState(C??[]),E=i.useRef(null),W=i.useRef(null);i.useImperativeHandle(O,()=>({input:W.current,wrapper:E.current}),[]);const a=C??X,n=P==="row",[f,D]=i.useState(null),H=i.useCallback(e=>D(e),[]),p=i.useRef(0),[d,g]=i.useState(null);i.useEffect(()=>{n&&g(null)},[a.length,n]),i.useEffect(()=>{if(!n||!f||typeof ResizeObserver>"u")return;const e=new ResizeObserver(t=>{var c;const s=((c=t[0])==null?void 0:c.contentRect.width)??0;s>0&&s!==p.current&&g(null)});return e.observe(f),()=>e.disconnect()},[n,f]),i.useLayoutEffect(()=>{if(!n||d!==null)return;const e=f;if(!e)return;const t=e.clientWidth;if(t===0)return;const s=e.querySelectorAll("[data-tedi-tag-index]");if(s.length===0)return;let c=0;for(let u=0;u<s.length;u++)c+=s[u].offsetWidth+(u>0?j:0);if(c<=t){p.current=t,g(s.length);return}let k=0,h=0;for(let u=0;u<s.length;u++){const Q=s[u].offsetWidth,Y=u<s.length-1?ie+j:0,L=k+Q+(h>0?j:0);if(L+Y<=t)k=L,h++;else break}h===0&&(h=1),p.current=t,g(h)},[n,d,a,f]);const I=e=>{B(e),_==null||_(e)},J=e=>{const t=a.filter((s,c)=>c!==e);I(t)},x=!b&&G&&a.length>0,U=()=>{I([])},R=n&&d!==null?Math.max(0,a.length-d):0,K=()=>{if(!o)return null;const e=typeof o=="string"?{name:o}:o;return V?l.jsx("button",{...m,className:v.default(r.default["tedi-multi-value-field__icon-wrapper"],m==null?void 0:m.className),onClick:V,type:"button",children:l.jsx(T.Icon,{...e,size:18})}):l.jsx("div",{className:r.default["tedi-multi-value-field__icon-wrapper"],children:l.jsx(T.Icon,{...e,size:18})})};return l.jsxs("div",{className:v.default(r.default["tedi-multi-value-field"],$),children:[w&&l.jsx(te.FormLabel,{id:A,label:w,required:S}),l.jsxs("div",{ref:E,className:v.default(r.default["tedi-multi-value-field__inner"],{[r.default["tedi-multi-value-field__inner--row"]]:n}),children:[a.length>0&&l.jsxs("div",{ref:H,className:v.default(r.default["tedi-multi-value-field__tags"],{[r.default["tedi-multi-value-field__tags--row"]]:n}),children:[a.map((e,t)=>n&&d!==null&&t>=d?null:l.jsx(z.Tag,{color:y,"data-tedi-tag-index":t,onClose:b?void 0:()=>J(t),children:e},`${e}-${t}`)),R>0&&l.jsxs(z.Tag,{color:y,className:r.default["tedi-multi-value-field__overflow-tag"],"aria-label":M("multi-value-field.hidden-count",R),children:["+",R]})]}),(x||o)&&l.jsxs("div",{className:r.default["tedi-multi-value-field__right-area"],children:[x&&l.jsx(Z.ClosingButton,{onClick:U,title:M("clear"),className:r.default["tedi-multi-value-field__clear-button"],iconSize:18}),x&&o&&l.jsx(ee.Separator,{color:"primary",axis:"vertical",height:1.5,spacing:.25}),o&&K()]})]}),q&&l.jsx("input",{ref:W,type:"hidden",name:q,value:a.length?JSON.stringify(a):"",required:S,disabled:b})]})});N.displayName="MultiValueField";exports.MultiValueField=N;exports.default=N;
@@ -29,6 +29,14 @@ export interface MultiValueFieldProps {
29
29
  * @default 'primary'
30
30
  */
31
31
  tagColor?: 'primary' | 'secondary' | 'danger';
32
+ /**
33
+ * Layout for the value tags.
34
+ * - `'stack'` (default) — tags wrap onto multiple rows; the field grows in height.
35
+ * - `'row'` — tags stay on a single row; any that don't fit collapse into a
36
+ * `+N` counter (the count is measured from the available width).
37
+ * @default stack
38
+ */
39
+ tagsDirection?: 'stack' | 'row';
32
40
  /**
33
41
  * Additional CSS class names applied to the root element.
34
42
  */
@@ -1,81 +1,162 @@
1
- import { jsxs as m, jsx as l } from "react/jsx-runtime";
2
- import _ from "../../../../../external/classnames/index.es.js";
3
- import { forwardRef as L, useState as j } from "react";
4
- import { Icon as g } from "../../base/icon/icon.es.js";
5
- import { ClosingButton as M } from "../../buttons/closing-button/closing-button.es.js";
6
- import { Separator as $ } from "../../misc/separator/separator.es.js";
7
- import { Tag as q } from "../../tags/tag/tag.es.js";
8
- import { FormLabel as A } from "../form-label/form-label.es.js";
9
- import t from "./multi-value-field.module.scss.es.js";
10
- import { useLabels as J } from "../../../providers/label-provider/use-labels.es.js";
11
- const O = L((N, R) => {
1
+ import { jsxs as m, jsx as a } from "react/jsx-runtime";
2
+ import v from "../../../../../external/classnames/index.es.js";
3
+ import { forwardRef as te, useState as R, useRef as C, useImperativeHandle as le, useCallback as ie, useEffect as T, useLayoutEffect as re } from "react";
4
+ import { Icon as F } from "../../base/icon/icon.es.js";
5
+ import { ClosingButton as ne } from "../../buttons/closing-button/closing-button.es.js";
6
+ import { Separator as se } from "../../misc/separator/separator.es.js";
7
+ import { Tag as P } from "../../tags/tag/tag.es.js";
8
+ import { FormLabel as ae } from "../form-label/form-label.es.js";
9
+ import r from "./multi-value-field.module.scss.es.js";
10
+ import { useLabels as oe } from "../../../providers/label-provider/use-labels.es.js";
11
+ const y = 4, ue = 44, ce = te((j, q) => {
12
12
  const {
13
- id: b,
14
- label: d,
15
- name: u,
16
- values: f,
17
- onChange: o,
18
- tagColor: y = "primary",
19
- className: C,
20
- icon: i,
21
- onIconClick: p,
22
- iconButtonProps: a,
23
- isClearable: V = !0,
24
- required: v,
25
- disabled: n
26
- } = N, { getLabel: w } = J(), [x, I] = j(f ?? []), r = f ?? x, h = (e) => {
27
- I(e), o == null || o(e);
28
- }, S = (e) => {
29
- const s = r.filter((T, F) => F !== e);
30
- h(s);
31
- }, c = !n && V && r.length > 0, k = () => {
32
- h([]);
33
- }, z = () => {
34
- if (!i) return null;
35
- const e = typeof i == "string" ? { name: i } : i;
36
- return p ? /* @__PURE__ */ l(
13
+ id: G,
14
+ label: V,
15
+ name: W,
16
+ values: E,
17
+ onChange: g,
18
+ tagColor: k = "primary",
19
+ tagsDirection: X = "stack",
20
+ className: $,
21
+ icon: o,
22
+ onIconClick: I,
23
+ iconButtonProps: h,
24
+ isClearable: D = !0,
25
+ required: M,
26
+ disabled: _
27
+ } = j, { getLabel: S } = oe(), [H, J] = R(E ?? []), x = C(null), z = C(null);
28
+ le(q, () => ({ input: z.current, wrapper: x.current }), []);
29
+ const n = E ?? H, i = X === "row", [d, U] = R(null), B = ie((e) => U(e), []), b = C(0), [c, p] = R(null);
30
+ T(() => {
31
+ i && p(null);
32
+ }, [n.length, i]), T(() => {
33
+ if (!i || !d || typeof ResizeObserver > "u") return;
34
+ const e = new ResizeObserver((t) => {
35
+ var u;
36
+ const l = ((u = t[0]) == null ? void 0 : u.contentRect.width) ?? 0;
37
+ l > 0 && l !== b.current && p(null);
38
+ });
39
+ return e.observe(d), () => e.disconnect();
40
+ }, [i, d]), re(() => {
41
+ if (!i || c !== null) return;
42
+ const e = d;
43
+ if (!e) return;
44
+ const t = e.clientWidth;
45
+ if (t === 0) return;
46
+ const l = e.querySelectorAll("[data-tedi-tag-index]");
47
+ if (l.length === 0) return;
48
+ let u = 0;
49
+ for (let s = 0; s < l.length; s++)
50
+ u += l[s].offsetWidth + (s > 0 ? y : 0);
51
+ if (u <= t) {
52
+ b.current = t, p(l.length);
53
+ return;
54
+ }
55
+ let L = 0, f = 0;
56
+ for (let s = 0; s < l.length; s++) {
57
+ const Z = l[s].offsetWidth, ee = s < l.length - 1 ? ue + y : 0, O = L + Z + (f > 0 ? y : 0);
58
+ if (O + ee <= t)
59
+ L = O, f++;
60
+ else
61
+ break;
62
+ }
63
+ f === 0 && (f = 1), b.current = t, p(f);
64
+ }, [i, c, n, d]);
65
+ const A = (e) => {
66
+ J(e), g == null || g(e);
67
+ }, K = (e) => {
68
+ const t = n.filter((l, u) => u !== e);
69
+ A(t);
70
+ }, N = !_ && D && n.length > 0, Q = () => {
71
+ A([]);
72
+ }, w = i && c !== null ? Math.max(0, n.length - c) : 0, Y = () => {
73
+ if (!o) return null;
74
+ const e = typeof o == "string" ? { name: o } : o;
75
+ return I ? /* @__PURE__ */ a(
37
76
  "button",
38
77
  {
39
- ...a,
40
- className: _(t["tedi-multi-value-field__icon-wrapper"], a == null ? void 0 : a.className),
41
- onClick: p,
78
+ ...h,
79
+ className: v(r["tedi-multi-value-field__icon-wrapper"], h == null ? void 0 : h.className),
80
+ onClick: I,
42
81
  type: "button",
43
- children: /* @__PURE__ */ l(g, { ...e, size: 18 })
82
+ children: /* @__PURE__ */ a(F, { ...e, size: 18 })
44
83
  }
45
- ) : /* @__PURE__ */ l("div", { className: t["tedi-multi-value-field__icon-wrapper"], children: /* @__PURE__ */ l(g, { ...e, size: 18 }) });
84
+ ) : /* @__PURE__ */ a("div", { className: r["tedi-multi-value-field__icon-wrapper"], children: /* @__PURE__ */ a(F, { ...e, size: 18 }) });
46
85
  };
47
- return /* @__PURE__ */ m("div", { className: _(t["tedi-multi-value-field"], C), children: [
48
- d && /* @__PURE__ */ l(A, { id: b, label: d, required: v }),
49
- /* @__PURE__ */ m("div", { className: t["tedi-multi-value-field__inner"], children: [
50
- r.length > 0 && /* @__PURE__ */ l("div", { className: t["tedi-multi-value-field__tags"], children: r.map((e, s) => /* @__PURE__ */ l(q, { color: y, onClose: n ? void 0 : () => S(s), children: e }, `${e}-${s}`)) }),
51
- (c || i) && /* @__PURE__ */ m("div", { className: t["tedi-multi-value-field__right-area"], children: [
52
- c && /* @__PURE__ */ l(
53
- M,
54
- {
55
- onClick: k,
56
- title: w("clear"),
57
- className: t["tedi-multi-value-field__clear-button"],
58
- iconSize: 18
59
- }
60
- ),
61
- c && i && /* @__PURE__ */ l($, { color: "primary", axis: "vertical", height: 1.5, spacing: 0.25 }),
62
- i && z()
63
- ] })
64
- ] }),
65
- u && /* @__PURE__ */ l(
86
+ return /* @__PURE__ */ m("div", { className: v(r["tedi-multi-value-field"], $), children: [
87
+ V && /* @__PURE__ */ a(ae, { id: G, label: V, required: M }),
88
+ /* @__PURE__ */ m(
89
+ "div",
90
+ {
91
+ ref: x,
92
+ className: v(r["tedi-multi-value-field__inner"], {
93
+ [r["tedi-multi-value-field__inner--row"]]: i
94
+ }),
95
+ children: [
96
+ n.length > 0 && /* @__PURE__ */ m(
97
+ "div",
98
+ {
99
+ ref: B,
100
+ className: v(r["tedi-multi-value-field__tags"], {
101
+ [r["tedi-multi-value-field__tags--row"]]: i
102
+ }),
103
+ children: [
104
+ n.map((e, t) => i && c !== null && t >= c ? null : /* @__PURE__ */ a(
105
+ P,
106
+ {
107
+ color: k,
108
+ "data-tedi-tag-index": t,
109
+ onClose: _ ? void 0 : () => K(t),
110
+ children: e
111
+ },
112
+ `${e}-${t}`
113
+ )),
114
+ w > 0 && /* @__PURE__ */ m(
115
+ P,
116
+ {
117
+ color: k,
118
+ className: r["tedi-multi-value-field__overflow-tag"],
119
+ "aria-label": S("multi-value-field.hidden-count", w),
120
+ children: [
121
+ "+",
122
+ w
123
+ ]
124
+ }
125
+ )
126
+ ]
127
+ }
128
+ ),
129
+ (N || o) && /* @__PURE__ */ m("div", { className: r["tedi-multi-value-field__right-area"], children: [
130
+ N && /* @__PURE__ */ a(
131
+ ne,
132
+ {
133
+ onClick: Q,
134
+ title: S("clear"),
135
+ className: r["tedi-multi-value-field__clear-button"],
136
+ iconSize: 18
137
+ }
138
+ ),
139
+ N && o && /* @__PURE__ */ a(se, { color: "primary", axis: "vertical", height: 1.5, spacing: 0.25 }),
140
+ o && Y()
141
+ ] })
142
+ ]
143
+ }
144
+ ),
145
+ W && /* @__PURE__ */ a(
66
146
  "input",
67
147
  {
148
+ ref: z,
68
149
  type: "hidden",
69
- name: u,
70
- value: r.length ? JSON.stringify(r) : "",
71
- required: v,
72
- disabled: n
150
+ name: W,
151
+ value: n.length ? JSON.stringify(n) : "",
152
+ required: M,
153
+ disabled: _
73
154
  }
74
155
  )
75
156
  ] });
76
157
  });
77
- O.displayName = "MultiValueField";
158
+ ce.displayName = "MultiValueField";
78
159
  export {
79
- O as MultiValueField,
80
- O as default
160
+ ce as MultiValueField,
161
+ ce as default
81
162
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-multi-value-field__inner":"tedi-multi-value-field__inner-d00be7fe","tedi-multi-value-field__tags":"tedi-multi-value-field__tags-4f52450e","tedi-multi-value-field__right-area":"tedi-multi-value-field__right-area-2d533551","tedi-multi-value-field__icon-wrapper":"tedi-multi-value-field__icon-wrapper-d73d0e44"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-multi-value-field__inner":"tedi-multi-value-field__inner-d00be7fe","tedi-multi-value-field__inner--row":"tedi-multi-value-field__inner--row-50af96e5","tedi-multi-value-field__tags":"tedi-multi-value-field__tags-4f52450e","tedi-multi-value-field__tags--row":"tedi-multi-value-field__tags--row-fa16b6db","tedi-multi-value-field__overflow-tag":"tedi-multi-value-field__overflow-tag-e6aa972a","tedi-multi-value-field__right-area":"tedi-multi-value-field__right-area-2d533551","tedi-multi-value-field__icon-wrapper":"tedi-multi-value-field__icon-wrapper-d73d0e44"};exports.default=e;
@@ -1,6 +1,9 @@
1
1
  const e = {
2
2
  "tedi-multi-value-field__inner": "tedi-multi-value-field__inner-d00be7fe",
3
+ "tedi-multi-value-field__inner--row": "tedi-multi-value-field__inner--row-50af96e5",
3
4
  "tedi-multi-value-field__tags": "tedi-multi-value-field__tags-4f52450e",
5
+ "tedi-multi-value-field__tags--row": "tedi-multi-value-field__tags--row-fa16b6db",
6
+ "tedi-multi-value-field__overflow-tag": "tedi-multi-value-field__overflow-tag-e6aa972a",
4
7
  "tedi-multi-value-field__right-area": "tedi-multi-value-field__right-area-2d533551",
5
8
  "tedi-multi-value-field__icon-wrapper": "tedi-multi-value-field__icon-wrapper-d73d0e44"
6
9
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),y=require("../../../../../external/classnames/index.cjs.js"),u=require("react"),re=require("../../base/typography/text/text.cjs.js"),le=require("../../buttons/button/button.cjs.js"),se=require("../feedback-text/feedback-text.cjs.js"),ue=require("../form-label/form-label.cjs.js"),n=require("./number-field.module.scss.cjs.js"),de=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),oe=require("../../../providers/label-provider/use-labels.cjs.js"),z=S=>{const{getCurrentBreakpointProps:C}=de.useBreakpointProps(S.defaultServerBreakpoint),{getLabel:L,locale:D}=oe.useLabels(),W=D==="en"?".":",",{id:B,label:A,hideLabel:G,required:T,className:V,size:N,inputMode:H,decimalPlaces:p,decimalSeparator:F=W,min:d,max:o,step:I=1,defaultValue:g,value:c,onChange:a,suffix:h,fullWidth:J=!1,disabled:b=!1,invalid:k=!1,helper:i,input:v}=C(S),K=H??(p&&p>0||F===","?"decimal":"numeric"),m=u.useCallback(e=>e===void 0?"":F===","?String(e).replace(".",","):String(e),[F]),x=u.useRef(null),q=u.useRef(!1),[w,E]=u.useState(""),[Q,j]=u.useState(g),[X,_]=u.useState(()=>m(c??g)),r=a&&typeof c<"u"?c:Q;u.useEffect(()=>{!q.current&&typeof c<"u"&&_(m(c))},[c,m]);const O=i?`${B}-helper`:void 0,P=u.useCallback(e=>{if(e===void 0)return k||(i==null?void 0:i.type)==="error";const t=d!==void 0&&e<d,s=o!==void 0&&e>o;return k||t||s||(i==null?void 0:i.type)==="error"},[k,i,o,d]),U=e=>Math.min(o??1/0,Math.max(d??-1/0,e)),Y=e=>{const t=L("numberField.quantityUpdated",e);E(t),setTimeout(()=>{E("")},5e3)},R=e=>p!==void 0?parseFloat(e.toFixed(p)):e,Z=e=>{let t=r??0;e==="increment"&&(t=t+I),e==="decrement"&&(t=t-I),t=U(t),t=R(t),Y(t),a==null||a(t),j(t),_(m(t))},ee=({currentTarget:{value:e}})=>{if(_(e),e===""){r!==void 0&&(a==null||a(void 0),j(void 0));return}const t=e.replace(",",".");if(!/^-?(\d+(\.\d*)?|\.\d+)$/.test(t))return;const s=parseFloat(t);if(Number.isNaN(s))return;const f=U(s),M=R(f);M!==r&&(a==null||a(M),j(M))},te=()=>{q.current=!0},ne=()=>{q.current=!1,_(m(r))},$=e=>{const t=r!==void 0&&(e==="increment"?o!==void 0&&r>=o:d!==void 0&&r<=d),s=y.default(n.default["tedi-number-field__button"],n.default[`tedi-number-field__button--${e}`],{[n.default["tedi-number-field__button--disabled"]]:t||b}),f=L(`numberField.${e}`,I);return l.jsx(le.Button,{"aria-label":f,onClick:()=>Z(e),disabled:t||b,visualType:"secondary",className:s,icon:{name:e==="increment"?"add":"remove"},size:N==="small"?"small":void 0,children:e==="increment"?"+":"-"})},ae=()=>{const e=y.default(n.default["tedi-number-field__input-wrapper"],{[n.default["tedi-number-field__input-wrapper--with-suffix"]]:h,[n.default["tedi-number-field__input-wrapper--full-width"]]:J}),t=y.default(n.default["tedi-number-field__input"],v==null?void 0:v.className),s=()=>{var f;return(f=x==null?void 0:x.current)==null?void 0:f.focus()};return l.jsxs("div",{className:e,onClick:s,children:[l.jsx("input",{ref:x,id:B,role:"spinbutton","aria-valuemin":d,"aria-valuemax":o,"aria-valuenow":r,"aria-describedby":O,"aria-invalid":P(r)?"true":"false",type:"text",inputMode:K,value:X,required:T,disabled:b,onChange:ee,onFocus:te,onBlur:ne,className:t,...v}),h&&l.jsx(re.Text,{element:"span",modifiers:"small",color:"tertiary",className:n.default["tedi-number-field__suffix"],children:h})]})},ie=y.default(n.default["tedi-number-field"],{[n.default["tedi-number-field--invalid"]]:P(r)},{[n.default["tedi-number-field--disabled"]]:b},{[n.default["tedi-number-field--small"]]:N==="small"},V);return l.jsxs("div",{"data-name":"number-field",className:V,children:[l.jsx(ue.FormLabel,{id:B,label:A,required:T,hideLabel:G,size:N}),l.jsxs("div",{className:ie,children:[$("decrement"),ae(),$("increment")]}),i&&l.jsx(se.FeedbackText,{className:n.default["tedi-number-field__feedback"],...i,id:O}),w&&l.jsx("div",{"aria-live":"polite",className:"sr-only",children:w})]})};z.displayName="NumberField";exports.NumberField=z;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),T=require("../../../../../external/classnames/index.cjs.js"),r=require("react"),ce=require("../../base/typography/text/text.cjs.js"),fe=require("../../buttons/button/button.cjs.js"),me=require("../feedback-text/feedback-text.cjs.js"),be=require("../form-label/form-label.cjs.js"),i=require("./number-field.module.scss.cjs.js"),pe=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),ve=require("../../../providers/label-provider/use-labels.cjs.js"),U=g=>{const{getCurrentBreakpointProps:G}=pe.useBreakpointProps(g.defaultServerBreakpoint),{getLabel:h,locale:J}=ve.useLabels(),K=J==="en"?".":",",{id:Q,label:k,hideLabel:X,required:w,className:C,size:q,inputMode:Y,decimalPlaces:x,decimalSeparator:j=K,min:d,max:o,step:M=1,defaultValue:O,value:c,onChange:a,suffix:S,fullWidth:Z=!1,disabled:N=!1,invalid:R=!1,helper:u,input:_}=G(g),ee=r.useId(),E=Q??ee,te=Y??(x&&x>0||j===","?"decimal":"numeric"),m=r.useCallback(e=>e===void 0?"":j===","?String(e).replace(".",","):String(e),[j]),y=r.useRef(null),B=r.useRef(!1),[ne,L]=r.useState(""),[re,V]=r.useState(O),[ie,I]=r.useState(()=>m(c??O)),F=c!==void 0,n=F?c:re,b=r.useRef(),p=r.useRef(),P=r.useRef(n);r.useEffect(()=>{!B.current&&typeof c<"u"&&I(m(c))},[c,m]);const $=u?`${E}-helper`:void 0,z=r.useCallback(e=>{if(e===void 0)return R||(u==null?void 0:u.type)==="error";const t=d!==void 0&&e<d,l=o!==void 0&&e>o;return R||t||l||(u==null?void 0:u.type)==="error"},[R,u,o,d]),A=e=>Math.min(o??1/0,Math.max(d??-1/0,e)),D=r.useCallback(e=>{e&&(L(""),b.current&&clearTimeout(b.current),p.current&&clearTimeout(p.current),b.current=setTimeout(()=>{L(e),p.current=setTimeout(()=>L(""),5e3)},100))},[]);r.useEffect(()=>()=>{b.current&&clearTimeout(b.current),p.current&&clearTimeout(p.current)},[]),r.useEffect(()=>{P.current!==n&&(!B.current&&n!==void 0&&D(h("numberField.quantityUpdated",n)),P.current=n)},[n,D,h]);const W=e=>x!==void 0?parseFloat(e.toFixed(x)):e,ue=e=>{let t=n??0;e==="increment"&&(t=t+M),e==="decrement"&&(t=t-M),t=A(t),t=W(t),a==null||a(t),F||V(t),I(m(t))},ae=({currentTarget:{value:e}})=>{if(I(e),e===""){n!==void 0&&(a==null||a(void 0),F||V(void 0));return}const t=e.replace(",",".");if(!/^-?(\d+(\.\d*)?|\.\d+)$/.test(t))return;const l=parseFloat(t);if(Number.isNaN(l))return;const f=A(l),v=W(f);v!==n&&(a==null||a(v),F||V(v))},se=()=>{B.current=!0},le=()=>{B.current=!1,I(m(n))},H=e=>{const t=n!==void 0&&(e==="increment"?o!==void 0&&n>=o:d!==void 0&&n<=d),l=T.default(i.default["tedi-number-field__button"],i.default[`tedi-number-field__button--${e}`],{[i.default["tedi-number-field__button--disabled"]]:t||N}),f=typeof k=="string"?k:void 0,v=h(`numberField.${e}`,M,f);return s.jsx(fe.Button,{"aria-label":v,onClick:()=>ue(e),disabled:t||N,visualType:"secondary",className:l,icon:{name:e==="increment"?"add":"remove"},size:q==="small"?"small":void 0,children:e==="increment"?"+":"-"})},de=()=>{const e=T.default(i.default["tedi-number-field__input-wrapper"],{[i.default["tedi-number-field__input-wrapper--with-suffix"]]:S,[i.default["tedi-number-field__input-wrapper--full-width"]]:Z}),t=T.default(i.default["tedi-number-field__input"],_==null?void 0:_.className),l=()=>{var f;return(f=y==null?void 0:y.current)==null?void 0:f.focus()};return s.jsxs("div",{className:e,onClick:l,children:[s.jsx("input",{ref:y,id:E,role:"spinbutton","aria-valuemin":d,"aria-valuemax":o,"aria-valuenow":n,"aria-describedby":$,"aria-invalid":z(n)?"true":"false",type:"text",inputMode:te,value:ie,required:w,disabled:N,onChange:ae,onFocus:se,onBlur:le,className:t,..._}),S&&s.jsx(ce.Text,{element:"span",modifiers:"small",color:"tertiary",className:i.default["tedi-number-field__suffix"],children:S})]})},oe=T.default(i.default["tedi-number-field"],{[i.default["tedi-number-field--invalid"]]:z(n)},{[i.default["tedi-number-field--disabled"]]:N},{[i.default["tedi-number-field--small"]]:q==="small"},C);return s.jsxs("div",{"data-name":"number-field",className:C,children:[s.jsx(be.FormLabel,{id:E,label:k,required:w,hideLabel:X,size:q}),s.jsxs("div",{className:oe,children:[H("decrement"),de(),H("increment")]}),u&&s.jsx(me.FeedbackText,{className:i.default["tedi-number-field__feedback"],...u,id:$}),s.jsx("div",{role:"status","aria-live":"polite","aria-atomic":"true",className:"sr-only",children:ne})]})};U.displayName="NumberField";exports.NumberField=U;