@economic/taco 2.20.3 → 2.21.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 (31) hide show
  1. package/dist/components/Report/components/Body/Body.d.ts +1 -0
  2. package/dist/components/Report/components/Body/util.d.ts +6 -0
  3. package/dist/components/Report/components/Cell/Cell.d.ts +7 -1
  4. package/dist/components/Report/components/Cell/DisplayCell.d.ts +3 -2
  5. package/dist/components/Report/components/Cell/GroupedCell.d.ts +3 -2
  6. package/dist/components/Report/components/Row/Row.d.ts +2 -1
  7. package/dist/components/Report/components/Row/RowContext.d.ts +0 -1
  8. package/dist/esm/packages/taco/src/components/Input/Input.js +13 -4
  9. package/dist/esm/packages/taco/src/components/Input/Input.js.map +1 -1
  10. package/dist/esm/packages/taco/src/components/Input/util.js +1 -1
  11. package/dist/esm/packages/taco/src/components/Input/util.js.map +1 -1
  12. package/dist/esm/packages/taco/src/components/Table3/Table3.js +4 -2
  13. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  14. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/controls/TextareaControl.js +10 -1
  15. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/controls/TextareaControl.js.map +1 -1
  16. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Group.js +4 -1
  17. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Group.js.map +1 -1
  18. package/dist/esm/packages/taco/src/components/Textarea/Textarea.js +2 -1
  19. package/dist/esm/packages/taco/src/components/Textarea/Textarea.js.map +1 -1
  20. package/dist/esm/packages/taco/src/index.js +1 -1
  21. package/dist/esm/packages/taco/src/utils/dom.js +12 -3
  22. package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
  23. package/dist/esm/packages/taco/src/utils/keyboard.js +5 -2
  24. package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
  25. package/dist/taco.cjs.development.js +49 -14
  26. package/dist/taco.cjs.development.js.map +1 -1
  27. package/dist/taco.cjs.production.min.js +1 -1
  28. package/dist/taco.cjs.production.min.js.map +1 -1
  29. package/dist/utils/keyboard.d.ts +1 -0
  30. package/package.json +2 -2
  31. package/types.json +1941 -1839
@@ -2,6 +2,9 @@ function isEventTriggeredOnInteractiveElement(eventTarget) {
2
2
  const element = eventTarget;
3
3
  return ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'].includes(element.tagName) && !element.hidden && !element.disabled && !element.readOnly;
4
4
  }
