intergalactic 15.58.1 → 15.59.0-prerelease-8438cd01

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 (104) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/carousel/lib/cjs/Carousel.js +2 -2
  3. package/carousel/lib/cjs/Carousel.js.map +1 -1
  4. package/carousel/lib/es6/Carousel.js +2 -2
  5. package/carousel/lib/es6/Carousel.js.map +1 -1
  6. package/color-picker/lib/cjs/ColorPicker.js +2 -1
  7. package/color-picker/lib/cjs/ColorPicker.js.map +1 -1
  8. package/color-picker/lib/es6/ColorPicker.js +2 -1
  9. package/color-picker/lib/es6/ColorPicker.js.map +1 -1
  10. package/d3-chart/lib/cjs/Area.js +11 -11
  11. package/d3-chart/lib/cjs/Axis.js +14 -14
  12. package/d3-chart/lib/cjs/Bar.js +10 -10
  13. package/d3-chart/lib/cjs/Bubble.js +12 -12
  14. package/d3-chart/lib/cjs/Donut.js +9 -9
  15. package/d3-chart/lib/cjs/Dots.js +8 -8
  16. package/d3-chart/lib/cjs/HorizontalBar.js +10 -10
  17. package/d3-chart/lib/cjs/Hover.js +3 -3
  18. package/d3-chart/lib/cjs/Line.js +9 -9
  19. package/d3-chart/lib/cjs/Plot.js +3 -3
  20. package/d3-chart/lib/cjs/Radar.js +19 -19
  21. package/d3-chart/lib/cjs/RadialTree.js +11 -11
  22. package/d3-chart/lib/cjs/ReferenceLine.js +9 -9
  23. package/d3-chart/lib/cjs/ScatterPlot.js +9 -9
  24. package/d3-chart/lib/cjs/Tooltip.js +9 -9
  25. package/d3-chart/lib/cjs/Venn.js +9 -9
  26. package/d3-chart/lib/cjs/a11y/PlotA11yModule.js +2 -2
  27. package/d3-chart/lib/cjs/a11y/PlotA11yView.js +6 -4
  28. package/d3-chart/lib/cjs/a11y/PlotA11yView.js.map +1 -1
  29. package/d3-chart/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  30. package/d3-chart/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  31. package/d3-chart/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  32. package/d3-chart/lib/es6/Area.js +11 -11
  33. package/d3-chart/lib/es6/Axis.js +14 -14
  34. package/d3-chart/lib/es6/Bar.js +10 -10
  35. package/d3-chart/lib/es6/Bubble.js +12 -12
  36. package/d3-chart/lib/es6/Donut.js +9 -9
  37. package/d3-chart/lib/es6/Dots.js +8 -8
  38. package/d3-chart/lib/es6/HorizontalBar.js +10 -10
  39. package/d3-chart/lib/es6/Hover.js +3 -3
  40. package/d3-chart/lib/es6/Line.js +9 -9
  41. package/d3-chart/lib/es6/Plot.js +3 -3
  42. package/d3-chart/lib/es6/Radar.js +19 -19
  43. package/d3-chart/lib/es6/RadialTree.js +11 -11
  44. package/d3-chart/lib/es6/ReferenceLine.js +9 -9
  45. package/d3-chart/lib/es6/ScatterPlot.js +9 -9
  46. package/d3-chart/lib/es6/Tooltip.js +9 -9
  47. package/d3-chart/lib/es6/Venn.js +9 -9
  48. package/d3-chart/lib/es6/a11y/PlotA11yModule.js +2 -2
  49. package/d3-chart/lib/es6/a11y/PlotA11yView.js +6 -4
  50. package/d3-chart/lib/es6/a11y/PlotA11yView.js.map +1 -1
  51. package/d3-chart/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  52. package/d3-chart/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  53. package/d3-chart/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  54. package/data-table/lib/cjs/Head.js +2 -1
  55. package/data-table/lib/cjs/Head.js.map +1 -1
  56. package/data-table/lib/es6/Head.js +2 -1
  57. package/data-table/lib/es6/Head.js.map +1 -1
  58. package/icon/lib/cjs/Icon.js +3 -3
  59. package/icon/lib/cjs/Icon.js.map +1 -1
  60. package/icon/lib/es6/Icon.js +3 -3
  61. package/icon/lib/es6/Icon.js.map +1 -1
  62. package/inline-edit/lib/cjs/InlineEdit.js +4 -4
  63. package/inline-edit/lib/cjs/InlineEdit.js.map +1 -1
  64. package/inline-edit/lib/es6/InlineEdit.js +4 -4
  65. package/inline-edit/lib/es6/InlineEdit.js.map +1 -1
  66. package/inline-input/lib/cjs/InlineInput.js +4 -4
  67. package/inline-input/lib/cjs/InlineInput.js.map +1 -1
  68. package/inline-input/lib/es6/InlineInput.js +4 -4
  69. package/inline-input/lib/es6/InlineInput.js.map +1 -1
  70. package/input-tags/lib/cjs/InputTags.js +3 -3
  71. package/input-tags/lib/cjs/InputTags.js.map +1 -1
  72. package/input-tags/lib/es6/InputTags.js +3 -3
  73. package/input-tags/lib/es6/InputTags.js.map +1 -1
  74. package/package.json +1 -1
  75. package/pills/lib/cjs/Pills.js +2 -1
  76. package/pills/lib/cjs/Pills.js.map +1 -1
  77. package/pills/lib/es6/Pills.js +2 -1
  78. package/pills/lib/es6/Pills.js.map +1 -1
  79. package/switch/lib/cjs/Switch.js +5 -2
  80. package/switch/lib/cjs/Switch.js.map +1 -1
  81. package/switch/lib/es6/Switch.js +5 -2
  82. package/switch/lib/es6/Switch.js.map +1 -1
  83. package/tab-panel/lib/cjs/TabPanel.js +2 -1
  84. package/tab-panel/lib/cjs/TabPanel.js.map +1 -1
  85. package/tab-panel/lib/es6/TabPanel.js +2 -1
  86. package/tab-panel/lib/es6/TabPanel.js.map +1 -1
  87. package/tag/lib/cjs/Tag.js +4 -3
  88. package/tag/lib/cjs/Tag.js.map +1 -1
  89. package/tag/lib/es6/Tag.js +4 -3
  90. package/tag/lib/es6/Tag.js.map +1 -1
  91. package/tooltip/index.d.ts +4 -1
  92. package/tooltip/lib/cjs/Tooltip.js +14 -9
  93. package/tooltip/lib/cjs/Tooltip.js.map +1 -1
  94. package/tooltip/lib/cjs/index.d.js.map +1 -1
  95. package/tooltip/lib/cjs/style/tooltip.shadow.css +4 -0
  96. package/tooltip/lib/es6/Tooltip.js +14 -9
  97. package/tooltip/lib/es6/Tooltip.js.map +1 -1
  98. package/tooltip/lib/es6/index.d.js.map +1 -1
  99. package/tooltip/lib/es6/style/tooltip.shadow.css +4 -0
  100. package/tooltip/lib/types/index.d.ts +4 -1
  101. package/wizard/lib/cjs/Wizard.js +2 -1
  102. package/wizard/lib/cjs/Wizard.js.map +1 -1
  103. package/wizard/lib/es6/Wizard.js +2 -1
  104. package/wizard/lib/es6/Wizard.js.map +1 -1
@@ -50,7 +50,8 @@ var Head = /*#__PURE__*/function (_Component) {
50
50
  });
