@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,37 +1,38 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- import { useMergeRefs as g } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
3
- import v from "../../../../../external/classnames/index.es.js";
4
- import { useContext as x, isValidElement as y, cloneElement as b } from "react";
5
- import { Icon as _ } from "../../base/icon/icon.es.js";
6
- import { OverlayContext as u } from "./overlay.es.js";
1
+ import { jsx as x } from "react/jsx-runtime";
2
+ import { useMergeRefs as y } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
3
+ import b from "../../../../../external/classnames/index.es.js";
4
+ import { useContext as _, isValidElement as s, cloneElement as u } from "react";
5
+ import { getElementRef as I } from "../../../helpers/get-element-ref.es.js";
6
+ import { Icon as R } from "../../base/icon/icon.es.js";
7
+ import { OverlayContext as h } from "./overlay.es.js";
7
8
  import r from "./overlay.module.scss.es.js";
8
- import { useLabels as I } from "../../../providers/label-provider/use-labels.es.js";
9
- const R = (s) => {
10
- const { children: e, className: n } = s, { getLabel: l } = I(), { getReferenceProps: t, reference: c, openWith: m, open: a, role: p, contentId: f } = x(u), o = g([c, e.ref]), i = p === "tooltip" ? {
11
- "aria-describedby": a ? f : void 0
9
+ import { useLabels as E } from "../../../providers/label-provider/use-labels.es.js";
10
+ const T = (n) => {
11
+ const { children: e, className: l } = n, { getLabel: m } = E(), { getReferenceProps: t, reference: c, openWith: a, open: p, role: f, ariaHidden: d, contentId: g } = _(h), v = s(e) ? I(e) : void 0, o = y([c, v]), i = f === "tooltip" && !d ? {
12
+ "aria-describedby": p ? g : void 0
12
13
  } : {};
13
- return y(e) ? b(
14
+ return s(e) ? u(
14
15
  e,
15
16
  t({
16
- ref: o,
17
17
  tabIndex: 0,
18
18
  ...i,
19
- label: e.type === _ ? l("tooltip.icon-trigger") : void 0,
20
- ...e.props
19
+ label: e.type === R ? m("tooltip.icon-trigger") : void 0,
20
+ ...e.props,
21
+ ref: o
21
22
  })
22
- ) : /* @__PURE__ */ d(
23
+ ) : /* @__PURE__ */ x(
23
24
  "div",
24
25
  {
25
26
  ...t({
26
27
  ref: o,
27
28
  tabIndex: 0,
28
- className: v(
29
+ className: b(
29
30
  r["tedi-overlay__trigger"],
30
31
  r["tedi-overlay__trigger--text"],
31
32
  {
32
- [r["tedi-overlay__trigger--click"]]: m === "click"
33
+ [r["tedi-overlay__trigger--click"]]: a === "click"
33
34
  },
34
- n
35
+ l
35
36
  ),
36
37
  ...i
37
38
  }),
@@ -40,5 +41,5 @@ const R = (s) => {
40
41
  );
41
42
  };
42
43
  export {
43
- R as OverlayTrigger
44
+ T as OverlayTrigger
44
45
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const N=require("react/jsx-runtime"),t=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),n=require("react"),Q=require("./overlay-content.cjs.js"),X=require("./overlay-trigger.cjs.js"),Y=require("../../../helpers/hooks/use-is-touch-device.cjs.js"),Z=require("../../../helpers/hooks/use-is-mounted.cjs.js"),j=require("../../../../../external/@floating-ui/dom/dist/floating-ui.dom.cjs.js"),i=require("../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js"),$=3,S=n.createContext({open:!1,onOpenChange:()=>{},isMounted:!1,openWith:"hover",reference:()=>{},floating:()=>{},focusManager:{},arrowRef:{current:null},x:0,y:0,strategy:"absolute",getReferenceProps:()=>({}),getFloatingProps:()=>({}),arrow:{width:0,height:0,x:0,y:0,centerOffset:0},placement:"top",context:{},scrollLock:void 0,contentId:""}),u=E=>{const L=Y.useIsTouchDevice(),{children:W,placement:A="top",openWith:s=L?"click":"hover",defaultOpen:G=!1,open:a,onToggle:r,role:d="tooltip",arrowDimensions:e,offset:H=$+((e==null?void 0:e.height)??0),arrowPadding:V=4,focusManager:f,dismissible:y,scrollLock:O,trackReferencePosition:z=!1}=E,{order:M=["reference","content"],initialFocus:m,modal:g,...x}=f??{},C=m!==void 0?m:g?0:void 0,[F,P]=n.useState(G),p=n.useRef(null),R=Z.useIsMounted(),h=n.useMemo(()=>r&&typeof a<"u"?a:F,[r,a,F]),v=n.useCallback(l=>{typeof a>"u"&&P(l),r==null||r(l)},[a,P,r]),{x:q,y:I,refs:c,strategy:b,context:o,middlewareData:w,placement:k}=t.useFloating({placement:A,open:h,onOpenChange:v,middleware:[i.offset(H),i.flip(),i.shift({padding:8}),i.arrow({element:p,padding:V})],whileElementsMounted:z?(l,J,K)=>j.autoUpdate(l,J,K,{animationFrame:!0}):j.autoUpdate}),{getReferenceProps:T,getFloatingProps:U}=t.useInteractions([t.useHover(o,{enabled:s==="hover",handleClose:t.safePolygon()}),t.useClick(o,{toggle:y}),t.useFocus(o,{enabled:s==="hover"}),t.useRole(o,{role:d}),t.useDismiss(o,{enabled:y,outsidePressEvent:s==="click"?"mousedown":"pointerdown"})]),_=n.useId(),B=n.useMemo(()=>({open:h,onOpenChange:v,isMounted:R,openWith:s,focusManager:f?{order:M,modal:g,initialFocus:C,...x}:void 0,reference:c.setReference,floating:c.setFloating,arrowRef:p,x:q,y:I,strategy:b,getReferenceProps:T,getFloatingProps:U,arrow:{width:e==null?void 0:e.width,height:e==null?void 0:e.height,...w.arrow},context:o,placement:k,scrollLock:O,role:d,contentId:_}),[h,v,R,s,f,c.setReference,c.setFloating,p,q,I,b,T,U,e==null?void 0:e.width,e==null?void 0:e.height,w.arrow,o,k,O,d,_,g,M,C,x]);return N.jsx(S.Provider,{value:B,children:W})};u.Trigger=X.OverlayTrigger;u.Content=Q.OverlayContent;exports.Overlay=u;exports.OverlayContext=S;exports.default=u;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const Q=require("react/jsx-runtime"),t=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),n=require("react"),X=require("./overlay-content.cjs.js"),Y=require("./overlay-trigger.cjs.js"),Z=require("../../../helpers/hooks/use-is-touch-device.cjs.js"),$=require("../../../helpers/hooks/use-is-mounted.cjs.js"),S=require("../../../../../external/@floating-ui/dom/dist/floating-ui.dom.cjs.js"),i=require("../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js"),D=3,E=n.createContext({open:!1,onOpenChange:()=>{},isMounted:!1,openWith:"hover",reference:()=>{},floating:()=>{},focusManager:{},arrowRef:{current:null},x:0,y:0,strategy:"absolute",getReferenceProps:()=>({}),getFloatingProps:()=>({}),arrow:{width:0,height:0,x:0,y:0,centerOffset:0},placement:"top",context:{},scrollLock:void 0,contentId:""}),u=H=>{const L=Z.useIsTouchDevice(),{children:W,placement:A="top",openWith:s=L?"click":"hover",defaultOpen:G=!1,open:a,onToggle:r,role:d="tooltip",ariaHidden:f=!1,arrowDimensions:e,offset:V=D+((e==null?void 0:e.height)??0),arrowPadding:z=4,focusManager:g,dismissible:O,scrollLock:M,trackReferencePosition:B=!1}=H,{order:m=["reference","content"],initialFocus:x,modal:p,...C}=g??{},F=x!==void 0?x:p?0:void 0,[P,R]=n.useState(G),h=n.useRef(null),b=$.useIsMounted(),v=n.useMemo(()=>r&&typeof a<"u"?a:P,[r,a,P]),y=n.useCallback(l=>{typeof a>"u"&&R(l),r==null||r(l)},[a,R,r]),{x:q,y:I,refs:c,strategy:w,context:o,middlewareData:k,placement:T}=t.useFloating({placement:A,open:v,onOpenChange:y,middleware:[i.offset(V),i.flip(),i.shift({padding:8}),i.arrow({element:h,padding:z})],whileElementsMounted:B?(l,K,N)=>S.autoUpdate(l,K,N,{animationFrame:!0}):S.autoUpdate}),{getReferenceProps:U,getFloatingProps:_}=t.useInteractions([t.useHover(o,{enabled:s==="hover",handleClose:t.safePolygon()}),t.useClick(o,{toggle:O}),t.useFocus(o,{enabled:s==="hover"}),t.useRole(o,{role:d,enabled:!f}),t.useDismiss(o,{enabled:O,outsidePressEvent:s==="click"?"mousedown":"pointerdown"})]),j=n.useId(),J=n.useMemo(()=>({open:v,onOpenChange:y,isMounted:b,openWith:s,focusManager:g?{order:m,modal:p,initialFocus:F,...C}:void 0,reference:c.setReference,floating:c.setFloating,arrowRef:h,x:q,y:I,strategy:w,getReferenceProps:U,getFloatingProps:_,arrow:{width:e==null?void 0:e.width,height:e==null?void 0:e.height,...k.arrow},context:o,placement:T,scrollLock:M,role:d,ariaHidden:f,contentId:j}),[v,y,b,s,g,c.setReference,c.setFloating,h,q,I,w,U,_,e==null?void 0:e.width,e==null?void 0:e.height,k.arrow,o,T,M,d,f,j,p,m,F,C]);return Q.jsx(E.Provider,{value:J,children:W})};u.Trigger=Y.OverlayTrigger;u.Content=X.OverlayContent;exports.Overlay=u;exports.OverlayContext=E;exports.default=u;
@@ -46,6 +46,15 @@ export interface OverlayProps {
46
46
  * @default tooltip
47
47
  */
48
48
  role?: UseRoleProps['role'];
49
+ /**
50
+ * Renders the overlay purely visually: no `useRole` aria wiring on the trigger
51
+ * (so no `aria-describedby`) and the content is `aria-hidden`. Use when the
52
+ * trigger already conveys the same text through its accessible name — e.g. an
53
+ * icon-only button whose visible tooltip merely mirrors its label — so screen
54
+ * readers don't announce it twice.
55
+ * @default false
56
+ */
57
+ ariaHidden?: boolean;
49
58
  /**
50
59
  * Content overlay arrow dimensions.
51
60
  */
@@ -108,6 +117,7 @@ export interface OverlayContextType {
108
117
  context: FloatingContext<ReferenceType>;
109
118
  scrollLock?: boolean;
110
119
  role?: UseRoleProps['role'];
120
+ ariaHidden?: boolean;
111
121
  contentId: string;
112
122
  }
113
123
  export declare const OverlayContext: import('react').Context<OverlayContextType>;
@@ -1,13 +1,13 @@
1
- import { jsx as J } from "react/jsx-runtime";
2
- import { useFloating as K, useInteractions as N, useHover as Q, safePolygon as X, useClick as Y, useFocus as Z, useRole as _, useDismiss as $ } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
3
- import { useState as D, useRef as ee, useMemo as T, useCallback as te, useId as oe, createContext as ne } from "react";
4
- import { OverlayContent as re } from "./overlay-content.es.js";
5
- import { OverlayTrigger as se } from "./overlay-trigger.es.js";
6
- import { useIsTouchDevice as ae } from "../../../helpers/hooks/use-is-touch-device.es.js";
1
+ import { jsx as K } from "react/jsx-runtime";
2
+ import { useFloating as N, useInteractions as Q, useHover as X, safePolygon as Y, useClick as Z, useFocus as _, useRole as $, useDismiss as D } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
3
+ import { useState as ee, useRef as te, useMemo as E, useCallback as oe, useId as ne, createContext as re } from "react";
4
+ import { OverlayContent as se } from "./overlay-content.es.js";
5
+ import { OverlayTrigger as ae } from "./overlay-trigger.es.js";
6
+ import { useIsTouchDevice as le } from "../../../helpers/hooks/use-is-touch-device.es.js";
7
7
  import { useIsMounted as ce } from "../../../helpers/hooks/use-is-mounted.es.js";
8
- import { autoUpdate as E } from "../../../../../external/@floating-ui/dom/dist/floating-ui.dom.es.js";
9
- import { offset as le, flip as ie, shift as fe, arrow as ue } from "../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.es.js";
10
- const de = 3, pe = ne({
8
+ import { autoUpdate as H } from "../../../../../external/@floating-ui/dom/dist/floating-ui.dom.es.js";
9
+ import { offset as ie, flip as fe, shift as de, arrow as ue } from "../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.es.js";
10
+ const pe = 3, ge = re({
11
11
  open: !1,
12
12
  onOpenChange: () => {
13
13
  },
@@ -36,121 +36,124 @@ const de = 3, pe = ne({
36
36
  scrollLock: void 0,
37
37
  contentId: ""
38
38
  }), L = (W) => {
39
- const j = ae(), {
39
+ const j = le(), {
40
40
  children: A,
41
41
  placement: G = "top",
42
42
  openWith: n = j ? "click" : "hover",
43
- defaultOpen: H = !1,
43
+ defaultOpen: S = !1,
44
44
  open: r,
45
45
  onToggle: o,
46
- role: c = "tooltip",
46
+ role: l = "tooltip",
47
+ ariaHidden: c = !1,
47
48
  arrowDimensions: e,
48
- offset: S = de + ((e == null ? void 0 : e.height) ?? 0),
49
- arrowPadding: U = 4,
50
- focusManager: l,
51
- dismissible: p,
52
- scrollLock: g,
53
- trackReferencePosition: V = !1
54
- } = W, { order: h = ["reference", "content"], initialFocus: m, modal: i, ...v } = l ?? {}, y = m !== void 0 ? m : i ? 0 : void 0, [O, x] = D(H), f = ee(null), F = ce(), u = T(() => o && typeof r < "u" ? r : O, [o, r, O]), d = te(
49
+ offset: U = pe + ((e == null ? void 0 : e.height) ?? 0),
50
+ arrowPadding: V = 4,
51
+ focusManager: i,
52
+ dismissible: g,
53
+ scrollLock: h,
54
+ trackReferencePosition: q = !1
55
+ } = W, { order: m = ["reference", "content"], initialFocus: v, modal: f, ...y } = i ?? {}, O = v !== void 0 ? v : f ? 0 : void 0, [x, F] = ee(S), d = te(null), P = ce(), u = E(() => o && typeof r < "u" ? r : x, [o, r, x]), p = oe(
55
56
  (a) => {
56
- typeof r > "u" && x(a), o == null || o(a);
57
+ typeof r > "u" && F(a), o == null || o(a);
57
58
  },
58
- [r, x, o]
59
- ), { x: P, y: C, refs: s, strategy: M, context: t, middlewareData: R, placement: w } = K({
59
+ [r, F, o]
60
+ ), { x: C, y: M, refs: s, strategy: R, context: t, middlewareData: w, placement: b } = N({
60
61
  placement: G,
61
62
  open: u,
62
- onOpenChange: d,
63
+ onOpenChange: p,
63
64
  middleware: [
64
- le(S),
65
- ie(),
66
- fe({ padding: 8 }),
65
+ ie(U),
66
+ fe(),
67
+ de({ padding: 8 }),
67
68
  ue({
68
- element: f,
69
- padding: U
69
+ element: d,
70
+ padding: V
70
71
  })
71
72
  ],
72
- whileElementsMounted: V ? (a, z, B) => E(a, z, B, { animationFrame: !0 }) : E
73
- }), { getReferenceProps: k, getFloatingProps: I } = N([
74
- Q(t, {
73
+ whileElementsMounted: q ? (a, B, J) => H(a, B, J, { animationFrame: !0 }) : H
74
+ }), { getReferenceProps: k, getFloatingProps: I } = Q([
75
+ X(t, {
75
76
  enabled: n === "hover",
76
- handleClose: X()
77
- }),
78
- Y(t, {
79
- toggle: p
77
+ handleClose: Y()
80
78
  }),
81
79
  Z(t, {
80
+ toggle: g
81
+ }),
82
+ _(t, {
82
83
  enabled: n === "hover"
83
84
  }),
84
- _(t, { role: c }),
85
- $(t, {
86
- enabled: p,
85
+ $(t, { role: l, enabled: !c }),
86
+ D(t, {
87
+ enabled: g,
87
88
  outsidePressEvent: n === "click" ? "mousedown" : "pointerdown"
88
89
  })
89
- ]), b = oe(), q = T(
90
+ ]), T = ne(), z = E(
90
91
  () => ({
91
92
  open: u,
92
- onOpenChange: d,
93
- isMounted: F,
93
+ onOpenChange: p,
94
+ isMounted: P,
94
95
  openWith: n,
95
- focusManager: l ? {
96
- order: h,
97
- modal: i,
98
- initialFocus: y,
99
- ...v
96
+ focusManager: i ? {
97
+ order: m,
98
+ modal: f,
99
+ initialFocus: O,
100
+ ...y
100
101
  } : void 0,
101
102
  reference: s.setReference,
102
103
  floating: s.setFloating,
103
- arrowRef: f,
104
- x: P,
105
- y: C,
106
- strategy: M,
104
+ arrowRef: d,
105
+ x: C,
106
+ y: M,
107
+ strategy: R,
107
108
  getReferenceProps: k,
108
109
  getFloatingProps: I,
109
110
  arrow: {
110
111
  width: e == null ? void 0 : e.width,
111
112
  height: e == null ? void 0 : e.height,
112
- ...R.arrow
113
+ ...w.arrow
113
114
  },
114
115
  context: t,
115
- placement: w,
116
- scrollLock: g,
117
- role: c,
118
- contentId: b
116
+ placement: b,
117
+ scrollLock: h,
118
+ role: l,
119
+ ariaHidden: c,
120
+ contentId: T
119
121
  }),
120
122
  [
121
123
  u,
122
- d,
123
- F,
124
+ p,
125
+ P,
124
126
  n,
125
- l,
127
+ i,
126
128
  s.setReference,
127
129
  s.setFloating,
128
- f,
129
- P,
130
+ d,
130
131
  C,
131
132
  M,
133
+ R,
132
134
  k,
133
135
  I,
134
136
  e == null ? void 0 : e.width,
135
137
  e == null ? void 0 : e.height,
136
- R.arrow,
138
+ w.arrow,
137
139
  t,
138
- w,
139
- g,
140
- c,
141
140
  b,
142
- i,
143
141
  h,
144
- y,
145
- v
142
+ l,
143
+ c,
144
+ T,
145
+ f,
146
+ m,
147
+ O,
148
+ y
146
149
  ]
147
150
  );
148
- return /* @__PURE__ */ J(pe.Provider, { value: q, children: A });
151
+ return /* @__PURE__ */ K(ge.Provider, { value: z, children: A });
149
152
  };
150
- L.Trigger = se;
151
- L.Content = re;
153
+ L.Trigger = ae;
154
+ L.Content = se;
152
155
  export {
153
156
  L as Overlay,
154
- pe as OverlayContext,
157
+ ge as OverlayContext,
155
158
  L as default
156
159
  };
@@ -1,3 +1,4 @@
1
1
  export * from './tooltip';
2
2
  export * from './tooltip-content';
3
3
  export * from './tooltip-trigger';
4
+ export * from './info-tooltip';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("../../buttons/info-button/info-button.cjs.js"),o=require("./tooltip.cjs.js"),m=require("../../../providers/label-provider/use-labels.cjs.js"),T=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),n=t=>{const{getLabel:r}=m.useLabels(),{getCurrentBreakpointProps:i}=T.useBreakpointProps(t.defaultServerBreakpoint),{children:s,placement:l,openWith:a,maxWidth:u,color:c="default",isSmall:p=!1,ariaLabel:f}=i(t);return e.jsxs(o.Tooltip,{placement:l,openWith:a,children:[e.jsx(o.Tooltip.Trigger,{children:e.jsx(d.InfoButton,{color:c,isSmall:p,"aria-label":f??r("infoButton.moreInformation")})}),e.jsx(o.Tooltip.Content,{maxWidth:u,children:s})]})};n.displayName="InfoTooltip";exports.InfoTooltip=n;
@@ -0,0 +1,52 @@
1
+ import { Placement } from '@floating-ui/react';
2
+ import { ReactNode } from 'react';
3
+ import { BreakpointSupport } from '../../../helpers';
4
+ import { OverlayOpenWith } from '../overlay/overlay';
5
+ import { TooltipContentProps } from './tooltip-content';
6
+ interface InfoTooltipBreakpointProps {
7
+ /**
8
+ * Tooltip content shown when the info button is hovered or focused.
9
+ */
10
+ children: ReactNode;
11
+ /**
12
+ * Placement of the tooltip relative to the info button.
13
+ * @default top
14
+ */
15
+ placement?: Placement;
16
+ /**
17
+ * How the tooltip is opened.
18
+ * @default hover
19
+ */
20
+ openWith?: OverlayOpenWith;
21
+ /**
22
+ * Max width of the tooltip content.
23
+ * @default medium
24
+ */
25
+ maxWidth?: TooltipContentProps['maxWidth'];
26
+ /**
27
+ * Info button colour. Use `inverted` on dark or coloured backgrounds.
28
+ * @default default
29
+ */
30
+ color?: 'default' | 'inverted';
31
+ /**
32
+ * Renders the smaller (16px) info button.
33
+ * @default false
34
+ */
35
+ isSmall?: boolean;
36
+ /**
37
+ * Accessible name for the info button.
38
+ * @default the translated "more information" label
39
+ */
40
+ ariaLabel?: string;
41
+ }
42
+ export type InfoTooltipProps = BreakpointSupport<InfoTooltipBreakpointProps>;
43
+ /**
44
+ * An info button that reveals a tooltip on hover/focus — the standard
45
+ * "ⓘ + tooltip" pattern. Bundles `InfoButton` + `Tooltip` so consumers don't
46
+ * have to wire the trigger and content by hand (e.g. next to a form label).
47
+ */
48
+ export declare const InfoTooltip: {
49
+ (props: InfoTooltipProps): JSX.Element;
50
+ displayName: string;
51
+ };
52
+ export default InfoTooltip;
@@ -0,0 +1,24 @@
1
+ import { jsxs as c, jsx as o } from "react/jsx-runtime";
2
+ import { InfoButton as u } from "../../buttons/info-button/info-button.es.js";
3
+ import { Tooltip as t } from "./tooltip.es.js";
4
+ import { useLabels as d } from "../../../providers/label-provider/use-labels.es.js";
5
+ import { useBreakpointProps as h } from "../../../helpers/hooks/use-breakpoint-props.es.js";
6
+ const B = (r) => {
7
+ const { getLabel: e } = d(), { getCurrentBreakpointProps: n } = h(r.defaultServerBreakpoint), {
8
+ children: i,
9
+ placement: a,
10
+ openWith: l,
11
+ maxWidth: m,
12
+ color: p = "default",
13
+ isSmall: s = !1,
14
+ ariaLabel: f
15
+ } = n(r);
16
+ return /* @__PURE__ */ c(t, { placement: a, openWith: l, children: [
17
+ /* @__PURE__ */ o(t.Trigger, { children: /* @__PURE__ */ o(u, { color: p, isSmall: s, "aria-label": f ?? e("infoButton.moreInformation") }) }),
18
+ /* @__PURE__ */ o(t.Content, { maxWidth: m, children: i })
19
+ ] });
20
+ };
21
+ B.displayName = "InfoTooltip";
22
+ export {
23
+ B as InfoTooltip
24
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),g=require("../../../../../external/classnames/index.cjs.js"),f=require("../../base/icon/icon.cjs.js"),m=require("../../buttons/closing-button/closing-button.cjs.js"),_=require("../../loaders/spinner/spinner.cjs.js"),j=require("../../misc/ellipsis/ellipsis.cjs.js"),e=require("./tag.module.scss.cjs.js"),x=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),q=l=>{const{getCurrentBreakpointProps:n}=x.useBreakpointProps(l.defaultServerBreakpoint),{children:o,className:c,onClose:s,closeButtonProps:d,isLoading:i=!1,color:a="primary",ellipsis:r=!1,...u}=n(l),p=g.default(e.default["tedi-tag"],a&&e.default[`tedi-tag--color-${a}`],s&&!i&&e.default["tedi-tag__close"],r!==!1&&e.default["tedi-tag--ellipsis"],c);return t.jsxs("div",{className:p,role:"status","aria-live":i?"polite":void 0,...u,children:[a==="danger"&&t.jsx("div",{className:e.default["tedi-tag__icon-wrapper"],children:t.jsx(f.Icon,{name:"info",color:"danger",size:16,className:e.default["tedi-tag__icon--error"]})}),t.jsx("div",{className:e.default["tedi-tag__content"],children:r!==!1?t.jsx(j.Ellipsis,{position:r==="start"?"start":"end",lineClamp:1,children:o}):o}),i&&!s&&t.jsx("div",{className:e.default["tedi-tag__icon-wrapper"],children:t.jsx(_.Spinner,{className:e.default["tedi-tag__loader"]})}),!i&&s&&t.jsx(m.ClosingButton,{iconSize:18,...d,onClick:s})]})};exports.Tag=q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),f=require("../../../../../external/classnames/index.cjs.js"),m=require("../../base/icon/icon.cjs.js"),_=require("../../buttons/closing-button/closing-button.cjs.js"),j=require("../../loaders/spinner/spinner.cjs.js"),x=require("../../misc/ellipsis/ellipsis.cjs.js"),e=require("./tag.module.scss.cjs.js"),q=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),v=l=>{const{getCurrentBreakpointProps:n}=q.useBreakpointProps(l.defaultServerBreakpoint),{children:o,className:c,onClose:s,closeButtonProps:d,isLoading:i=!1,color:a="primary",ellipsis:r=!1,role:u="status",...p}=n(l),g=f.default(e.default["tedi-tag"],a&&e.default[`tedi-tag--color-${a}`],s&&!i&&e.default["tedi-tag__close"],r!==!1&&e.default["tedi-tag--ellipsis"],c);return t.jsxs("div",{className:g,role:u,"aria-live":i?"polite":void 0,...p,children:[a==="danger"&&t.jsx("div",{className:e.default["tedi-tag__icon-wrapper"],children:t.jsx(m.Icon,{name:"info",color:"danger",size:16,className:e.default["tedi-tag__icon--error"]})}),t.jsx("div",{className:e.default["tedi-tag__content"],children:r!==!1?t.jsx(x.Ellipsis,{position:r==="start"?"start":"end",lineClamp:1,children:o}):o}),i&&!s&&t.jsx("div",{className:e.default["tedi-tag__icon-wrapper"],children:t.jsx(j.Spinner,{className:e.default["tedi-tag__loader"]})}),!i&&s&&t.jsx(_.ClosingButton,{iconSize:18,...d,onClick:s})]})};exports.Tag=v;
@@ -47,6 +47,15 @@ export interface TagProps extends BreakpointSupport<TagBreakpointProps> {
47
47
  * @default false
48
48
  */
49
49
  isLoading?: boolean;
50
+ /**
51
+ * Overrides the Tag's implicit live-region role. Tags default to `role="status"`
52
+ * so they are announced by assistive tech. When a Tag is rendered as static
53
+ * content inside a list — and additions/removals are announced elsewhere — pass
54
+ * e.g. `role="presentation"` so it is not read as a live status, which otherwise
55
+ * makes some screen readers (e.g. JAWS) announce the content twice on focus.
56
+ * @default 'status'
57
+ */
58
+ role?: React.AriaRole;
50
59
  }
51
60
  export declare const Tag: (props: TagProps) => JSX.Element;
52
61
  export {};
@@ -1,13 +1,13 @@
1
- import { jsxs as g, jsx as i } from "react/jsx-runtime";
2
- import f from "../../../../../external/classnames/index.es.js";
3
- import { Icon as _ } from "../../base/icon/icon.es.js";
4
- import { ClosingButton as N } from "../../buttons/closing-button/closing-button.es.js";
5
- import { Spinner as u } from "../../loaders/spinner/spinner.es.js";
6
- import { Ellipsis as v } from "../../misc/ellipsis/ellipsis.es.js";
1
+ import { jsxs as f, jsx as i } from "react/jsx-runtime";
2
+ import _ from "../../../../../external/classnames/index.es.js";
3
+ import { Icon as N } from "../../base/icon/icon.es.js";
4
+ import { ClosingButton as u } from "../../buttons/closing-button/closing-button.es.js";
5
+ import { Spinner as v } from "../../loaders/spinner/spinner.es.js";
6
+ import { Ellipsis as B } from "../../misc/ellipsis/ellipsis.es.js";
7
7
  import e from "./tag.module.scss.es.js";
8
- import { useBreakpointProps as B } from "../../../helpers/hooks/use-breakpoint-props.es.js";
9
- const y = (a) => {
10
- const { getCurrentBreakpointProps: n } = B(a.defaultServerBreakpoint), {
8
+ import { useBreakpointProps as h } from "../../../helpers/hooks/use-breakpoint-props.es.js";
9
+ const z = (a) => {
10
+ const { getCurrentBreakpointProps: n } = h(a.defaultServerBreakpoint), {
11
11
  children: l,
12
12
  className: c,
13
13
  onClose: o,
@@ -15,21 +15,22 @@ const y = (a) => {
15
15
  isLoading: t = !1,
16
16
  color: r = "primary",
17
17
  ellipsis: s = !1,
18
- ...d
19
- } = n(a), p = f(
18
+ role: d = "status",
19
+ ...p
20
+ } = n(a), g = _(
20
21
  e["tedi-tag"],
21
22
  r && e[`tedi-tag--color-${r}`],
22
23
  o && !t && e["tedi-tag__close"],
23
24
  s !== !1 && e["tedi-tag--ellipsis"],
24
25
  c
25
26
  );
26
- return /* @__PURE__ */ g("div", { className: p, role: "status", "aria-live": t ? "polite" : void 0, ...d, children: [
27
- r === "danger" && /* @__PURE__ */ i("div", { className: e["tedi-tag__icon-wrapper"], children: /* @__PURE__ */ i(_, { name: "info", color: "danger", size: 16, className: e["tedi-tag__icon--error"] }) }),
28
- /* @__PURE__ */ i("div", { className: e["tedi-tag__content"], children: s !== !1 ? /* @__PURE__ */ i(v, { position: s === "start" ? "start" : "end", lineClamp: 1, children: l }) : l }),
29
- t && !o && /* @__PURE__ */ i("div", { className: e["tedi-tag__icon-wrapper"], children: /* @__PURE__ */ i(u, { className: e["tedi-tag__loader"] }) }),
30
- !t && o && /* @__PURE__ */ i(N, { iconSize: 18, ...m, onClick: o })
27
+ return /* @__PURE__ */ f("div", { className: g, role: d, "aria-live": t ? "polite" : void 0, ...p, children: [
28
+ r === "danger" && /* @__PURE__ */ i("div", { className: e["tedi-tag__icon-wrapper"], children: /* @__PURE__ */ i(N, { name: "info", color: "danger", size: 16, className: e["tedi-tag__icon--error"] }) }),
29
+ /* @__PURE__ */ i("div", { className: e["tedi-tag__content"], children: s !== !1 ? /* @__PURE__ */ i(B, { position: s === "start" ? "start" : "end", lineClamp: 1, children: l }) : l }),
30
+ t && !o && /* @__PURE__ */ i("div", { className: e["tedi-tag__icon-wrapper"], children: /* @__PURE__ */ i(v, { className: e["tedi-tag__loader"] }) }),
31
+ !t && o && /* @__PURE__ */ i(u, { iconSize: 18, ...m, onClick: o })
31
32
  ] });
32
33
  };
33
34
  export {
34
- y as Tag
35
+ z as Tag
35
36
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),n=t=>{const e=t;return Number.parseInt(r.version,10)>=19?e.props.ref:e.ref};exports.getElementRef=n;
@@ -0,0 +1,11 @@
1
+ import { ReactElement, Ref } from 'react';
2
+ /**
3
+ * Reads a React element's ref in a version-safe way.
4
+ *
5
+ * React 19 moved `ref` onto `props` (an enumerable prop) and warns whenever the
6
+ * legacy `element.ref` getter is accessed. React 18 keeps the ref on the element
7
+ * itself. So read from `props.ref` on React 19+ and only fall back to
8
+ * `element.ref` on React 18 — avoiding both the deprecation warning and the
9
+ * lost ref.
10
+ */
11
+ export declare const getElementRef: <T = unknown>(element: ReactElement) => Ref<T> | undefined;
@@ -0,0 +1,8 @@
1
+ import { version as t } from "react";
2
+ const n = (r) => {
3
+ const e = r;
4
+ return Number.parseInt(t, 10) >= 19 ? e.props.ref : e.ref;
5
+ };
6
+ export {
7
+ n as getElementRef
8
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react"),A=require("../../providers/label-provider/use-labels.cjs.js"),$=({accept:g,maxSize:r},o)=>{if(!g&&!r)return;const a=[g&&`${o("file-upload.accept")} ${g.replaceAll(",",", ")}`,r&&`${o("file-upload.max-size")} ${r}MB`].filter(Boolean).join(". ");return a.length?{text:a}:void 0},H=()=>`${Date.now()}-${Math.random().toString(36).slice(2)}`,I=g=>{const{getLabel:r}=A.useLabels(),{accept:o,maxSize:a,multiple:w=!1,validateIndividually:E=!1,defaultFiles:S=[],onChange:u,onDelete:f,files:x,announcementTimeout:T=5e3}=g,F=x!==void 0,[b,j]=m.useState(S),p=F?x:b,[L,h]=m.useState($({accept:o,maxSize:a},r)),[R,M]=m.useState(""),y=m.useRef(!0);m.useEffect(()=>()=>{y.current=!1},[]);const d=m.useRef(null),U=s=>{var n;if(!o)return!0;const l=o.split(",").map(e=>e.trim().toLowerCase()),t=s.name.includes(".")?`.${(n=s.name.split(".").pop())==null?void 0:n.toLowerCase()}`:"",i=s.type.toLowerCase();return l.includes(t)||l.includes(i)},V=s=>{const l=s.reduce((t,{type:i,file:n})=>(t[i].push(n.name),t),{extension:[],size:[]});return Object.entries(l).filter(([t,i])=>i.length).map(([t,i])=>{const n=i.map(e=>`'${e}'`).join(", ");return r(`file-upload.${t}-rejected`,n)}).join(". ")};return{innerFiles:p,uploadErrorHelper:L,onFileChange:s=>{if(s.target.files){const l=Array.from(s.target.files),t=[],i=l.map(e=>{const c=U(e),v=!a||e.size<=a*1024**2;c||t.push({type:"extension",file:e}),v||t.push({type:"size",file:e});const z=new File([e],e.name,{type:e.type,lastModified:e.lastModified});return Object.assign(z,{id:H(),isLoading:!1,isValid:c&&v})});let n=[];if(!w&&i.length>0)i[0].isValid&&(n=[i[0]]);else if(E)n=[...p,...i];else{const e=i.filter(c=>c.isValid);e.length>0&&(n=[...p,...e])}if(n.length>0&&(F||j(n),u==null||u(n),t.length===0)){const e=n.length-p.length,c=r("file-upload.success-added",e.toString())||`${e} file(s) added successfully`;y.current&&M(c)}if(t.length){const e=t.map(v=>v.file.name).join(", "),c=r("file-upload.failed-some",e)||`Upload failed for: ${e}`;y.current&&M(c),h({type:"error",text:V(t)})}else h($({accept:o,maxSize:a},r));setTimeout(()=>{y.current&&M("")},T),d.current&&(d.current.value="")}},onFileRemove:s=>{const l=p.filter(t=>t!==s);F||j(l),f==null||f(s),u==null||u(l),l.length===0&&h($({accept:o,maxSize:a},r)),d.current&&(d.current.value="")},handleClear:()=>{const s=[...p];return s.forEach(l=>f==null?void 0:f(l)),F||j([]),u==null||u([]),h($({accept:o,maxSize:a},r)),d.current&&(d.current.value=""),s},fileInputRef:d,announcement:R}};exports.useFileUpload=I;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),z=require("../../providers/label-provider/use-labels.cjs.js"),j=({accept:F,maxSize:s},o)=>{if(!F&&!s)return;const u=[F&&`${o("file-upload.accept")} ${F.replaceAll(",",", ")}`,s&&`${o("file-upload.max-size")} ${s}MB`].filter(Boolean).join(". ");return u.length?{text:u}:void 0},I=()=>`${Date.now()}-${Math.random().toString(36).slice(2)}`,O=100,_=F=>{const{getLabel:s}=z.useLabels(),{accept:o,maxSize:u,multiple:w=!1,validateIndividually:b=!1,defaultFiles:L=[],onChange:c,onDelete:f,files:R,announcementTimeout:S=5e3}=F,h=R!==void 0,[A,x]=a.useState(L),p=h?R:A,[C,y]=a.useState(j({accept:o,maxSize:u},s)),[H,M]=a.useState(""),v=a.useRef(!0),g=a.useRef(),T=a.useRef();a.useEffect(()=>()=>{v.current=!1,g.current&&clearTimeout(g.current),T.current&&clearTimeout(T.current)},[]);const E=a.useCallback(t=>{!t||!v.current||(M(""),g.current&&clearTimeout(g.current),T.current&&clearTimeout(T.current),g.current=setTimeout(()=>{v.current&&(M(t),T.current=setTimeout(()=>{v.current&&M("")},S))},O))},[S]),d=a.useRef(null),N=t=>{var n;if(!o)return!0;const l=o.split(",").map(e=>e.trim().toLowerCase()),r=t.name.includes(".")?`.${(n=t.name.split(".").pop())==null?void 0:n.toLowerCase()}`:"",i=t.type.toLowerCase();return l.includes(r)||l.includes(i)},U=t=>{const l=t.reduce((r,{type:i,file:n})=>(r[i].push(n.name),r),{extension:[],size:[]});return Object.entries(l).filter(([r,i])=>i.length).map(([r,i])=>{const n=i.map(e=>`'${e}'`).join(", ");return s(`file-upload.${r}-rejected`,n)}).join(". ")};return{innerFiles:p,uploadErrorHelper:C,onFileChange:t=>{if(t.target.files){const l=Array.from(t.target.files),r=[],i=l.map(e=>{const m=N(e),$=!u||e.size<=u*1024**2;m||r.push({type:"extension",file:e}),$||r.push({type:"size",file:e});const V=new File([e],e.name,{type:e.type,lastModified:e.lastModified});return Object.assign(V,{id:I(),isLoading:!1,isValid:m&&$})});let n=[];if(!w&&i.length>0)i[0].isValid&&(n=[i[0]]);else if(b)n=[...p,...i];else{const e=i.filter(m=>m.isValid);e.length>0&&(n=[...p,...e])}if(n.length>0&&(h||x(n),c==null||c(n)),r.length){const e=U(r);y({type:"error",text:e}),E(e)}else if(y(j({accept:o,maxSize:u},s)),n.length>0){const e=n.filter(m=>!p.includes(m)).length;E(s("file-upload.success-added",e.toString()))}t.target.value="",d.current&&(d.current.value="")}},onFileRemove:t=>{const l=p.filter(r=>r!==t);h||x(l),f==null||f(t),c==null||c(l),l.length===0&&y(j({accept:o,maxSize:u},s)),E(s("file-upload.removed",t.name??"")),d.current&&(d.current.value="")},handleClear:()=>{const t=[...p];return t.forEach(l=>f==null?void 0:f(l)),h||x([]),c==null||c([]),y(j({accept:o,maxSize:u},s)),E(s("file-upload.cleared")),d.current&&(d.current.value=""),t},fileInputRef:d,announcement:H}};exports.useFileUpload=_;