5
+ function isPressingMetaKey(event) {
6
+ return isMacOs() ? event.metaKey : event.ctrlKey;
7
+ }
5
8
  function shouldTriggerShortcut(event, key) {
6
9
  const keyOptions = typeof key === 'string' ? {
7
10
  key,
@@ -18,7 +21,7 @@ function shouldTriggerShortcut(event, key) {
18
21
  }
19
22
  function createShortcutKeyDownHandler(key, handler, stopPropagation = true) {
20
23
  return function (event) {
21
- if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target)) {
24
+ if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target) && !isPressingMetaKey(event)) {
22
25
  return;
23
26
  }
24
27
  const condition = shouldTriggerShortcut(event, key);
@@ -39,5 +42,5 @@ const isMacOs = () => {
39
42
  return (_window = window) === null || _window === void 0 ? void 0 : _window.navigator.userAgent.includes('Mac');
40
43
  };
41
44
 
42
- export { createShortcutKeyDownHandler, isEventTriggeredOnInteractiveElement, isMacOs, shouldTriggerShortcut };
45
+ export { createShortcutKeyDownHandler, isEventTriggeredOnInteractiveElement, isMacOs, isPressingMetaKey, shouldTriggerShortcut };
43
46
  //# sourceMappingURL=keyboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nexport function isEventTriggeredOnInteractiveElement(eventTarget: EventTarget | null) {\n const element = eventTarget as HTMLElement;\n\n return (\n ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'].includes(element.tagName) &&\n !element.hidden &&\n !(element as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLButtonElement).disabled &&\n !(element as HTMLInputElement | HTMLTextAreaElement).readOnly\n );\n}\n\nexport function shouldTriggerShortcut<T = Element>(\n event: KeyboardEvent | React.KeyboardEvent<T>,\n key: string | KeyDownHandlerOptions\n) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return false;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return false;\n }\n\n return event.key.toLowerCase() === keyOptions.key.toLowerCase();\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void,\n stopPropagation = true\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target as HTMLElement)) {\n return;\n }\n\n const condition = shouldTriggerShortcut(event, key);\n\n if (condition) {\n if (stopPropagation) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n }\n\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["isEventTriggeredOnInteractiveElement","eventTarget","element","includes","tagName","hidden","disabled","readOnly","shouldTriggerShortcut","event","key","keyOptions","meta","shift","isMacOs","metaKey","ctrlKey","shiftKey","toLowerCase","createShortcutKeyDownHandler","handler","stopPropagation","target","currentTarget","condition","_event$stopImmediateP","stopImmediatePropagation","call","_window","window","navigator","userAgent"],"mappings":"SAIgBA,oCAAoCA,CAACC,WAA+B;EAChF,MAAMC,OAAO,GAAGD,WAA0B;EAE1C,OACI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAACE,QAAQ,CAACD,OAAO,CAACE,OAAO,CAAC,IACxE,CAACF,OAAO,CAACG,MAAM,IACf,CAAEH,OAA0F,CAACI,QAAQ,IACrG,CAAEJ,OAAkD,CAACK,QAAQ;AAErE;SAEgBC,qBAAqBA,CACjCC,KAA6C,EAC7CC,GAAmC;EAEnC,MAAMC,UAAU,GAA0B,OAAOD,GAAG,KAAK,QAAQ,GAAG;IAAEA,GAAG;IAAEE,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAE;GAAO,GAAGH,GAAG;EAE5G,IACKC,UAAU,CAACC,IAAI,KAAKE,OAAO,EAAE,GAAG,CAACL,KAAK,CAACM,OAAO,GAAG,CAACN,KAAK,CAACO,OAAO,CAAC,IAChE,CAACL,UAAU,CAACC,IAAI,KAAKE,OAAO,EAAE,GAAGL,KAAK,CAACM,OAAO,GAAGN,KAAK,CAACO,OAAO,CAAE,EACnE;IACE,OAAO,KAAK;;EAGhB,IAAKL,UAAU,CAACE,KAAK,IAAI,CAACJ,KAAK,CAACQ,QAAQ,IAAMN,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIJ,KAAK,CAACQ,QAAS,EAAE;IACzF,OAAO,KAAK;;EAGhB,OAAOR,KAAK,CAACC,GAAG,CAACQ,WAAW,EAAE,KAAKP,UAAU,CAACD,GAAG,CAACQ,WAAW,EAAE;AACnE;SAEgBC,4BAA4BA,CACxCT,GAAmC,EACnCU,OAAgE,EAChEC,eAAe,GAAG,IAAI;EAEtB,OAAO,UAAUZ,KAA6C;IAC1D,IAAIA,KAAK,CAACa,MAAM,KAAKb,KAAK,CAACc,aAAa,IAAIvB,oCAAoC,CAACS,KAAK,CAACa,MAAqB,CAAC,EAAE;MAC3G;;IAGJ,MAAME,SAAS,GAAGhB,qBAAqB,CAACC,KAAK,EAAEC,GAAG,CAAC;IAEnD,IAAIc,SAAS,EAAE;MACX,IAAIH,eAAe,EAAE;QAAA,IAAAI,qBAAA;;QAEjBhB,KAAK,CAACY,eAAe,EAAE;;QAEtB,CAAAI,qBAAA,GAAAhB,KAAuB,CAACiB,wBAAwB,cAAAD,qBAAA,uBAAhDA,qBAAA,CAAAE,IAAA,CAAAlB,MAAoD;;MAGzDW,OAAO,CAACX,KAAK,CAAC;;GAErB;AACL;MAEaK,OAAO,GAAGA;EAAA,IAAAc,OAAA;EAAA,QAAAA,OAAA,GAAMC,MAAM,cAAAD,OAAA,uBAANA,OAAA,CAAQE,SAAS,CAACC,SAAS,CAAC5B,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
1
+ {"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nexport function isEventTriggeredOnInteractiveElement(eventTarget: EventTarget | null) {\n const element = eventTarget as HTMLElement;\n\n return (\n ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'].includes(element.tagName) &&\n !element.hidden &&\n !(element as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLButtonElement).disabled &&\n !(element as HTMLInputElement | HTMLTextAreaElement).readOnly\n );\n}\n\nexport function isPressingMetaKey<T = Element>(event: KeyboardEvent | React.KeyboardEvent<T>) {\n return isMacOs() ? event.metaKey : event.ctrlKey;\n}\n\nexport function shouldTriggerShortcut<T = Element>(\n event: KeyboardEvent | React.KeyboardEvent<T>,\n key: string | KeyDownHandlerOptions\n) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return false;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return false;\n }\n\n return event.key.toLowerCase() === keyOptions.key.toLowerCase();\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void,\n stopPropagation = true\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n if (\n event.target !== event.currentTarget &&\n isEventTriggeredOnInteractiveElement(event.target as HTMLElement) &&\n !isPressingMetaKey(event)\n ) {\n return;\n }\n\n const condition = shouldTriggerShortcut(event, key);\n\n if (condition) {\n if (stopPropagation) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n }\n\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["isEventTriggeredOnInteractiveElement","eventTarget","element","includes","tagName","hidden","disabled","readOnly","isPressingMetaKey","event","isMacOs","metaKey","ctrlKey","shouldTriggerShortcut","key","keyOptions","meta","shift","shiftKey","toLowerCase","createShortcutKeyDownHandler","handler","stopPropagation","target","currentTarget","condition","_event$stopImmediateP","stopImmediatePropagation","call","_window","window","navigator","userAgent"],"mappings":"SAIgBA,oCAAoCA,CAACC,WAA+B;EAChF,MAAMC,OAAO,GAAGD,WAA0B;EAE1C,OACI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAACE,QAAQ,CAACD,OAAO,CAACE,OAAO,CAAC,IACxE,CAACF,OAAO,CAACG,MAAM,IACf,CAAEH,OAA0F,CAACI,QAAQ,IACrG,CAAEJ,OAAkD,CAACK,QAAQ;AAErE;SAEgBC,iBAAiBA,CAAcC,KAA6C;EACxF,OAAOC,OAAO,EAAE,GAAGD,KAAK,CAACE,OAAO,GAAGF,KAAK,CAACG,OAAO;AACpD;SAEgBC,qBAAqBA,CACjCJ,KAA6C,EAC7CK,GAAmC;EAEnC,MAAMC,UAAU,GAA0B,OAAOD,GAAG,KAAK,QAAQ,GAAG;IAAEA,GAAG;IAAEE,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAE;GAAO,GAAGH,GAAG;EAE5G,IACKC,UAAU,CAACC,IAAI,KAAKN,OAAO,EAAE,GAAG,CAACD,KAAK,CAACE,OAAO,GAAG,CAACF,KAAK,CAACG,OAAO,CAAC,IAChE,CAACG,UAAU,CAACC,IAAI,KAAKN,OAAO,EAAE,GAAGD,KAAK,CAACE,OAAO,GAAGF,KAAK,CAACG,OAAO,CAAE,EACnE;IACE,OAAO,KAAK;;EAGhB,IAAKG,UAAU,CAACE,KAAK,IAAI,CAACR,KAAK,CAACS,QAAQ,IAAMH,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIR,KAAK,CAACS,QAAS,EAAE;IACzF,OAAO,KAAK;;EAGhB,OAAOT,KAAK,CAACK,GAAG,CAACK,WAAW,EAAE,KAAKJ,UAAU,CAACD,GAAG,CAACK,WAAW,EAAE;AACnE;SAEgBC,4BAA4BA,CACxCN,GAAmC,EACnCO,OAAgE,EAChEC,eAAe,GAAG,IAAI;EAEtB,OAAO,UAAUb,KAA6C;IAC1D,IACIA,KAAK,CAACc,MAAM,KAAKd,KAAK,CAACe,aAAa,IACpCxB,oCAAoC,CAACS,KAAK,CAACc,MAAqB,CAAC,IACjE,CAACf,iBAAiB,CAACC,KAAK,CAAC,EAC3B;MACE;;IAGJ,MAAMgB,SAAS,GAAGZ,qBAAqB,CAACJ,KAAK,EAAEK,GAAG,CAAC;IAEnD,IAAIW,SAAS,EAAE;MACX,IAAIH,eAAe,EAAE;QAAA,IAAAI,qBAAA;;QAEjBjB,KAAK,CAACa,eAAe,EAAE;;QAEtB,CAAAI,qBAAA,GAAAjB,KAAuB,CAACkB,wBAAwB,cAAAD,qBAAA,uBAAhDA,qBAAA,CAAAE,IAAA,CAAAnB,MAAoD;;MAGzDY,OAAO,CAACZ,KAAK,CAAC;;GAErB;AACL;MAEaC,OAAO,GAAGA;EAAA,IAAAmB,OAAA;EAAA,QAAAA,OAAA,GAAMC,MAAM,cAAAD,OAAA,uBAANA,OAAA,CAAQE,SAAS,CAACC,SAAS,CAAC7B,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
@@ -4018,6 +4018,9 @@ function isEventTriggeredOnInteractiveElement(eventTarget) {
4018
4018
  const element = eventTarget;
4019
4019
  return ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'].includes(element.tagName) && !element.hidden && !element.disabled && !element.readOnly;
4020
4020
  }
4021
+ function isPressingMetaKey(event) {
4022
+ return isMacOs() ? event.metaKey : event.ctrlKey;
4023
+ }
4021
4024
  function shouldTriggerShortcut(event, key) {
4022
4025
  const keyOptions = typeof key === 'string' ? {
4023
4026
  key,
@@ -4034,7 +4037,7 @@ function shouldTriggerShortcut(event, key) {
4034
4037
  }
4035
4038
  function createShortcutKeyDownHandler(key, handler, stopPropagation = true) {
4036
4039
  return function (event) {
4037
- if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target)) {
4040
+ if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target) && !isPressingMetaKey(event)) {
4038
4041
  return;
4039
4042
  }
4040
4043
  const condition = shouldTriggerShortcut(event, key);
@@ -4879,7 +4882,7 @@ const getInputClasses = props => {
4879
4882
  const disabled = props.disabled || !!props['aria-disabled'];
4880
4883
  const readOnly = props.readOnly || !!props['aria-readonly'];
4881
4884
  const invalid = props.invalid || !!props['aria-invalid'];
4882
- return cn('peer text-black text-sm border font-normal not-italic no-underline rounded flex items-center leading-6 px-2 relative w-full text-ellipsis transition-colors transition-opacity ease-in min-h-[theme(spacing.8)] focus-visible:yt-focus', {
4885
+ return cn('peer text-black text-sm border font-normal not-italic no-underline rounded flex items-center leading-6 px-2 relative w-full [text-align:inherit] text-ellipsis transition-colors transition-opacity ease-in min-h-[theme(spacing.8)] focus-visible:yt-focus', {
4883
4886
  'bg-white': !props.highlighted && !readOnly,
4884
4887
  // default
4885
4888
  'border-grey-300 enabled:hover:border-grey-500 disabled:border-grey-200': !invalid,
@@ -4963,7 +4966,7 @@ const InputWithoutDeprecatedFeatures = /*#__PURE__*/React.forwardRef(function In
4963
4966
  const internalRef = useMergedRef(ref);
4964
4967
  const handleKeyDown = event => {
4965
4968
  // prevent any external keyboard shortcuts from executing while typing single characters in input
4966
- if (event.key.length === 1) {
4969
+ if (event.key.length === 1 && !isPressingMetaKey(event)) {
4967
4970
  event.stopPropagation();
4968
4971
  }
4969
4972
  // home and end keys only navigate to the start/end of input value if the input container does not scroll
@@ -4989,13 +4992,22 @@ const InputWithoutDeprecatedFeatures = /*#__PURE__*/React.forwardRef(function In
4989
4992
  'pl-8': !!prefix,
4990
4993
  'pr-8': !!postfix
4991
4994
  }, attributes.className);
4995
+ const typeAttributes = {
4996
+ type
4997
+ };
4998
+ // https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/
4999
+ if (type === 'number') {
5000
+ typeAttributes.type = 'text';
5001
+ typeAttributes.inputMode = 'numeric';
5002
+ typeAttributes.pattern = '[0-9]*';
5003
+ }
4992
5004
  return /*#__PURE__*/React.createElement("div", {
4993
5005
  className: "relative inline-flex w-full",
4994
5006
  "data-taco": "input-container",
4995
5007
  style: {
4996
5008
  opacity: 0.999
4997
5009
  }
4998
- }, /*#__PURE__*/React.createElement("input", Object.assign({}, attributes, {
5010
+ }, /*#__PURE__*/React.createElement("input", Object.assign({}, attributes, typeAttributes, {
4999
5011
  className: className,
5000
5012
  "data-taco": "input",
5001
5013
  onKeyDown: handleKeyDown,
@@ -5005,8 +5017,7 @@ const InputWithoutDeprecatedFeatures = /*#__PURE__*/React.forwardRef(function In
5005
5017
  style: {
5006
5018
  paddingLeft: prefixRect ? `${prefixRect.width - 1}px` : undefined,
5007
5019
  paddingRight: postfixRect ? `${postfixRect.width - 1}px` : undefined
5008
- },
5009
- type: type
5020
+ }
5010
5021
  })), prefix ? /*#__PURE__*/React.createElement(Affix, {
5011
5022
  type: "prefix",
5012
5023
  children: prefix,
@@ -10081,12 +10092,21 @@ const getNextFocussableElement = currentElement => {
10081
10092
  }
10082
10093
  return focussableElements[currentElementIndex + 1];
10083
10094
  };
10084
- function isElementInsideOrTriggeredFromContainer(element, container) {
10095
+ const getOverlaySelector = element => {
10085
10096
  switch (element === null || element === void 0 ? void 0 : element.getAttribute('role')) {
10086
10097
  case 'dialog':
10087
- return !!(container !== null && container !== void 0 && container.querySelector(`[aria-controls='${element.id}']`));
10098
+ return `[aria-controls='${element.id}']`;
10088
10099
  case 'menu':
10089
- return !!(container !== null && container !== void 0 && container.querySelector(`#${element.getAttribute('aria-labelledby')}`));
10100
+ return `#${element.getAttribute('aria-labelledby')}`;
10101
+ default:
10102
+ return undefined;
10103
+ }
10104
+ };
10105
+ function isElementInsideOrTriggeredFromContainer(element, container) {
10106
+ var _getOverlaySelector, _element$closest;
10107
+ const selector = (_getOverlaySelector = getOverlaySelector(element)) !== null && _getOverlaySelector !== void 0 ? _getOverlaySelector : getOverlaySelector((_element$closest = element === null || element === void 0 ? void 0 : element.closest('[role=dialog],[role=menu]')) !== null && _element$closest !== void 0 ? _element$closest : null);
10108
+ if (selector) {
10109
+ return !!(container !== null && container !== void 0 && container.querySelector(selector));
10090
10110
  }
10091
10111
  return !!(container !== null && container !== void 0 && container.contains(element));
10092
10112
  }
@@ -14921,7 +14941,7 @@ const Textarea = /*#__PURE__*/React.forwardRef(function Textarea(props, ref) {
14921
14941
  // so we manually override it to ensure _our_ desired behaviour remains intact
14922
14942
  const handleKeyDown = event => {
14923
14943
  // prevent any external keyboard shortcuts from executing while typing single characters in textarea
14924
- if (event.key.length === 1) {
14944
+ if (event.key.length === 1 && !isPressingMetaKey(event)) {
14925
14945
  event.stopPropagation();
14926
14946
  }
14927
14947
  if (event.key === 'Home' || event.key === 'End') {
@@ -14963,6 +14983,7 @@ const TextareaControl = /*#__PURE__*/React__default.forwardRef(function Textarea
14963
14983
  onKeyDown: handleKeyDown,
14964
14984
  onChange: handleChange,
14965
14985
  onBlur,
14986
+ onFocus,
14966
14987
  column,
14967
14988
  isCellInDetailMode,
14968
14989
  align,
@@ -15036,6 +15057,13 @@ const TextareaControl = /*#__PURE__*/React__default.forwardRef(function Textarea
15036
15057
  }
15037
15058
  onBlur(event);
15038
15059
  };
15060
+ const handleFocus = event => {
15061
+ const textareaElement = ref === null || ref === void 0 ? void 0 : ref.current;
15062
+ if (textareaElement) {
15063
+ resizeTextArea(textareaElement);
15064
+ }
15065
+ onFocus(event);
15066
+ };
15039
15067
  return /*#__PURE__*/React__default.createElement("div", {
15040
15068
  "data-taco": "input-container"
15041
15069
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -15055,7 +15083,8 @@ const TextareaControl = /*#__PURE__*/React__default.forwardRef(function Textarea
15055
15083
  handleTextareaKeyDown(e);
15056
15084
  },
15057
15085
  onBlur: handleBlur,
15058
- className: cn(getCellAlignmentClasses(align), `h-fit resize-none [&:not(:focus)]:whitespace-nowrap`, {
15086
+ onFocus: handleFocus,
15087
+ className: cn(getCellAlignmentClasses(align), `h-fit resize-none overflow-y-hidden focus:overflow-y-auto [&:not(:focus)]:whitespace-nowrap`, {
15059
15088
  [`!min-h-[${minMaxHeight.min}px]`]: columnMeta === null || columnMeta === void 0 ? void 0 : columnMeta.enableTruncate,
15060
15089
  '!yt-focus-dark': isCellInDetailMode,
15061
15090
  [`h-[${minMaxHeight.min}px]`]: !isCellInDetailMode && (columnMeta === null || columnMeta === void 0 ? void 0 : columnMeta.enableTruncate),
@@ -15833,7 +15862,7 @@ const MemoedGroup = /*#__PURE__*/React__default.memo(function MemoedGroup(props)
15833
15862
  meta,
15834
15863
  table
15835
15864
  } = props;
15836
- const containerClassName = cn('px-2 z-10 hover:z-20', colSpan > 1 ? `col-span-${colSpan}` : '', {
15865
+ const containerClassName = cn('px-2 z-10 hover:z-20', {
15837
15866
  sticky: !isPrinting
15838
15867
  });
15839
15868
  const innerClassName = cn('font-bold box-content group/column relative', 'px-[var(--table3-cell-padding-x)]', {
@@ -15846,6 +15875,9 @@ const MemoedGroup = /*#__PURE__*/React__default.memo(function MemoedGroup(props)
15846
15875
  }
15847
15876
  return /*#__PURE__*/React__default.createElement("div", {
15848
15877
  className: containerClassName,
15878
+ style: colSpan > 1 ? {
15879
+ gridColumn: `span ${colSpan} / span ${colSpan}`
15880
+ } : undefined,
15849
15881
  "data-taco": "table3-column-group",
15850
15882
  "data-align": align,
15851
15883
  role: "columnheader"
@@ -18978,7 +19010,9 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
18978
19010
  role: "rowgroup",
18979
19011
  ref: bodyRef
18980
19012
  }, renderBody())), /*#__PURE__*/React__default.createElement("div", {
18981
- className: "border-grey-300 col-span-full translate-y-px border-t"
19013
+ className: cn('border-grey-300 col-span-full border-t', {
19014
+ 'translate-y-px': tableMeta.enableFooter
19015
+ })
18982
19016
  }), tableMeta.enableFooter ? ( /*#__PURE__*/React__default.createElement("div", {
18983
19017
  className: "group/footer contents",
18984
19018
  "data-taco": "table2-footer",
@@ -18996,7 +19030,7 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
18996
19030
  length: length,
18997
19031
  table: table
18998
19032
  })) : null)) : null)) : ( /*#__PURE__*/React__default.createElement("div", {
18999
- className: "col-span-full min-h-[theme(spacing.8)]"
19033
+ className: "col-span-full box-border min-h-[theme(spacing.8)]"
19000
19034
  }, EmptyState ? /*#__PURE__*/React__default.createElement(EmptyState, null) : null))));
19001
19035
  });
19002
19036
  const Table3 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
@@ -20041,6 +20075,7 @@ exports.icons = icons;
20041
20075
  exports.insertChildTableRow = insertChildTableRow;
20042
20076
  exports.isEventTriggeredOnInteractiveElement = isEventTriggeredOnInteractiveElement;
20043
20077
  exports.isMacOs = isMacOs;
20078
+ exports.isPressingMetaKey = isPressingMetaKey;
20044
20079
  exports.isWeakEqual = isWeakEqual;
20045
20080
  exports.mergeRefs = mergeRefs;
20046
20081
  exports.parseFromCustomString = parseFromCustomString;