51
51
  _defineProperty(_assertThisInitialized(_this), "bindHandlerKeyDown", function (name) {
52
52
  return function (event) {
53
- if (event.key === 'Enter') {
53
+ if (event.code === 'Enter' || event.code === 'Space') {
54
+ event.preventDefault();
54
55
  _this.asProps.$onSortClick(name, event);
55
56
  }
56
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Head.js","names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","SortDesc","SortAsc","callAllEventHandlers","flattenColumns","getFixedStyle","getScrollOffsetValue","logger","setRef","scrollStyles","_sstyled","insert","SORTING_ICON","desc","asc","ariaSort","Head","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","name","event","asProps","$onSortClick","key","props","ref","forwardRef","_createClass","value","renderColumns","columns","width","_this2","map","column","renderColumn","_ref2","_column$columns","_this$asProps","styles","use","hidden","uid","SColumn","SHead","SSortWrapper","SSortIcon","sortDirection","ariaSortValue","sortable","active","undefined","isGroup","cSize","_getFixedStyle","_getFixedStyle2","_slicedToArray","style","_objectSpread","flexBasis","flex","setVar","varWidth","createElement","cn","fixed","resizable","borderLeft","borderRight","refColumn","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","Fragment","children","render","_ref","_ref3","SHeadWrapper","SScrollArea","_this$asProps2","Children","columnsChildren","onResize","$scrollRef","sticky","disabledScroll","_getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","warn","displayName","Container","role","_assignProps","origin"],"sources":["../../src/Head.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport type { Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport { setRef } from '@semcore/utils/lib/ref';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\nconst ariaSort = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\n\ntype AsProps = {\n $onSortClick: (name: string, event: React.MouseEvent | React.KeyboardEvent) => void;\n $scrollRef: (instance: unknown) => void;\n use: 'primary' | 'secondary';\n columnsChildren: Column[];\n onResize: ResizeObserverCallback;\n sticky: boolean;\n disabledScroll?: boolean;\n ['data-ui-name']: string;\n uid?: string;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\n\n bindHandlerSortClick = (name: string) => (event: React.MouseEvent) => {\n this.asProps.$onSortClick(name, event);\n };\n\n bindHandlerKeyDown = (name: string) => (event: React.KeyboardEvent) => {\n if (event.key === 'Enter') {\n this.asProps.$onSortClick(name, event);\n }\n };\n\n refColumn = (props: Column['props']) => (ref: HTMLElement) => {\n setRef(props.ref, ref);\n if (props.forwardRef) {\n setRef(props.forwardRef, ref);\n }\n };\n\n renderColumns(columns: Column[], width: number) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column: Column, width: number) {\n const { styles, use, hidden, uid } = this.asProps;\n const SColumn = Flex as any;\n const SHead = Box;\n const SSortWrapper = 'div';\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const ariaSortValue =\n column.sortable && column.active ? ariaSort[column.sortDirection] : undefined;\n const isGroup = column.columns?.length > 0;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n\n const style = {\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n if (!column.setVar) {\n style['flexBasis'] = `var(${column.varWidth})`;\n }\n\n return sstyled(styles)(\n <SColumn\n role={isGroup ? undefined : 'columnheader'}\n scope={isGroup ? 'colgroup' : 'col'}\n key={column.name}\n id={`igc-table-${uid}-${column.name}`}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n borderLeft={isGroup ? false : column.borderLeft}\n borderRight={isGroup ? false : column.borderRight}\n active={isGroup ? false : column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n __excludeProps={['hidden']}\n {...column.props}\n ref={this.refColumn(column.props)}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n )}\n style={style}\n hidden={hidden}\n aria-sort={ariaSortValue}\n >\n {isGroup ? (\n <>\n <SColumn\n role='columnheader'\n groupHead\n use={use}\n active={column.active}\n borderLeft={column.borderLeft}\n borderRight={column.borderRight}\n >\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n {column.props.children}\n {column.sortable ? (\n <SSortWrapper>\n <SSortIcon active={column.active} />\n </SSortWrapper>\n ) : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const SHeadWrapper = Box as any;\n const SScrollArea = ScrollArea as any;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky, disabledScroll } =\n this.asProps;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <SHeadWrapper sticky={sticky}>\n <SScrollArea\n styles={scrollStyles}\n left-offset={`${offsetLeftSum}px`}\n right-offset={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <SScrollArea.Container ref={$scrollRef} disabledScroll={disabledScroll} role='rowgroup'>\n <SHead render={Box} role='row' aria-rowindex='1' __excludeProps={['hidden']}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </SScrollArea.Container>\n </SScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AACxD,SAASC,GAAG,EAAEC,IAAI,QAAQ,mBAAmB;AAC7C,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,OAAOC,QAAQ,MAAM,0BAA0B;AAC/C,OAAOC,OAAO,MAAM,yBAAyB;AAC7C,SAASC,oBAAoB,QAAQ,gCAAgC;AACrE,SAASC,cAAc,EAAEC,aAAa,EAAEC,oBAAoB,QAAQ,SAAS;AAE7E,OAAOC,MAAM,MAAM,2BAA2B;AAC9C,SAASC,MAAM,QAAQ,wBAAwB;AAAC;AAAA,IAAAC,YAAA,+BAAAC,QAAA,CAAAC,MAAA;EAAA;EAAA;EAAA;AAAA;AAIhD,IAAMC,YAAY,GAAG;EACnBC,IAAI,EAAEZ,QAAQ;EACda,GAAG,EAAEZ;AACP,CAAU;AACV,IAAMa,QAAQ,GAAG;EACfF,IAAI,EAAE,YAAY;EAClBC,GAAG,EAAE;AACP,CAAU;AAAC,IAcLE,IAAI,0BAAAC,UAAA;EAAAC,SAAA,CAAAF,IAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,IAAA;EAAA,SAAAA,KAAA;IAAA,IAAAK,KAAA;IAAAC,eAAA,OAAAN,IAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAY,MAAA,CAAAL,IAAA;IAAAM,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,cACY,EAAE;IAAAW,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,2BAIC,UAACa,IAAY;MAAA,OAAK,UAACC,KAAuB,EAAK;QACpEd,KAAA,CAAKe,OAAO,CAACC,YAAY,CAACH,IAAI,EAAEC,KAAK,CAAC;MACxC,CAAC;IAAA;IAAAH,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,yBAEoB,UAACa,IAAY;MAAA,OAAK,UAACC,KAA0B,EAAK;QACrE,IAAIA,KAAK,CAACG,GAAG,KAAK,OAAO,EAAE;UACzBjB,KAAA,CAAKe,OAAO,CAACC,YAAY,CAACH,IAAI,EAAEC,KAAK,CAAC;QACxC;MACF,CAAC;IAAA;IAAAH,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,gBAEW,UAACkB,KAAsB;MAAA,OAAK,UAACC,GAAgB,EAAK;QAC5DhC,MAAM,CAAC+B,KAAK,CAACC,GAAG,EAAEA,GAAG,CAAC;QACtB,IAAID,KAAK,CAACE,UAAU,EAAE;UACpBjC,MAAM,CAAC+B,KAAK,CAACE,UAAU,EAAED,GAAG,CAAC;QAC/B;MACF,CAAC;IAAA;IAAA,OAAAnB,KAAA;EAAA;EAAAqB,YAAA,CAAA1B,IAAA;IAAAsB,GAAA;IAAAK,KAAA,EAED,SAAAC,cAAcC,OAAiB,EAAEC,KAAa,EAAE;MAAA,IAAAC,MAAA;MAC9C,OAAOF,OAAO,CAACG,GAAG,CAAC,UAACC,MAAM;QAAA,OAAKF,MAAI,CAACG,YAAY,CAACD,MAAM,EAAEH,KAAK,CAAC;MAAA,EAAC;IAClE;EAAC;IAAAR,GAAA;IAAAK,KAAA,EAED,SAAAO,aAAaD,MAAc,EAAEH,KAAa,EAAE;MAAA,IAAAK,KAAA,EAAAC,eAAA;MAC1C,IAAAC,aAAA,GAAqC,IAAI,CAACjB,OAAO;QAAzCkB,MAAM,GAAAD,aAAA,CAANC,MAAM;QAAEC,GAAG,GAAAF,aAAA,CAAHE,GAAG;QAAEC,MAAM,GAAAH,aAAA,CAANG,MAAM;QAAEC,GAAG,GAAAJ,aAAA,CAAHI,GAAG;MAChC,IAAMC,OAAO,GAAG3D,IAAW;MAC3B,IAAM4D,KAAK,GAAG7D,GAAG;MACjB,IAAM8D,YAAY,GAAG,KAAK;MAC1B,IAAMC,SAAS,GAAGjD,YAAY,CAACqC,MAAM,CAACa,aAAa,CAAC;MACpD,IAAMC,aAAa,GACjBd,MAAM,CAACe,QAAQ,IAAIf,MAAM,CAACgB,MAAM,GAAGlD,QAAQ,CAACkC,MAAM,CAACa,aAAa,CAAC,GAAGI,SAAS;MAC/E,IAAMC,OAAO,GAAG,EAAAf,eAAA,GAAAH,MAAM,CAACJ,OAAO,cAAAO,eAAA,uBAAdA,eAAA,CAAgB3B,MAAM,IAAG,CAAC;MAC1C,IAAM2C,KAAK,GAAGD,OAAO,GAAG/D,cAAc,CAAC6C,MAAM,CAACJ,OAAO,CAAC,CAACpB,MAAM,GAAG,CAAC;MACjE,IAAA4C,cAAA,GAAsBhE,aAAa,CAAC4C,MAAM,EAAE,IAAI,CAACJ,OAAO,CAAC;QAAAyB,eAAA,GAAAC,cAAA,CAAAF,cAAA;QAAlDnC,IAAI,GAAAoC,eAAA;QAAE3B,KAAK,GAAA2B,eAAA;MAElB,IAAME,KAAK,GAAAC,aAAA;QACTC,SAAS,EAAEzB,MAAM,CAACV,KAAK,CAACoC,IAAI,KAAKT,SAAS,OAAAnC,MAAA,CAAOe,KAAK,GAAGsB,KAAK;MAAG,GAC9DnB,MAAM,CAACV,KAAK,CAACiC,KAAK,CACtB;MAED,IAAItC,IAAI,KAAKgC,SAAS,IAAIvB,KAAK,KAAKuB,SAAS,EAAE;QAC7CM,KAAK,CAACtC,IAAI,CAAC,GAAGS,KAAK;MACrB;MAEA,IAAI,CAACM,MAAM,CAAC2B,MAAM,EAAE;QAClBJ,KAAK,CAAC,WAAW,CAAC,UAAAzC,MAAA,CAAUkB,MAAM,CAAC4B,QAAQ,MAAG;MAChD;MAEA,OAAA1B,KAAA,GAAOvD,OAAO,CAAC0D,MAAM,CAAC,eACpB5D,KAAA,CAAAoF,aAAA,CAACpB,OAAO,EAAAP,KAAA,CAAA4B,EAAA,YAAAN,aAAA,CAAAA,aAAA;QAAA,QACAN,OAAO,GAAGD,SAAS,GAAG,cAAc;QAAA,SACnCC,OAAO,GAAG,UAAU,GAAG,KAAK;QAAA,OAC9BlB,MAAM,CAACf,IAAI;QAAA,mBAAAH,MAAA,CACC0B,GAAG,OAAA1B,MAAA,CAAIkB,MAAM,CAACf,IAAI;QAAA,OAC9BqB,GAAG;QAAA,SACDN,MAAM,CAAC+B,KAAK;QAAA,aACR/B,MAAM,CAACgC,SAAS;QAAA,YACjBhC,MAAM,CAACe,QAAQ;QAAA,cACbG,OAAO,GAAG,KAAK,GAAGlB,MAAM,CAACiC,UAAU;QAAA,eAClCf,OAAO,GAAG,KAAK,GAAGlB,MAAM,CAACkC,WAAW;QAAA,UACzChB,OAAO,GAAG,KAAK,GAAGlB,MAAM,CAACgB,MAAM;QAAA,SAChCE,OAAO;QAAA,YACJlB,MAAM,CAACe,QAAQ,IAAI,CAAC;QAAA,kBACd,CAAC,QAAQ;MAAC,GACtBf,MAAM,CAACV,KAAK;QAAA,OACX,IAAI,CAAC6C,SAAS,CAACnC,MAAM,CAACV,KAAK,CAAC;QAAA,WACxBpC,oBAAoB,CAC3B8C,MAAM,CAACV,KAAK,CAAC8C,OAAO,EACpBpC,MAAM,CAACe,QAAQ,GAAG,IAAI,CAACsB,oBAAoB,CAACrC,MAAM,CAACf,IAAI,CAAC,GAAGgC,SAAS,CACrE;QAAA,aACU/D,oBAAoB,CAC7B8C,MAAM,CAACV,KAAK,CAACgD,SAAS,EACtBtC,MAAM,CAACe,QAAQ,GAAG,IAAI,CAACwB,kBAAkB,CAACvC,MAAM,CAACf,IAAI,CAAC,GAAGgC,SAAS,CACnE;QAAA,SACMM,KAAK;QAAA,UACJhB,MAAM;QAAA,aACHO;MAAa,KAEvBI,OAAO,gBACNzE,KAAA,CAAAoF,aAAA,CAAApF,KAAA,CAAA+F,QAAA,qBACE/F,KAAA,CAAAoF,aAAA,CAACpB,OAAO,EAAAP,KAAA,CAAA4B,EAAA;QAAA,QACD,cAAc;QAAA;QAAA,OAEdxB,GAAG;QAAA,UACAN,MAAM,CAACgB,MAAM;QAAA,cACThB,MAAM,CAACiC,UAAU;QAAA,eAChBjC,MAAM,CAACkC;MAAW,iBAE/BzF,KAAA,CAAAoF,aAAA,QAAA3B,KAAA,CAAA4B,EAAA,aAAM9B,MAAM,CAACV,KAAK,CAACmD,QAAQ,CAAO,CAC1B,eACVhG,KAAA,CAAAoF,aAAA,CAACnB,KAAK,EAAAR,KAAA,CAAA4B,EAAA,eAAE,IAAI,CAACnC,aAAa,CAACK,MAAM,CAACJ,OAAO,EAAE,GAAG,GAAGuB,KAAK,CAAC,CAAS,CAC/D,gBAEH1E,KAAA,CAAAoF,aAAA,CAAApF,KAAA,CAAA+F,QAAA,QACGxC,MAAM,CAACV,KAAK,CAACmD,QAAQ,EACrBzC,MAAM,CAACe,QAAQ,gBACdtE,KAAA,CAAAoF,aAAA,CAAClB,YAAY,EAAAT,KAAA,CAAA4B,EAAA,mCACXrF,KAAA,CAAAoF,aAAA,CAACjB,SAAS,EAAAV,KAAA,CAAA4B,EAAA;QAAA,UAAS9B,MAAM,CAACgB;MAAM,GAAI,CACvB,GACb,IAAI,CAEX,CACO;IAEd;EAAC;IAAA3B,GAAA;IAAAK,KAAA,EAED,SAAAgD,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAAxD,OAAA;QAAAyD,KAAA;MACP,IAAMlC,KAAK,GA0BY7D,GAAG;MAzB1B,IAAMgG,YAAY,GAAGhG,GAAU;MAC/B,IAAMiG,WAAW,GAAG/F,UAAiB;MACrC,IAAAgG,cAAA,GACE,IAAI,CAAC5D,OAAO;QADN6D,QAAQ,GAAAD,cAAA,CAARC,QAAQ;QAAE3C,MAAM,GAAA0C,cAAA,CAAN1C,MAAM;QAAE4C,eAAe,GAAAF,cAAA,CAAfE,eAAe;QAAEC,QAAQ,GAAAH,cAAA,CAARG,QAAQ;QAAEC,UAAU,GAAAJ,cAAA,CAAVI,UAAU;QAAEC,MAAM,GAAAL,cAAA,CAANK,MAAM;QAAEC,cAAc,GAAAN,cAAA,CAAdM,cAAc;MAGvF,IAAI,CAACzD,OAAO,GAAGzC,cAAc,CAAC8F,eAAe,CAAC;MAE9C,IAAAK,qBAAA,GAAwCjG,oBAAoB,CAAC,IAAI,CAACuC,OAAO,CAAC;QAAA2D,sBAAA,GAAAjC,cAAA,CAAAgC,qBAAA;QAAnEE,aAAa,GAAAD,sBAAA;QAAEE,cAAc,GAAAF,sBAAA;MAEpCjG,MAAM,CAACoG,IAAI,CACTN,MAAM,EACN,0DAA0D,EAC1D,IAAI,CAACjE,OAAO,CAAC,cAAc,CAAC,IAAIpB,IAAI,CAAC4F,WAAW,CACjD;MAED,OAAAf,KAAA,GAAOjG,OAAO,CAAC0D,MAAM,CAAC,eACpB5D,KAAA,CAAAoF,aAAA,CAACgB,YAAY,EAAAD,KAAA,CAAAd,EAAA;QAAA,UAASsB;MAAM,iBAC1B3G,KAAA,CAAAoF,aAAA,CAACiB,WAAW,EAAAF,KAAA,CAAAd,EAAA;QAAA,UACFtE,YAAY;QAAA,kBAAAsB,MAAA,CACJ0E,aAAa;QAAA,mBAAA1E,MAAA,CACZ2E,cAAc;QAAA;QAAA,YAErBP;MAAQ,iBAElBzG,KAAA,CAAAoF,aAAA,CAACiB,WAAW,CAACc,SAAS;QAACrE,GAAG,EAAE4D,UAAW;QAACE,cAAc,EAAEA,cAAe;QAACQ,IAAI,EAAC;MAAU,gBACrFpH,KAAA,CAAAoF,aAAA,CAACnB,KAAK,EAAAkC,KAAA,CAAAd,EAAA,UAAAN,aAAA,KAAAsC,YAAA;QAAA,QAAmB,KAAK;QAAA,iBAAe,GAAG;QAAA,kBAAiB,CAAC,QAAQ;MAAC,GAAAnB,IAAA,KACxE,IAAI,CAAChD,aAAa,CAACsD,eAAe,EAAE,GAAG,GAAG,IAAI,CAACrD,OAAO,CAACpB,MAAM,CAAC,CACzD,CACc,CACZ,EACbwE,QAAQ,CAACe,MAAM,CACH;IAEnB;EAAC;EAAA,OAAAhG,IAAA;AAAA,EAhJgBrB,SAAS;AAAAqC,eAAA,CAAtBhB,IAAI;AAmJV,eAAeA,IAAI"}
1
+ {"version":3,"file":"Head.js","names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","SortDesc","SortAsc","callAllEventHandlers","flattenColumns","getFixedStyle","getScrollOffsetValue","logger","setRef","scrollStyles","_sstyled","insert","SORTING_ICON","desc","asc","ariaSort","Head","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","name","event","asProps","$onSortClick","code","preventDefault","props","ref","forwardRef","_createClass","key","value","renderColumns","columns","width","_this2","map","column","renderColumn","_ref2","_column$columns","_this$asProps","styles","use","hidden","uid","SColumn","SHead","SSortWrapper","SSortIcon","sortDirection","ariaSortValue","sortable","active","undefined","isGroup","cSize","_getFixedStyle","_getFixedStyle2","_slicedToArray","style","_objectSpread","flexBasis","flex","setVar","varWidth","createElement","cn","fixed","resizable","borderLeft","borderRight","refColumn","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","Fragment","children","render","_ref","_ref3","SHeadWrapper","SScrollArea","_this$asProps2","Children","columnsChildren","onResize","$scrollRef","sticky","disabledScroll","_getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","warn","displayName","Container","role","_assignProps","origin"],"sources":["../../src/Head.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport type { Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport { setRef } from '@semcore/utils/lib/ref';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\nconst ariaSort = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\n\ntype AsProps = {\n $onSortClick: (name: string, event: React.MouseEvent | React.KeyboardEvent) => void;\n $scrollRef: (instance: unknown) => void;\n use: 'primary' | 'secondary';\n columnsChildren: Column[];\n onResize: ResizeObserverCallback;\n sticky: boolean;\n disabledScroll?: boolean;\n ['data-ui-name']: string;\n uid?: string;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\n\n bindHandlerSortClick = (name: string) => (event: React.MouseEvent) => {\n this.asProps.$onSortClick(name, event);\n };\n\n bindHandlerKeyDown = (name: string) => (event: React.KeyboardEvent) => {\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n this.asProps.$onSortClick(name, event);\n }\n };\n\n refColumn = (props: Column['props']) => (ref: HTMLElement) => {\n setRef(props.ref, ref);\n if (props.forwardRef) {\n setRef(props.forwardRef, ref);\n }\n };\n\n renderColumns(columns: Column[], width: number) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column: Column, width: number) {\n const { styles, use, hidden, uid } = this.asProps;\n const SColumn = Flex as any;\n const SHead = Box;\n const SSortWrapper = 'div';\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const ariaSortValue =\n column.sortable && column.active ? ariaSort[column.sortDirection] : undefined;\n const isGroup = column.columns?.length > 0;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n\n const style = {\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n if (!column.setVar) {\n style['flexBasis'] = `var(${column.varWidth})`;\n }\n\n return sstyled(styles)(\n <SColumn\n role={isGroup ? undefined : 'columnheader'}\n scope={isGroup ? 'colgroup' : 'col'}\n key={column.name}\n id={`igc-table-${uid}-${column.name}`}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n borderLeft={isGroup ? false : column.borderLeft}\n borderRight={isGroup ? false : column.borderRight}\n active={isGroup ? false : column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n __excludeProps={['hidden']}\n {...column.props}\n ref={this.refColumn(column.props)}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n )}\n style={style}\n hidden={hidden}\n aria-sort={ariaSortValue}\n >\n {isGroup ? (\n <>\n <SColumn\n role='columnheader'\n groupHead\n use={use}\n active={column.active}\n borderLeft={column.borderLeft}\n borderRight={column.borderRight}\n >\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n {column.props.children}\n {column.sortable ? (\n <SSortWrapper>\n <SSortIcon active={column.active} />\n </SSortWrapper>\n ) : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const SHeadWrapper = Box as any;\n const SScrollArea = ScrollArea as any;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky, disabledScroll } =\n this.asProps;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <SHeadWrapper sticky={sticky}>\n <SScrollArea\n styles={scrollStyles}\n left-offset={`${offsetLeftSum}px`}\n right-offset={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <SScrollArea.Container ref={$scrollRef} disabledScroll={disabledScroll} role='rowgroup'>\n <SHead render={Box} role='row' aria-rowindex='1' __excludeProps={['hidden']}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </SScrollArea.Container>\n </SScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"mappings":"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"}
@@ -60,9 +60,9 @@ function Icon(props, ref) {
60
60
  if (propsEnhance.onKeyDown) {
61
61
  return propsEnhance.onKeyDown(event);
62
62
  }
63
- if (interactive && event.key === 'Enter') {
64
- var _propsEnhance$onClick;
65
- (_propsEnhance$onClick = propsEnhance.onClick) === null || _propsEnhance$onClick === void 0 ? void 0 : _propsEnhance$onClick.call(propsEnhance, event);
63
+ if (interactive && propsEnhance.onClick && (event.code === 'Enter' || event.code === 'Space')) {
64
+ event.preventDefault();
65
+ propsEnhance.onClick(event);
66
66
  }
67
67
  }
68
68
  var labelCheckRef = _react["default"].useRef();
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","names":["_core","require","_react","_interopRequireDefault","_classnames","_flexBox","_keyboardFocusEnhance2","_propsForElement","_logger","_ref","_hasLabels","_useColorResolver","_excluded","styles","sstyled","insert","Icon","props","ref","_useBox","useBox","_objectSpread2","tag","width","height","viewBox","focusable","interactive","_useBox2","_slicedToArray2","SIcon","other","colorProps","color","resolveColor","useColorResolver","_keyboardFocusEnhance","keyboardFocusEnhance","disabled","keyboardFocused","propsEnhance","_objectWithoutProperties2","sstyles","_sstyles$cn","cn","className","style","onKeyDown","event","key","_propsEnhance$onClick","onClick","call","labelCheckRef","React","useRef","useEffect","process","env","NODE_ENV","logger","warn","current","hasLabels","displayName","forkedRef","useForkRef","createElement","_extends2","role","undefined","propsForElement","Object","assign","_default","createBaseComponent","exports"],"sources":["../../src/Icon.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { createBaseComponent, sstyled } from '@semcore/core';\nimport { useBox } from '@semcore/flex-box';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport logger from '@semcore/utils/lib/logger';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\nimport { useColorResolver } from '@semcore/utils/lib/use/useColorResolver';\n\nimport styles from './style/icon.shadow.css';\n\nfunction Icon(props, ref) {\n const [SIcon, other] = useBox(\n {\n tag: 'svg',\n 'data-ui-name': 'Icon',\n width: 16,\n height: 16,\n viewBox: '0 0 16 16',\n focusable: props.interactive,\n ...props,\n },\n ref,\n );\n\n const { interactive, color: colorProps } = props;\n const resolveColor = useColorResolver();\n const color = resolveColor(colorProps);\n const { keyboardFocused, ...propsEnhance } = keyboardFocusEnhance()({\n disabled: !interactive,\n ...other,\n });\n const sstyles = sstyled(styles);\n const { className, style } = sstyles.cn('SIcon', {\n 'use:color': color,\n interactive: interactive,\n keyboardFocused: keyboardFocused,\n });\n\n function onKeyDown(event) {\n if (propsEnhance.onKeyDown) {\n return propsEnhance.onKeyDown(event);\n }\n\n if (interactive && event.key === 'Enter') {\n propsEnhance.onClick?.(event);\n }\n }\n\n const labelCheckRef = React.useRef();\n React.useEffect(() => {\n if (!interactive) return;\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n labelCheckRef.current && !hasLabels(labelCheckRef.current),\n `'aria-label' or 'aria-labelledby' are required props for interactive icons`,\n props['data-ui-name'] || Icon.displayName,\n );\n }\n }, [interactive]);\n const forkedRef = useForkRef(ref, labelCheckRef);\n\n return (\n <SIcon\n role={interactive ? 'button' : undefined}\n aria-hidden={interactive ? undefined : 'true'}\n {...propsForElement(propsEnhance)}\n style={Object.assign({}, style, propsEnhance.style)}\n className={cn(className, propsEnhance.className) || undefined}\n onKeyDown={onKeyDown}\n ref={forkedRef}\n />\n );\n}\n\nIcon.displayName = 'Icon';\n\nexport default createBaseComponent(Icon);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Icon.js","names":["_core","require","_react","_interopRequireDefault","_classnames","_flexBox","_keyboardFocusEnhance2","_propsForElement","_logger","_ref","_hasLabels","_useColorResolver","_excluded","styles","sstyled","insert","Icon","props","ref","_useBox","useBox","_objectSpread2","tag","width","height","viewBox","focusable","interactive","_useBox2","_slicedToArray2","SIcon","other","colorProps","color","resolveColor","useColorResolver","_keyboardFocusEnhance","keyboardFocusEnhance","disabled","keyboardFocused","propsEnhance","_objectWithoutProperties2","sstyles","_sstyles$cn","cn","className","style","onKeyDown","event","onClick","code","preventDefault","labelCheckRef","React","useRef","useEffect","process","env","NODE_ENV","logger","warn","current","hasLabels","displayName","forkedRef","useForkRef","createElement","_extends2","role","undefined","propsForElement","Object","assign","_default","createBaseComponent","exports"],"sources":["../../src/Icon.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { createBaseComponent, sstyled } from '@semcore/core';\nimport { useBox } from '@semcore/flex-box';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport logger from '@semcore/utils/lib/logger';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\nimport { useColorResolver } from '@semcore/utils/lib/use/useColorResolver';\n\nimport styles from './style/icon.shadow.css';\n\nfunction Icon(props, ref) {\n const [SIcon, other] = useBox(\n {\n tag: 'svg',\n 'data-ui-name': 'Icon',\n width: 16,\n height: 16,\n viewBox: '0 0 16 16',\n focusable: props.interactive,\n ...props,\n },\n ref,\n );\n\n const { interactive, color: colorProps } = props;\n const resolveColor = useColorResolver();\n const color = resolveColor(colorProps);\n const { keyboardFocused, ...propsEnhance } = keyboardFocusEnhance()({\n disabled: !interactive,\n ...other,\n });\n const sstyles = sstyled(styles);\n const { className, style } = sstyles.cn('SIcon', {\n 'use:color': color,\n interactive: interactive,\n keyboardFocused: keyboardFocused,\n });\n\n function onKeyDown(event) {\n if (propsEnhance.onKeyDown) {\n return propsEnhance.onKeyDown(event);\n }\n\n if (interactive && propsEnhance.onClick && (event.code === 'Enter' || event.code === 'Space')) {\n event.preventDefault();\n propsEnhance.onClick(event);\n }\n }\n\n const labelCheckRef = React.useRef();\n React.useEffect(() => {\n if (!interactive) return;\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n labelCheckRef.current && !hasLabels(labelCheckRef.current),\n `'aria-label' or 'aria-labelledby' are required props for interactive icons`,\n props['data-ui-name'] || Icon.displayName,\n );\n }\n }, [interactive]);\n const forkedRef = useForkRef(ref, labelCheckRef);\n\n return (\n <SIcon\n role={interactive ? 'button' : undefined}\n aria-hidden={interactive ? undefined : 'true'}\n {...propsForElement(propsEnhance)}\n style={Object.assign({}, style, propsEnhance.style)}\n className={cn(className, propsEnhance.className) || undefined}\n onKeyDown={onKeyDown}\n ref={forkedRef}\n />\n );\n}\n\nIcon.displayName = 'Icon';\n\nexport default createBaseComponent(Icon);\n"],"mappings":"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"}
@@ -54,9 +54,9 @@ function Icon(props, ref) {
54
54
  if (propsEnhance.onKeyDown) {
55
55
  return propsEnhance.onKeyDown(event);
56
56
  }
57
- if (interactive && event.key === 'Enter') {
58
- var _propsEnhance$onClick;
59
- (_propsEnhance$onClick = propsEnhance.onClick) === null || _propsEnhance$onClick === void 0 ? void 0 : _propsEnhance$onClick.call(propsEnhance, event);
57
+ if (interactive && propsEnhance.onClick && (event.code === 'Enter' || event.code === 'Space')) {
58
+ event.preventDefault();
59
+ propsEnhance.onClick(event);
60
60
  }
61
61
  }
62
62
  var labelCheckRef = React.useRef();
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","names":["React","cn","createBaseComponent","sstyled","useBox","keyboardFocusEnhance","propsForElement","logger","useForkRef","hasLabels","useColorResolver","styles","_sstyled","insert","Icon","props","ref","_useBox","_objectSpread","tag","width","height","viewBox","focusable","interactive","_useBox2","_slicedToArray","SIcon","other","colorProps","color","resolveColor","_keyboardFocusEnhance","disabled","keyboardFocused","propsEnhance","_objectWithoutProperties","_excluded","sstyles","_sstyles$cn","className","style","onKeyDown","event","key","_propsEnhance$onClick","onClick","call","labelCheckRef","useRef","useEffect","process","env","NODE_ENV","warn","current","displayName","forkedRef","createElement","_extends","role","undefined","Object","assign"],"sources":["../../src/Icon.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { createBaseComponent, sstyled } from '@semcore/core';\nimport { useBox } from '@semcore/flex-box';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport logger from '@semcore/utils/lib/logger';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\nimport { useColorResolver } from '@semcore/utils/lib/use/useColorResolver';\n\nimport styles from './style/icon.shadow.css';\n\nfunction Icon(props, ref) {\n const [SIcon, other] = useBox(\n {\n tag: 'svg',\n 'data-ui-name': 'Icon',\n width: 16,\n height: 16,\n viewBox: '0 0 16 16',\n focusable: props.interactive,\n ...props,\n },\n ref,\n );\n\n const { interactive, color: colorProps } = props;\n const resolveColor = useColorResolver();\n const color = resolveColor(colorProps);\n const { keyboardFocused, ...propsEnhance } = keyboardFocusEnhance()({\n disabled: !interactive,\n ...other,\n });\n const sstyles = sstyled(styles);\n const { className, style } = sstyles.cn('SIcon', {\n 'use:color': color,\n interactive: interactive,\n keyboardFocused: keyboardFocused,\n });\n\n function onKeyDown(event) {\n if (propsEnhance.onKeyDown) {\n return propsEnhance.onKeyDown(event);\n }\n\n if (interactive && event.key === 'Enter') {\n propsEnhance.onClick?.(event);\n }\n }\n\n const labelCheckRef = React.useRef();\n React.useEffect(() => {\n if (!interactive) return;\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n labelCheckRef.current && !hasLabels(labelCheckRef.current),\n `'aria-label' or 'aria-labelledby' are required props for interactive icons`,\n props['data-ui-name'] || Icon.displayName,\n );\n }\n }, [interactive]);\n const forkedRef = useForkRef(ref, labelCheckRef);\n\n return (\n <SIcon\n role={interactive ? 'button' : undefined}\n aria-hidden={interactive ? undefined : 'true'}\n {...propsForElement(propsEnhance)}\n style={Object.assign({}, style, propsEnhance.style)}\n className={cn(className, propsEnhance.className) || undefined}\n onKeyDown={onKeyDown}\n ref={forkedRef}\n />\n );\n}\n\nIcon.displayName = 'Icon';\n\nexport default createBaseComponent(Icon);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Icon.js","names":["React","cn","createBaseComponent","sstyled","useBox","keyboardFocusEnhance","propsForElement","logger","useForkRef","hasLabels","useColorResolver","styles","_sstyled","insert","Icon","props","ref","_useBox","_objectSpread","tag","width","height","viewBox","focusable","interactive","_useBox2","_slicedToArray","SIcon","other","colorProps","color","resolveColor","_keyboardFocusEnhance","disabled","keyboardFocused","propsEnhance","_objectWithoutProperties","_excluded","sstyles","_sstyles$cn","className","style","onKeyDown","event","onClick","code","preventDefault","labelCheckRef","useRef","useEffect","process","env","NODE_ENV","warn","current","displayName","forkedRef","createElement","_extends","role","undefined","Object","assign"],"sources":["../../src/Icon.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { createBaseComponent, sstyled } from '@semcore/core';\nimport { useBox } from '@semcore/flex-box';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport logger from '@semcore/utils/lib/logger';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\nimport { useColorResolver } from '@semcore/utils/lib/use/useColorResolver';\n\nimport styles from './style/icon.shadow.css';\n\nfunction Icon(props, ref) {\n const [SIcon, other] = useBox(\n {\n tag: 'svg',\n 'data-ui-name': 'Icon',\n width: 16,\n height: 16,\n viewBox: '0 0 16 16',\n focusable: props.interactive,\n ...props,\n },\n ref,\n );\n\n const { interactive, color: colorProps } = props;\n const resolveColor = useColorResolver();\n const color = resolveColor(colorProps);\n const { keyboardFocused, ...propsEnhance } = keyboardFocusEnhance()({\n disabled: !interactive,\n ...other,\n });\n const sstyles = sstyled(styles);\n const { className, style } = sstyles.cn('SIcon', {\n 'use:color': color,\n interactive: interactive,\n keyboardFocused: keyboardFocused,\n });\n\n function onKeyDown(event) {\n if (propsEnhance.onKeyDown) {\n return propsEnhance.onKeyDown(event);\n }\n\n if (interactive && propsEnhance.onClick && (event.code === 'Enter' || event.code === 'Space')) {\n event.preventDefault();\n propsEnhance.onClick(event);\n }\n }\n\n const labelCheckRef = React.useRef();\n React.useEffect(() => {\n if (!interactive) return;\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n labelCheckRef.current && !hasLabels(labelCheckRef.current),\n `'aria-label' or 'aria-labelledby' are required props for interactive icons`,\n props['data-ui-name'] || Icon.displayName,\n );\n }\n }, [interactive]);\n const forkedRef = useForkRef(ref, labelCheckRef);\n\n return (\n <SIcon\n role={interactive ? 'button' : undefined}\n aria-hidden={interactive ? undefined : 'true'}\n {...propsForElement(propsEnhance)}\n style={Object.assign({}, style, propsEnhance.style)}\n className={cn(className, propsEnhance.className) || undefined}\n onKeyDown={onKeyDown}\n ref={forkedRef}\n />\n );\n}\n\nIcon.displayName = 'Icon';\n\nexport default createBaseComponent(Icon);\n"],"mappings":"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"}
@@ -37,8 +37,9 @@ var InlineEdit = /*#__PURE__*/function (_Component) {
37
37
  _this = _super.call(this, props);
38
38
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "viewRef", /*#__PURE__*/_react["default"].createRef());
39
39
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handlerKeyDownEdit", function (event) {
40
- if (event.key === 'Enter' || event.key === 'Escape') {
40
+ if (_this.viewRef.current && (event.code === 'Enter' || event.code === 'Escape')) {
41
41
  var _this$viewRef$current;
42
+ event.preventDefault();
42
43
  (_this$viewRef$current = _this.viewRef.current) === null || _this$viewRef$current === void 0 ? void 0 : _this$viewRef$current.focus();
43
44
  }
44
45
  });
@@ -130,10 +131,9 @@ var View = function View(props) {
130
131
  var SView = _animation.FadeInOut;
131
132
  var handleKeyDown = _react["default"].useCallback(function (event) {
132
133
  if (!visible) return;
133
- if (event.key === 'Enter' || event.key === 'Space') {
134
- var _props$onEdit;
134
+ if (props.onEdit && (event.code === 'Enter' || event.code === 'Space')) {
135
135
  event.preventDefault();
136
- (_props$onEdit = props.onEdit) === null || _props$onEdit === void 0 ? void 0 : _props$onEdit.call(props);
136
+ props.onEdit();
137
137
  }
138
138
  }, [visible, props.onEdit]);
139
139
  var textContent = (0, _reactToText["default"])((0, _getOriginChildren["default"])(props.Children)).trim();
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEdit.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_animation","_intergalacticDynamicLocales","_i18nEnhance","_useCssVariable","_reactToText","_getOriginChildren","style","sstyled","insert","InlineEdit","_Component","_inherits2","_super","_createSuper2","props","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","React","createRef","event","key","_this$viewRef$current","viewRef","current","focus","handleOnEdit","bind","_createClass2","value","uncontrolledProps","editable","getViewProps","_this$asProps","asProps","getI18nText","onEdit","ref","getEditProps","onKeyDown","handlerKeyDownEdit","handlers","render","_ref","_ref4","SInlineEdit","Box","_this$asProps2","Children","hasChildren","children","styles","Error","createElement","cn","_objectSpread2","assignProps","Component","i18nEnhance","localizedMessages","defaultEditable","i18n","locale","Edit","_ref2","arguments[0]","_ref5","visible","SEdit","FadeInOut","useRef","durationStr","useCssVariable","duration","useMemo","parseInt","View","_ref3","_ref6","SView","handleKeyDown","useCallback","_props$onEdit","preventDefault","textContent","reactToText","getOriginChildren","trim","concat","undefined","_default","createComponent","exports"],"sources":["../../src/InlineEdit.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, {\n Component,\n sstyled,\n Root,\n Intergalactic,\n PropGetterFn,\n} from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { FadeInOut, FadeInOutProps } from '@semcore/animation';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { useCssVariable } from '@semcore/utils/lib/useCssVariable';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\n\nimport style from './style/inline-edit.shadow.css';\n\ntype AsProps = {\n Children: React.FC;\n defaultEditable?: boolean;\n editable?: boolean;\n onEdit?: () => void;\n styles?: React.CSSProperties;\n getI18nText: (messageId: string, values?: { [key: string]: string | number }) => string;\n};\n\nclass InlineEdit extends Component<AsProps> {\n static displayName = 'InlineEdit';\n\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n\n static defaultProps = {\n defaultEditable: false,\n i18n: localizedMessages,\n locale: 'en',\n };\n\n viewRef = React.createRef<HTMLElement>();\n\n constructor(props: any) {\n super(props);\n this.handleOnEdit = this.handleOnEdit.bind(this);\n }\n\n uncontrolledProps() {\n return {\n editable: null,\n };\n }\n\n getViewProps() {\n const { editable, getI18nText } = this.asProps;\n\n return {\n editable,\n onEdit: this.handleOnEdit,\n getI18nText,\n ref: this.viewRef,\n };\n }\n\n getEditProps() {\n const { editable } = this.asProps;\n\n return {\n editable,\n onKeyDown: this.handlerKeyDownEdit,\n };\n }\n\n handlerKeyDownEdit = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === 'Escape') {\n this.viewRef.current?.focus();\n }\n };\n\n handleOnEdit() {\n this.handlers.editable(true);\n }\n\n render() {\n const SInlineEdit = Root;\n const { Children, children: hasChildren, styles } = this.asProps;\n\n if (!hasChildren) {\n throw new Error(\n '<InlineEdit /> component cannot be rendered without children. Either provide <InlineEdit.View /> and <InlineEdit.Edit /> or do not render <InlineEdit /> at all.',\n );\n }\n\n return sstyled(styles)(\n <SInlineEdit render={Box}>\n <Children />\n </SInlineEdit>,\n );\n }\n}\n\nconst Edit: React.FC<AsProps> = (props) => {\n const visible = props.editable;\n const SEdit = Root;\n const ref = React.useRef();\n const durationStr = useCssVariable('--intergalactic-duration-control', '200', ref);\n const duration = React.useMemo(() => parseInt(durationStr, 10), [durationStr]);\n\n return sstyled(props.styles)(\n <SEdit\n render={FadeInOut}\n visible={visible}\n duration={duration}\n aria-hidden={!visible}\n exiting={!visible}\n ref={ref}\n />,\n ) as React.ReactElement;\n};\n\nconst View: React.FC<AsProps> = (props) => {\n const visible = !props.editable;\n const SView = Root;\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!visible) return;\n if (event.key === 'Enter' || event.key === 'Space') {\n event.preventDefault();\n props.onEdit?.();\n }\n },\n [visible, props.onEdit],\n );\n const textContent = reactToText(getOriginChildren(props.Children)).trim();\n\n return sstyled(props.styles)(\n <SView\n render={FadeInOut}\n visible={visible}\n preserveNode\n tabIndex={0}\n role='button'\n aria-hidden={!visible}\n aria-label={`${props.getI18nText('tapToEdit')}:${textContent}`}\n onClick={visible ? props.onEdit : undefined}\n onKeyDown={handleKeyDown}\n />,\n ) as React.ReactElement;\n};\n\ntype InlineEditProps = BoxProps & {\n editable?: boolean;\n onEditableChange?: (editable: boolean, event?: React.SyntheticEvent) => void;\n defaultEditable?: boolean;\n onEdit?: () => void;\n locale?: string;\n};\ntype InlineEditViewProps = BoxProps & FadeInOutProps & {};\ntype InlineEditEditProps = BoxProps & FadeInOutProps & {};\n\ntype InputCtx = {\n getViewProps: PropGetterFn;\n getEditProps: PropGetterFn;\n};\n\nexport default createComponent(InlineEdit, {\n Edit,\n View,\n}) as Intergalactic.Component<'div', InlineEditProps, InputCtx> & {\n View: Intergalactic.Component<'div', InlineEditViewProps, InlineEditProps>;\n Edit: Intergalactic.Component<'div', InlineEditEditProps, InlineEditProps>;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"InlineEdit.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_animation","_intergalacticDynamicLocales","_i18nEnhance","_useCssVariable","_reactToText","_getOriginChildren","style","sstyled","insert","InlineEdit","_Component","_inherits2","_super","_createSuper2","props","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","React","createRef","event","viewRef","current","code","_this$viewRef$current","preventDefault","focus","handleOnEdit","bind","_createClass2","key","value","uncontrolledProps","editable","getViewProps","_this$asProps","asProps","getI18nText","onEdit","ref","getEditProps","onKeyDown","handlerKeyDownEdit","handlers","render","_ref","_ref4","SInlineEdit","Box","_this$asProps2","Children","hasChildren","children","styles","Error","createElement","cn","_objectSpread2","assignProps","Component","i18nEnhance","localizedMessages","defaultEditable","i18n","locale","Edit","_ref2","arguments[0]","_ref5","visible","SEdit","FadeInOut","useRef","durationStr","useCssVariable","duration","useMemo","parseInt","View","_ref3","_ref6","SView","handleKeyDown","useCallback","textContent","reactToText","getOriginChildren","trim","concat","undefined","_default","createComponent","exports"],"sources":["../../src/InlineEdit.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, {\n Component,\n sstyled,\n Root,\n Intergalactic,\n PropGetterFn,\n} from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { FadeInOut, FadeInOutProps } from '@semcore/animation';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { useCssVariable } from '@semcore/utils/lib/useCssVariable';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\n\nimport style from './style/inline-edit.shadow.css';\n\ntype AsProps = {\n Children: React.FC;\n defaultEditable?: boolean;\n editable?: boolean;\n onEdit?: () => void;\n styles?: React.CSSProperties;\n getI18nText: (messageId: string, values?: { [key: string]: string | number }) => string;\n};\n\nclass InlineEdit extends Component<AsProps> {\n static displayName = 'InlineEdit';\n\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n\n static defaultProps = {\n defaultEditable: false,\n i18n: localizedMessages,\n locale: 'en',\n };\n\n viewRef = React.createRef<HTMLElement>();\n\n constructor(props: any) {\n super(props);\n this.handleOnEdit = this.handleOnEdit.bind(this);\n }\n\n uncontrolledProps() {\n return {\n editable: null,\n };\n }\n\n getViewProps() {\n const { editable, getI18nText } = this.asProps;\n\n return {\n editable,\n onEdit: this.handleOnEdit,\n getI18nText,\n ref: this.viewRef,\n };\n }\n\n getEditProps() {\n const { editable } = this.asProps;\n\n return {\n editable,\n onKeyDown: this.handlerKeyDownEdit,\n };\n }\n\n handlerKeyDownEdit = (event: React.KeyboardEvent) => {\n if (this.viewRef.current && (event.code === 'Enter' || event.code === 'Escape')) {\n event.preventDefault();\n this.viewRef.current?.focus();\n }\n };\n\n handleOnEdit() {\n this.handlers.editable(true);\n }\n\n render() {\n const SInlineEdit = Root;\n const { Children, children: hasChildren, styles } = this.asProps;\n\n if (!hasChildren) {\n throw new Error(\n '<InlineEdit /> component cannot be rendered without children. Either provide <InlineEdit.View /> and <InlineEdit.Edit /> or do not render <InlineEdit /> at all.',\n );\n }\n\n return sstyled(styles)(\n <SInlineEdit render={Box}>\n <Children />\n </SInlineEdit>,\n );\n }\n}\n\nconst Edit: React.FC<AsProps> = (props) => {\n const visible = props.editable;\n const SEdit = Root;\n const ref = React.useRef();\n const durationStr = useCssVariable('--intergalactic-duration-control', '200', ref);\n const duration = React.useMemo(() => parseInt(durationStr, 10), [durationStr]);\n\n return sstyled(props.styles)(\n <SEdit\n render={FadeInOut}\n visible={visible}\n duration={duration}\n aria-hidden={!visible}\n exiting={!visible}\n ref={ref}\n />,\n ) as React.ReactElement;\n};\n\nconst View: React.FC<AsProps> = (props) => {\n const visible = !props.editable;\n const SView = Root;\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!visible) return;\n if (props.onEdit && (event.code === 'Enter' || event.code === 'Space')) {\n event.preventDefault();\n props.onEdit();\n }\n },\n [visible, props.onEdit],\n );\n const textContent = reactToText(getOriginChildren(props.Children)).trim();\n\n return sstyled(props.styles)(\n <SView\n render={FadeInOut}\n visible={visible}\n preserveNode\n tabIndex={0}\n role='button'\n aria-hidden={!visible}\n aria-label={`${props.getI18nText('tapToEdit')}:${textContent}`}\n onClick={visible ? props.onEdit : undefined}\n onKeyDown={handleKeyDown}\n />,\n ) as React.ReactElement;\n};\n\ntype InlineEditProps = BoxProps & {\n editable?: boolean;\n onEditableChange?: (editable: boolean, event?: React.SyntheticEvent) => void;\n defaultEditable?: boolean;\n onEdit?: () => void;\n locale?: string;\n};\ntype InlineEditViewProps = BoxProps & FadeInOutProps & {};\ntype InlineEditEditProps = BoxProps & FadeInOutProps & {};\n\ntype InputCtx = {\n getViewProps: PropGetterFn;\n getEditProps: PropGetterFn;\n};\n\nexport default createComponent(InlineEdit, {\n Edit,\n View,\n}) as Intergalactic.Component<'div', InlineEditProps, InputCtx> & {\n View: Intergalactic.Component<'div', InlineEditViewProps, InlineEditProps>;\n Edit: Intergalactic.Component<'div', InlineEditEditProps, InlineEditProps>;\n};\n"],"mappings":"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"}
@@ -33,8 +33,9 @@ var InlineEdit = /*#__PURE__*/function (_Component) {
33
33
  _this = _super.call(this, props);
34
34
  _defineProperty(_assertThisInitialized(_this), "viewRef", /*#__PURE__*/React.createRef());
35
35
  _defineProperty(_assertThisInitialized(_this), "handlerKeyDownEdit", function (event) {
36
- if (event.key === 'Enter' || event.key === 'Escape') {
36
+ if (_this.viewRef.current && (event.code === 'Enter' || event.code === 'Escape')) {
37
37
  var _this$viewRef$current;
38
+ event.preventDefault();
38
39
  (_this$viewRef$current = _this.viewRef.current) === null || _this$viewRef$current === void 0 ? void 0 : _this$viewRef$current.focus();
39
40
  }
40
41
  });
@@ -126,10 +127,9 @@ var View = function View(props) {
126
127
  var SView = FadeInOut;
127
128
  var handleKeyDown = React.useCallback(function (event) {
128
129
  if (!visible) return;
129
- if (event.key === 'Enter' || event.key === 'Space') {
130
- var _props$onEdit;
130
+ if (props.onEdit && (event.code === 'Enter' || event.code === 'Space')) {
131
131
  event.preventDefault();
132
- (_props$onEdit = props.onEdit) === null || _props$onEdit === void 0 ? void 0 : _props$onEdit.call(props);
132
+ props.onEdit();
133
133
  }
134
134
  }, [visible, props.onEdit]);
135
135
  var textContent = reactToText(getOriginChildren(props.Children)).trim();
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEdit.js","names":["React","createComponent","Component","sstyled","Root","Box","FadeInOut","localizedMessages","i18nEnhance","useCssVariable","reactToText","getOriginChildren","style","_sstyled","insert","InlineEdit","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","createRef","event","key","_this$viewRef$current","viewRef","current","focus","handleOnEdit","bind","_createClass","value","uncontrolledProps","editable","getViewProps","_this$asProps","asProps","getI18nText","onEdit","ref","getEditProps","onKeyDown","handlerKeyDownEdit","handlers","render","_ref","_ref4","SInlineEdit","_this$asProps2","Children","hasChildren","children","styles","Error","createElement","cn","_objectSpread","_assignProps","defaultEditable","i18n","locale","Edit","_ref2","arguments[0]","_ref5","visible","SEdit","useRef","durationStr","duration","useMemo","parseInt","_assignProps2","View","_ref3","_ref6","SView","handleKeyDown","useCallback","_props$onEdit","preventDefault","textContent","trim","_assignProps3","concat","undefined"],"sources":["../../src/InlineEdit.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, {\n Component,\n sstyled,\n Root,\n Intergalactic,\n PropGetterFn,\n} from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { FadeInOut, FadeInOutProps } from '@semcore/animation';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { useCssVariable } from '@semcore/utils/lib/useCssVariable';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\n\nimport style from './style/inline-edit.shadow.css';\n\ntype AsProps = {\n Children: React.FC;\n defaultEditable?: boolean;\n editable?: boolean;\n onEdit?: () => void;\n styles?: React.CSSProperties;\n getI18nText: (messageId: string, values?: { [key: string]: string | number }) => string;\n};\n\nclass InlineEdit extends Component<AsProps> {\n static displayName = 'InlineEdit';\n\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n\n static defaultProps = {\n defaultEditable: false,\n i18n: localizedMessages,\n locale: 'en',\n };\n\n viewRef = React.createRef<HTMLElement>();\n\n constructor(props: any) {\n super(props);\n this.handleOnEdit = this.handleOnEdit.bind(this);\n }\n\n uncontrolledProps() {\n return {\n editable: null,\n };\n }\n\n getViewProps() {\n const { editable, getI18nText } = this.asProps;\n\n return {\n editable,\n onEdit: this.handleOnEdit,\n getI18nText,\n ref: this.viewRef,\n };\n }\n\n getEditProps() {\n const { editable } = this.asProps;\n\n return {\n editable,\n onKeyDown: this.handlerKeyDownEdit,\n };\n }\n\n handlerKeyDownEdit = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === 'Escape') {\n this.viewRef.current?.focus();\n }\n };\n\n handleOnEdit() {\n this.handlers.editable(true);\n }\n\n render() {\n const SInlineEdit = Root;\n const { Children, children: hasChildren, styles } = this.asProps;\n\n if (!hasChildren) {\n throw new Error(\n '<InlineEdit /> component cannot be rendered without children. Either provide <InlineEdit.View /> and <InlineEdit.Edit /> or do not render <InlineEdit /> at all.',\n );\n }\n\n return sstyled(styles)(\n <SInlineEdit render={Box}>\n <Children />\n </SInlineEdit>,\n );\n }\n}\n\nconst Edit: React.FC<AsProps> = (props) => {\n const visible = props.editable;\n const SEdit = Root;\n const ref = React.useRef();\n const durationStr = useCssVariable('--intergalactic-duration-control', '200', ref);\n const duration = React.useMemo(() => parseInt(durationStr, 10), [durationStr]);\n\n return sstyled(props.styles)(\n <SEdit\n render={FadeInOut}\n visible={visible}\n duration={duration}\n aria-hidden={!visible}\n exiting={!visible}\n ref={ref}\n />,\n ) as React.ReactElement;\n};\n\nconst View: React.FC<AsProps> = (props) => {\n const visible = !props.editable;\n const SView = Root;\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!visible) return;\n if (event.key === 'Enter' || event.key === 'Space') {\n event.preventDefault();\n props.onEdit?.();\n }\n },\n [visible, props.onEdit],\n );\n const textContent = reactToText(getOriginChildren(props.Children)).trim();\n\n return sstyled(props.styles)(\n <SView\n render={FadeInOut}\n visible={visible}\n preserveNode\n tabIndex={0}\n role='button'\n aria-hidden={!visible}\n aria-label={`${props.getI18nText('tapToEdit')}:${textContent}`}\n onClick={visible ? props.onEdit : undefined}\n onKeyDown={handleKeyDown}\n />,\n ) as React.ReactElement;\n};\n\ntype InlineEditProps = BoxProps & {\n editable?: boolean;\n onEditableChange?: (editable: boolean, event?: React.SyntheticEvent) => void;\n defaultEditable?: boolean;\n onEdit?: () => void;\n locale?: string;\n};\ntype InlineEditViewProps = BoxProps & FadeInOutProps & {};\ntype InlineEditEditProps = BoxProps & FadeInOutProps & {};\n\ntype InputCtx = {\n getViewProps: PropGetterFn;\n getEditProps: PropGetterFn;\n};\n\nexport default createComponent(InlineEdit, {\n Edit,\n View,\n}) as Intergalactic.Component<'div', InlineEditProps, InputCtx> & {\n View: Intergalactic.Component<'div', InlineEditViewProps, InlineEditProps>;\n Edit: Intergalactic.Component<'div', InlineEditEditProps, InlineEditProps>;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"InlineEdit.js","names":["React","createComponent","Component","sstyled","Root","Box","FadeInOut","localizedMessages","i18nEnhance","useCssVariable","reactToText","getOriginChildren","style","_sstyled","insert","InlineEdit","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","createRef","event","viewRef","current","code","_this$viewRef$current","preventDefault","focus","handleOnEdit","bind","_createClass","key","value","uncontrolledProps","editable","getViewProps","_this$asProps","asProps","getI18nText","onEdit","ref","getEditProps","onKeyDown","handlerKeyDownEdit","handlers","render","_ref","_ref4","SInlineEdit","_this$asProps2","Children","hasChildren","children","styles","Error","createElement","cn","_objectSpread","_assignProps","defaultEditable","i18n","locale","Edit","_ref2","arguments[0]","_ref5","visible","SEdit","useRef","durationStr","duration","useMemo","parseInt","_assignProps2","View","_ref3","_ref6","SView","handleKeyDown","useCallback","textContent","trim","_assignProps3","concat","undefined"],"sources":["../../src/InlineEdit.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, {\n Component,\n sstyled,\n Root,\n Intergalactic,\n PropGetterFn,\n} from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { FadeInOut, FadeInOutProps } from '@semcore/animation';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { useCssVariable } from '@semcore/utils/lib/useCssVariable';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\n\nimport style from './style/inline-edit.shadow.css';\n\ntype AsProps = {\n Children: React.FC;\n defaultEditable?: boolean;\n editable?: boolean;\n onEdit?: () => void;\n styles?: React.CSSProperties;\n getI18nText: (messageId: string, values?: { [key: string]: string | number }) => string;\n};\n\nclass InlineEdit extends Component<AsProps> {\n static displayName = 'InlineEdit';\n\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n\n static defaultProps = {\n defaultEditable: false,\n i18n: localizedMessages,\n locale: 'en',\n };\n\n viewRef = React.createRef<HTMLElement>();\n\n constructor(props: any) {\n super(props);\n this.handleOnEdit = this.handleOnEdit.bind(this);\n }\n\n uncontrolledProps() {\n return {\n editable: null,\n };\n }\n\n getViewProps() {\n const { editable, getI18nText } = this.asProps;\n\n return {\n editable,\n onEdit: this.handleOnEdit,\n getI18nText,\n ref: this.viewRef,\n };\n }\n\n getEditProps() {\n const { editable } = this.asProps;\n\n return {\n editable,\n onKeyDown: this.handlerKeyDownEdit,\n };\n }\n\n handlerKeyDownEdit = (event: React.KeyboardEvent) => {\n if (this.viewRef.current && (event.code === 'Enter' || event.code === 'Escape')) {\n event.preventDefault();\n this.viewRef.current?.focus();\n }\n };\n\n handleOnEdit() {\n this.handlers.editable(true);\n }\n\n render() {\n const SInlineEdit = Root;\n const { Children, children: hasChildren, styles } = this.asProps;\n\n if (!hasChildren) {\n throw new Error(\n '<InlineEdit /> component cannot be rendered without children. Either provide <InlineEdit.View /> and <InlineEdit.Edit /> or do not render <InlineEdit /> at all.',\n );\n }\n\n return sstyled(styles)(\n <SInlineEdit render={Box}>\n <Children />\n </SInlineEdit>,\n );\n }\n}\n\nconst Edit: React.FC<AsProps> = (props) => {\n const visible = props.editable;\n const SEdit = Root;\n const ref = React.useRef();\n const durationStr = useCssVariable('--intergalactic-duration-control', '200', ref);\n const duration = React.useMemo(() => parseInt(durationStr, 10), [durationStr]);\n\n return sstyled(props.styles)(\n <SEdit\n render={FadeInOut}\n visible={visible}\n duration={duration}\n aria-hidden={!visible}\n exiting={!visible}\n ref={ref}\n />,\n ) as React.ReactElement;\n};\n\nconst View: React.FC<AsProps> = (props) => {\n const visible = !props.editable;\n const SView = Root;\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!visible) return;\n if (props.onEdit && (event.code === 'Enter' || event.code === 'Space')) {\n event.preventDefault();\n props.onEdit();\n }\n },\n [visible, props.onEdit],\n );\n const textContent = reactToText(getOriginChildren(props.Children)).trim();\n\n return sstyled(props.styles)(\n <SView\n render={FadeInOut}\n visible={visible}\n preserveNode\n tabIndex={0}\n role='button'\n aria-hidden={!visible}\n aria-label={`${props.getI18nText('tapToEdit')}:${textContent}`}\n onClick={visible ? props.onEdit : undefined}\n onKeyDown={handleKeyDown}\n />,\n ) as React.ReactElement;\n};\n\ntype InlineEditProps = BoxProps & {\n editable?: boolean;\n onEditableChange?: (editable: boolean, event?: React.SyntheticEvent) => void;\n defaultEditable?: boolean;\n onEdit?: () => void;\n locale?: string;\n};\ntype InlineEditViewProps = BoxProps & FadeInOutProps & {};\ntype InlineEditEditProps = BoxProps & FadeInOutProps & {};\n\ntype InputCtx = {\n getViewProps: PropGetterFn;\n getEditProps: PropGetterFn;\n};\n\nexport default createComponent(InlineEdit, {\n Edit,\n View,\n}) as Intergalactic.Component<'div', InlineEditProps, InputCtx> & {\n View: Intergalactic.Component<'div', InlineEditViewProps, InlineEditProps>;\n Edit: Intergalactic.Component<'div', InlineEditEditProps, InlineEditProps>;\n};\n"],"mappings":"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"}
@@ -141,12 +141,12 @@ var InlineInputBase = /*#__PURE__*/function (_Component) {
141
141
  var _this$asProps4 = _this.asProps,
142
142
  onConfirm = _this$asProps4.onConfirm,
143
143
  onCancel = _this$asProps4.onCancel;
144
- if (event.key === 'Enter') {
144
+ if (event.code === 'Enter') {
145
145
  var _this$inputRef$curren12, _this$inputRef$curren13;
146
146
  onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm((_this$inputRef$curren12 = (_this$inputRef$curren13 = _this.inputRef.current) === null || _this$inputRef$curren13 === void 0 ? void 0 : _this$inputRef$curren13.value) !== null && _this$inputRef$curren12 !== void 0 ? _this$inputRef$curren12 : '', event);
147
147
  _this.lastHandledKeyboardEvent = Date.now();
148
148
  }
149
- if (event.key === 'Escape') {
149
+ if (event.code === 'Escape') {
150
150
  onCancel === null || onCancel === void 0 ? void 0 : onCancel(_this.initValue, event);
151
151
  _this.lastHandledKeyboardEvent = Date.now();
152
152
  }
@@ -325,7 +325,7 @@ var ConfirmControl = function ConfirmControl(props) {
325
325
  (_props$onConfirm = props.onConfirm) === null || _props$onConfirm === void 0 ? void 0 : _props$onConfirm.call(props, (_props$value = props.value) !== null && _props$value !== void 0 ? _props$value : '', event);
326
326
  }, [props.onConfirm, props.value]);
327
327
  var handleKeydown = _react["default"].useCallback(function (event) {
328
- if (event.key === 'Enter' || event.key === 'Space') {
328
+ if (event.code === 'Enter' || event.code === 'Space') {
329
329
  event.preventDefault();
330
330
  event.stopPropagation();
331
331
  handleConfirm(event);
@@ -366,7 +366,7 @@ var CancelControl = function CancelControl(props) {
366
366
  (_props$onCancel = props.onCancel) === null || _props$onCancel === void 0 ? void 0 : _props$onCancel.call(props, (_props$value2 = props.value) !== null && _props$value2 !== void 0 ? _props$value2 : '', event);
367
367
  }, [props.onCancel, props.value]);
368
368
  var handleKeydown = _react["default"].useCallback(function (event) {
369
- if (event.key === 'Enter' || event.key === 'Space') {
369
+ if (event.code === 'Enter' || event.code === 'Space') {
370
370
  event.preventDefault();
371
371
  event.stopPropagation();
372
372
  handleCancel(event);