@spectrum-web-components/tabs 1.1.0 → 1.2.0-beta.0

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 (141) hide show
  1. package/package.json +7 -7
  2. package/sp-tab-panel.d.ts +6 -0
  3. package/sp-tab-panel.dev.js +5 -0
  4. package/sp-tab-panel.dev.js.map +7 -0
  5. package/sp-tab-panel.js +2 -0
  6. package/sp-tab-panel.js.map +7 -0
  7. package/sp-tab.d.ts +6 -0
  8. package/sp-tab.dev.js +5 -0
  9. package/sp-tab.dev.js.map +7 -0
  10. package/sp-tab.js +2 -0
  11. package/sp-tab.js.map +7 -0
  12. package/sp-tabs-overflow.d.ts +6 -0
  13. package/sp-tabs-overflow.dev.js +5 -0
  14. package/sp-tabs-overflow.dev.js.map +7 -0
  15. package/sp-tabs-overflow.js +2 -0
  16. package/sp-tabs-overflow.js.map +7 -0
  17. package/sp-tabs.d.ts +6 -0
  18. package/sp-tabs.dev.js +5 -0
  19. package/sp-tabs.dev.js.map +7 -0
  20. package/sp-tabs.js +2 -0
  21. package/sp-tabs.js.map +7 -0
  22. package/src/Tab.d.ts +28 -0
  23. package/src/Tab.dev.js +94 -0
  24. package/src/Tab.dev.js.map +7 -0
  25. package/src/Tab.js +10 -0
  26. package/src/Tab.js.map +7 -0
  27. package/src/TabPanel.d.ts +16 -0
  28. package/src/TabPanel.dev.js +66 -0
  29. package/src/TabPanel.dev.js.map +7 -0
  30. package/src/TabPanel.js +7 -0
  31. package/src/TabPanel.js.map +7 -0
  32. package/src/Tabs.d.ts +102 -0
  33. package/src/Tabs.dev.js +457 -0
  34. package/src/Tabs.dev.js.map +7 -0
  35. package/src/Tabs.js +30 -0
  36. package/src/Tabs.js.map +7 -0
  37. package/src/TabsOverflow.d.ts +31 -0
  38. package/src/TabsOverflow.dev.js +165 -0
  39. package/src/TabsOverflow.dev.js.map +7 -0
  40. package/src/TabsOverflow.js +36 -0
  41. package/src/TabsOverflow.js.map +7 -0
  42. package/src/index.d.ts +4 -0
  43. package/src/index.dev.js +6 -0
  44. package/src/index.dev.js.map +7 -0
  45. package/src/index.js +2 -0
  46. package/src/index.js.map +7 -0
  47. package/src/spectrum-tab.css.d.ts +2 -0
  48. package/src/spectrum-tab.css.dev.js +7 -0
  49. package/src/spectrum-tab.css.dev.js.map +7 -0
  50. package/src/spectrum-tab.css.js +4 -0
  51. package/src/spectrum-tab.css.js.map +7 -0
  52. package/src/spectrum-tabs-sizes.css.d.ts +2 -0
  53. package/src/spectrum-tabs-sizes.css.dev.js +7 -0
  54. package/src/spectrum-tabs-sizes.css.dev.js.map +7 -0
  55. package/src/spectrum-tabs-sizes.css.js +4 -0
  56. package/src/spectrum-tabs-sizes.css.js.map +7 -0
  57. package/src/spectrum-tabs.css.d.ts +2 -0
  58. package/src/spectrum-tabs.css.dev.js +7 -0
  59. package/src/spectrum-tabs.css.dev.js.map +7 -0
  60. package/src/spectrum-tabs.css.js +4 -0
  61. package/src/spectrum-tabs.css.js.map +7 -0
  62. package/src/tab-overrides.css.d.ts +2 -0
  63. package/src/tab-overrides.css.dev.js +7 -0
  64. package/src/tab-overrides.css.dev.js.map +7 -0
  65. package/src/tab-overrides.css.js +4 -0
  66. package/src/tab-overrides.css.js.map +7 -0
  67. package/src/tab-panel.css.d.ts +2 -0
  68. package/src/tab-panel.css.dev.js +7 -0
  69. package/src/tab-panel.css.dev.js.map +7 -0
  70. package/src/tab-panel.css.js +4 -0
  71. package/src/tab-panel.css.js.map +7 -0
  72. package/src/tab.css.d.ts +2 -0
  73. package/src/tab.css.dev.js +7 -0
  74. package/src/tab.css.dev.js.map +7 -0
  75. package/src/tab.css.js +4 -0
  76. package/src/tab.css.js.map +7 -0
  77. package/src/tabs-overflow.css.d.ts +2 -0
  78. package/src/tabs-overflow.css.dev.js +7 -0
  79. package/src/tabs-overflow.css.dev.js.map +7 -0
  80. package/src/tabs-overflow.css.js +4 -0
  81. package/src/tabs-overflow.css.js.map +7 -0
  82. package/src/tabs-overrides.css.d.ts +2 -0
  83. package/src/tabs-overrides.css.dev.js +7 -0
  84. package/src/tabs-overrides.css.dev.js.map +7 -0
  85. package/src/tabs-overrides.css.js +4 -0
  86. package/src/tabs-overrides.css.js.map +7 -0
  87. package/src/tabs-sizes-overrides.css.d.ts +2 -0
  88. package/src/tabs-sizes-overrides.css.dev.js +7 -0
  89. package/src/tabs-sizes-overrides.css.dev.js.map +7 -0
  90. package/src/tabs-sizes-overrides.css.js +4 -0
  91. package/src/tabs-sizes-overrides.css.js.map +7 -0
  92. package/src/tabs-sizes.css.d.ts +2 -0
  93. package/src/tabs-sizes.css.dev.js +7 -0
  94. package/src/tabs-sizes.css.dev.js.map +7 -0
  95. package/src/tabs-sizes.css.js +4 -0
  96. package/src/tabs-sizes.css.js.map +7 -0
  97. package/src/tabs.css.d.ts +2 -0
  98. package/src/tabs.css.dev.js +7 -0
  99. package/src/tabs.css.dev.js.map +7 -0
  100. package/src/tabs.css.js +4 -0
  101. package/src/tabs.css.js.map +7 -0
  102. package/stories/index.js +53 -0
  103. package/stories/index.js.map +7 -0
  104. package/stories/tabs-horizontal-sizes.stories.js +91 -0
  105. package/stories/tabs-horizontal-sizes.stories.js.map +7 -0
  106. package/stories/tabs-overflow-panel-sizes.stories.js +35 -0
  107. package/stories/tabs-overflow-panel-sizes.stories.js.map +7 -0
  108. package/stories/tabs-overflow-sizes.stories.js +31 -0
  109. package/stories/tabs-overflow-sizes.stories.js.map +7 -0
  110. package/stories/tabs-overflow.stories.js +37 -0
  111. package/stories/tabs-overflow.stories.js.map +7 -0
  112. package/stories/tabs-vertical-right-sizes.stories.js +88 -0
  113. package/stories/tabs-vertical-right-sizes.stories.js.map +7 -0
  114. package/stories/tabs-vertical-sizes.stories.js +88 -0
  115. package/stories/tabs-vertical-sizes.stories.js.map +7 -0
  116. package/stories/tabs.stories.js +504 -0
  117. package/stories/tabs.stories.js.map +7 -0
  118. package/test/benchmark/basic-test.js +13 -0
  119. package/test/benchmark/basic-test.js.map +7 -0
  120. package/test/tab.test.js +47 -0
  121. package/test/tab.test.js.map +7 -0
  122. package/test/tabs-horizontal-sizes.test-vrt.js +5 -0
  123. package/test/tabs-horizontal-sizes.test-vrt.js.map +7 -0
  124. package/test/tabs-memory.test.js +13 -0
  125. package/test/tabs-memory.test.js.map +7 -0
  126. package/test/tabs-overflow-panel-sizes.test-vrt.js +5 -0
  127. package/test/tabs-overflow-panel-sizes.test-vrt.js.map +7 -0
  128. package/test/tabs-overflow-sizes.test-vrt.js +5 -0
  129. package/test/tabs-overflow-sizes.test-vrt.js.map +7 -0
  130. package/test/tabs-overflow.test-vrt.js +5 -0
  131. package/test/tabs-overflow.test-vrt.js.map +7 -0
  132. package/test/tabs-overflow.test.js +389 -0
  133. package/test/tabs-overflow.test.js.map +7 -0
  134. package/test/tabs-vertical-right-sizes.test-vrt.js +5 -0
  135. package/test/tabs-vertical-right-sizes.test-vrt.js.map +7 -0
  136. package/test/tabs-vertical-sizes.test-vrt.js +5 -0
  137. package/test/tabs-vertical-sizes.test-vrt.js.map +7 -0
  138. package/test/tabs.test-vrt.js +5 -0
  139. package/test/tabs.test-vrt.js.map +7 -0
  140. package/test/tabs.test.js +507 -0
  141. package/test/tabs.test.js.map +7 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spectrum-web-components/tabs",
3
- "version": "1.1.0",
3
+ "version": "1.2.0-beta.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -88,11 +88,11 @@
88
88
  ],
89
89
  "dependencies": {
90
90
  "@lit-labs/observers": "^2.0.2",
91
- "@spectrum-web-components/base": "^1.1.0",
92
- "@spectrum-web-components/icon": "^1.1.0",
93
- "@spectrum-web-components/icons-ui": "^1.1.0",
94
- "@spectrum-web-components/reactive-controllers": "^1.1.0",
95
- "@spectrum-web-components/shared": "^1.1.0"
91
+ "@spectrum-web-components/base": "^1.2.0-beta.0",
92
+ "@spectrum-web-components/icon": "^1.2.0-beta.0",
93
+ "@spectrum-web-components/icons-ui": "^1.2.0-beta.0",
94
+ "@spectrum-web-components/reactive-controllers": "^1.2.0-beta.0",
95
+ "@spectrum-web-components/shared": "^1.2.0-beta.0"
96
96
  },
97
97
  "devDependencies": {
98
98
  "@spectrum-css/tabs": "6.0.0-s2-foundations.16"
@@ -103,5 +103,5 @@
103
103
  "./sp-*.js",
104
104
  "./**/*.dev.js"
105
105
  ],
106
- "gitHead": "e3c6e52501451acc6fa85b10dd718267b80a01ab"
106
+ "gitHead": "809bd734313fe289067108bf1dea2a48cc103a9f"
107
107
  }
@@ -0,0 +1,6 @@
1
+ import { TabPanel } from './src/TabPanel.js';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'sp-tab-panel': TabPanel;
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ import { TabPanel } from "./src/TabPanel.dev.js";
3
+ import { defineElement } from "@spectrum-web-components/base/src/define-element.js";
4
+ defineElement("sp-tab-panel", TabPanel);
5
+ //# sourceMappingURL=sp-tab-panel.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-tab-panel.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { TabPanel } from './src/TabPanel.dev.js'\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-tab-panel', TabPanel);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tab-panel': TabPanel;\n }\n}\n"],
5
+ "mappings": ";AAYA,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAE9B,cAAc,gBAAgB,QAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";import{TabPanel as e}from"./src/TabPanel.js";import{defineElement as a}from"@spectrum-web-components/base/src/define-element.js";a("sp-tab-panel",e);
2
+ //# sourceMappingURL=sp-tab-panel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-tab-panel.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { TabPanel } from './src/TabPanel.js';\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-tab-panel', TabPanel);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tab-panel': TabPanel;\n }\n}\n"],
5
+ "mappings": "aAYA,OAAS,YAAAA,MAAgB,oBACzB,OAAS,iBAAAC,MAAqB,sDAE9BA,EAAc,eAAgBD,CAAQ",
6
+ "names": ["TabPanel", "defineElement"]
7
+ }
package/sp-tab.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { Tab } from './src/Tab.js';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'sp-tab': Tab;
5
+ }
6
+ }
package/sp-tab.dev.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ import { Tab } from "./src/Tab.dev.js";
3
+ import { defineElement } from "@spectrum-web-components/base/src/define-element.js";
4
+ defineElement("sp-tab", Tab);
5
+ //# sourceMappingURL=sp-tab.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-tab.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { Tab } from './src/Tab.dev.js'\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-tab', Tab);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tab': Tab;\n }\n}\n"],
5
+ "mappings": ";AAYA,SAAS,WAAW;AACpB,SAAS,qBAAqB;AAE9B,cAAc,UAAU,GAAG;",
6
+ "names": []
7
+ }
package/sp-tab.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";import{Tab as e}from"./src/Tab.js";import{defineElement as a}from"@spectrum-web-components/base/src/define-element.js";a("sp-tab",e);
2
+ //# sourceMappingURL=sp-tab.js.map
package/sp-tab.js.map ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-tab.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { Tab } from './src/Tab.js';\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-tab', Tab);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tab': Tab;\n }\n}\n"],
5
+ "mappings": "aAYA,OAAS,OAAAA,MAAW,eACpB,OAAS,iBAAAC,MAAqB,sDAE9BA,EAAc,SAAUD,CAAG",
6
+ "names": ["Tab", "defineElement"]
7
+ }
@@ -0,0 +1,6 @@
1
+ import { TabsOverflow } from './src/TabsOverflow.js';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'sp-tabs-overflow': TabsOverflow;
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ import { TabsOverflow } from "./src/TabsOverflow.dev.js";
3
+ import { defineElement } from "@spectrum-web-components/base/src/define-element.js";
4
+ defineElement("sp-tabs-overflow", TabsOverflow);
5
+ //# sourceMappingURL=sp-tabs-overflow.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-tabs-overflow.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { TabsOverflow } from './src/TabsOverflow.dev.js'\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-tabs-overflow', TabsOverflow);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tabs-overflow': TabsOverflow;\n }\n}\n"],
5
+ "mappings": ";AAWA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAE9B,cAAc,oBAAoB,YAAY;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";import{TabsOverflow as e}from"./src/TabsOverflow.js";import{defineElement as o}from"@spectrum-web-components/base/src/define-element.js";o("sp-tabs-overflow",e);
2
+ //# sourceMappingURL=sp-tabs-overflow.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-tabs-overflow.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { TabsOverflow } from './src/TabsOverflow.js';\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-tabs-overflow', TabsOverflow);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tabs-overflow': TabsOverflow;\n }\n}\n"],
5
+ "mappings": "aAWA,OAAS,gBAAAA,MAAoB,wBAC7B,OAAS,iBAAAC,MAAqB,sDAE9BA,EAAc,mBAAoBD,CAAY",
6
+ "names": ["TabsOverflow", "defineElement"]
7
+ }
package/sp-tabs.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { Tabs } from './src/Tabs.js';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'sp-tabs': Tabs;
5
+ }
6
+ }
package/sp-tabs.dev.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ import { Tabs } from "./src/Tabs.dev.js";
3
+ import { defineElement } from "@spectrum-web-components/base/src/define-element.js";
4
+ defineElement("sp-tabs", Tabs);
5
+ //# sourceMappingURL=sp-tabs.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-tabs.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { Tabs } from './src/Tabs.dev.js'\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-tabs', Tabs);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tabs': Tabs;\n }\n}\n"],
5
+ "mappings": ";AAYA,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAE9B,cAAc,WAAW,IAAI;",
6
+ "names": []
7
+ }
package/sp-tabs.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";import{Tabs as e}from"./src/Tabs.js";import{defineElement as a}from"@spectrum-web-components/base/src/define-element.js";a("sp-tabs",e);
2
+ //# sourceMappingURL=sp-tabs.js.map
package/sp-tabs.js.map ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-tabs.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { Tabs } from './src/Tabs.js';\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-tabs', Tabs);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-tabs': Tabs;\n }\n}\n"],
5
+ "mappings": "aAYA,OAAS,QAAAA,MAAY,gBACrB,OAAS,iBAAAC,MAAqB,sDAE9BA,EAAc,UAAWD,CAAI",
6
+ "names": ["Tabs", "defineElement"]
7
+ }
package/src/Tab.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ import { CSSResultArray, PropertyValues, SpectrumElement, TemplateResult } from '@spectrum-web-components/base';
2
+ declare const Tab_base: typeof SpectrumElement & {
3
+ new (...args: any[]): import("@spectrum-web-components/shared/src/observe-slot-presence.js").SlotPresenceObservingInterface;
4
+ prototype: import("@spectrum-web-components/shared/src/observe-slot-presence.js").SlotPresenceObservingInterface;
5
+ } & {
6
+ new (...args: any[]): import("@spectrum-web-components/shared/src/observe-slot-text.js").SlotTextObservingInterface;
7
+ prototype: import("@spectrum-web-components/shared/src/observe-slot-text.js").SlotTextObservingInterface;
8
+ };
9
+ /**
10
+ * @element sp-tab
11
+ *
12
+ * @slot - text label of the Tab
13
+ * @slot icon - The icon that appears on the left of the label
14
+ */
15
+ export declare class Tab extends Tab_base {
16
+ static get styles(): CSSResultArray;
17
+ protected get hasIcon(): boolean;
18
+ protected get hasLabel(): boolean;
19
+ disabled: boolean;
20
+ label: string;
21
+ selected: boolean;
22
+ vertical: boolean;
23
+ value: string;
24
+ protected render(): TemplateResult;
25
+ protected firstUpdated(changes: PropertyValues): void;
26
+ protected updated(changes: PropertyValues): void;
27
+ }
28
+ export {};
package/src/Tab.dev.js ADDED
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
+ if (kind && result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ import {
13
+ html,
14
+ nothing,
15
+ SpectrumElement
16
+ } from "@spectrum-web-components/base";
17
+ import { property } from "@spectrum-web-components/base/src/decorators.js";
18
+ import { FocusVisiblePolyfillMixin } from "@spectrum-web-components/shared/src/focus-visible.js";
19
+ import { ObserveSlotPresence } from "@spectrum-web-components/shared/src/observe-slot-presence.js";
20
+ import { ObserveSlotText } from "@spectrum-web-components/shared/src/observe-slot-text.js";
21
+ import { randomID } from "@spectrum-web-components/shared/src/random-id.js";
22
+ import tabItemStyles from "./tab.css.js";
23
+ export class Tab extends FocusVisiblePolyfillMixin(
24
+ ObserveSlotText(ObserveSlotPresence(SpectrumElement, '[slot="icon"]'), "")
25
+ ) {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.disabled = false;
29
+ this.label = "";
30
+ this.selected = false;
31
+ this.vertical = false;
32
+ this.value = "";
33
+ }
34
+ static get styles() {
35
+ return [tabItemStyles];
36
+ }
37
+ get hasIcon() {
38
+ return this.slotContentIsPresent;
39
+ }
40
+ get hasLabel() {
41
+ return !!this.label || this.slotHasContent;
42
+ }
43
+ render() {
44
+ return html`
45
+ ${this.hasIcon ? html`
46
+ <slot name="icon"></slot>
47
+ ` : nothing}
48
+ <label id="item-label" ?hidden=${!this.hasLabel}>
49
+ ${this.slotHasContent ? nothing : this.label}
50
+ <slot>${this.label}</slot>
51
+ </label>
52
+ `;
53
+ }
54
+ firstUpdated(changes) {
55
+ super.firstUpdated(changes);
56
+ this.setAttribute("role", "tab");
57
+ if (!this.hasAttribute("id")) {
58
+ this.id = `sp-tab-${randomID()}`;
59
+ }
60
+ }
61
+ updated(changes) {
62
+ super.updated(changes);
63
+ if (changes.has("selected")) {
64
+ this.setAttribute(
65
+ "aria-selected",
66
+ this.selected ? "true" : "false"
67
+ );
68
+ this.setAttribute("tabindex", this.selected ? "0" : "-1");
69
+ }
70
+ if (changes.has("disabled")) {
71
+ if (this.disabled) {
72
+ this.setAttribute("aria-disabled", "true");
73
+ } else {
74
+ this.removeAttribute("aria-disabled");
75
+ }
76
+ }
77
+ }
78
+ }
79
+ __decorateClass([
80
+ property({ type: Boolean, reflect: true })
81
+ ], Tab.prototype, "disabled", 2);
82
+ __decorateClass([
83
+ property({ reflect: true })
84
+ ], Tab.prototype, "label", 2);
85
+ __decorateClass([
86
+ property({ type: Boolean, reflect: true })
87
+ ], Tab.prototype, "selected", 2);
88
+ __decorateClass([
89
+ property({ type: Boolean, reflect: true })
90
+ ], Tab.prototype, "vertical", 2);
91
+ __decorateClass([
92
+ property({ type: String, reflect: true })
93
+ ], Tab.prototype, "value", 2);
94
+ //# sourceMappingURL=Tab.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["Tab.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\nimport { ObserveSlotPresence } from '@spectrum-web-components/shared/src/observe-slot-presence.js';\nimport { ObserveSlotText } from '@spectrum-web-components/shared/src/observe-slot-text.js';\nimport { randomID } from '@spectrum-web-components/shared/src/random-id.js';\n\nimport tabItemStyles from './tab.css.js';\n\n/**\n * @element sp-tab\n *\n * @slot - text label of the Tab\n * @slot icon - The icon that appears on the left of the label\n */\nexport class Tab extends FocusVisiblePolyfillMixin(\n ObserveSlotText(ObserveSlotPresence(SpectrumElement, '[slot=\"icon\"]'), '')\n) {\n public static override get styles(): CSSResultArray {\n return [tabItemStyles];\n }\n\n protected get hasIcon(): boolean {\n return this.slotContentIsPresent;\n }\n\n protected get hasLabel(): boolean {\n return !!this.label || this.slotHasContent;\n }\n\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n @property({ reflect: true })\n public label = '';\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n @property({ type: String, reflect: true })\n public value = '';\n\n protected override render(): TemplateResult {\n return html`\n ${this.hasIcon\n ? html`\n <slot name=\"icon\"></slot>\n `\n : nothing}\n <label id=\"item-label\" ?hidden=${!this.hasLabel}>\n ${this.slotHasContent ? nothing : this.label}\n <slot>${this.label}</slot>\n </label>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'tab');\n if (!this.hasAttribute('id')) {\n this.id = `sp-tab-${randomID()}`;\n }\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('selected')) {\n this.setAttribute(\n 'aria-selected',\n this.selected ? 'true' : 'false'\n );\n this.setAttribute('tabindex', this.selected ? '0' : '-1');\n }\n if (changes.has('disabled')) {\n if (this.disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;AAYA;AAAA,EAEI;AAAA,EACA;AAAA,EAEA;AAAA,OAEG;AACP,SAAS,gBAAgB;AACzB,SAAS,iCAAiC;AAC1C,SAAS,2BAA2B;AACpC,SAAS,uBAAuB;AAChC,SAAS,gBAAgB;AAEzB,OAAO,mBAAmB;AAQnB,aAAM,YAAY;AAAA,EACrB,gBAAgB,oBAAoB,iBAAiB,eAAe,GAAG,EAAE;AAC7E,EAAE;AAAA,EAFK;AAAA;AAgBH,SAAO,WAAW;AAGlB,SAAO,QAAQ;AAGf,SAAO,WAAW;AAGlB,SAAO,WAAW;AAGlB,SAAO,QAAQ;AAAA;AAAA,EAzBf,WAA2B,SAAyB;AAChD,WAAO,CAAC,aAAa;AAAA,EACzB;AAAA,EAEA,IAAc,UAAmB;AAC7B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAc,WAAoB;AAC9B,WAAO,CAAC,CAAC,KAAK,SAAS,KAAK;AAAA,EAChC;AAAA,EAiBmB,SAAyB;AACxC,WAAO;AAAA,cACD,KAAK,UACD;AAAA;AAAA,sBAGA,OAAO;AAAA,6CACoB,CAAC,KAAK,QAAQ;AAAA,kBACzC,KAAK,iBAAiB,UAAU,KAAK,KAAK;AAAA,wBACpC,KAAK,KAAK;AAAA;AAAA;AAAA,EAG9B;AAAA,EAEmB,aAAa,SAA+B;AAC3D,UAAM,aAAa,OAAO;AAC1B,SAAK,aAAa,QAAQ,KAAK;AAC/B,QAAI,CAAC,KAAK,aAAa,IAAI,GAAG;AAC1B,WAAK,KAAK,UAAU,SAAS,CAAC;AAAA,IAClC;AAAA,EACJ;AAAA,EAEmB,QAAQ,SAA+B;AACtD,UAAM,QAAQ,OAAO;AACrB,QAAI,QAAQ,IAAI,UAAU,GAAG;AACzB,WAAK;AAAA,QACD;AAAA,QACA,KAAK,WAAW,SAAS;AAAA,MAC7B;AACA,WAAK,aAAa,YAAY,KAAK,WAAW,MAAM,IAAI;AAAA,IAC5D;AACA,QAAI,QAAQ,IAAI,UAAU,GAAG;AACzB,UAAI,KAAK,UAAU;AACf,aAAK,aAAa,iBAAiB,MAAM;AAAA,MAC7C,OAAO;AACH,aAAK,gBAAgB,eAAe;AAAA,MACxC;AAAA,IACJ;AAAA,EACJ;AACJ;AArDW;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAfjC,IAgBF;AAGA;AAAA,EADN,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GAlBlB,IAmBF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GArBjC,IAsBF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAxBjC,IAyBF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAK,CAAC;AAAA,GA3BhC,IA4BF;",
6
+ "names": []
7
+ }
package/src/Tab.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";var b=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var r=(o,l,e,i)=>{for(var t=i>1?void 0:i?n(l,e):l,a=o.length-1,d;a>=0;a--)(d=o[a])&&(t=(i?d(l,e,t):d(t))||t);return i&&t&&b(l,e,t),t};import{html as p,nothing as u,SpectrumElement as c}from"@spectrum-web-components/base";import{property as s}from"@spectrum-web-components/base/src/decorators.js";import{FocusVisiblePolyfillMixin as h}from"@spectrum-web-components/shared/src/focus-visible.js";import{ObserveSlotPresence as m}from"@spectrum-web-components/shared/src/observe-slot-presence.js";import{ObserveSlotText as f}from"@spectrum-web-components/shared/src/observe-slot-text.js";import{randomID as y}from"@spectrum-web-components/shared/src/random-id.js";import v from"./tab.css.js";export class Tab extends h(f(m(c,'[slot="icon"]'),"")){constructor(){super(...arguments);this.disabled=!1;this.label="";this.selected=!1;this.vertical=!1;this.value=""}static get styles(){return[v]}get hasIcon(){return this.slotContentIsPresent}get hasLabel(){return!!this.label||this.slotHasContent}render(){return p`
2
+ ${this.hasIcon?p`
3
+ <slot name="icon"></slot>
4
+ `:u}
5
+ <label id="item-label" ?hidden=${!this.hasLabel}>
6
+ ${this.slotHasContent?u:this.label}
7
+ <slot>${this.label}</slot>
8
+ </label>
9
+ `}firstUpdated(e){super.firstUpdated(e),this.setAttribute("role","tab"),this.hasAttribute("id")||(this.id=`sp-tab-${y()}`)}updated(e){super.updated(e),e.has("selected")&&(this.setAttribute("aria-selected",this.selected?"true":"false"),this.setAttribute("tabindex",this.selected?"0":"-1")),e.has("disabled")&&(this.disabled?this.setAttribute("aria-disabled","true"):this.removeAttribute("aria-disabled"))}}r([s({type:Boolean,reflect:!0})],Tab.prototype,"disabled",2),r([s({reflect:!0})],Tab.prototype,"label",2),r([s({type:Boolean,reflect:!0})],Tab.prototype,"selected",2),r([s({type:Boolean,reflect:!0})],Tab.prototype,"vertical",2),r([s({type:String,reflect:!0})],Tab.prototype,"value",2);
10
+ //# sourceMappingURL=Tab.js.map
package/src/Tab.js.map ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["Tab.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n nothing,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { FocusVisiblePolyfillMixin } from '@spectrum-web-components/shared/src/focus-visible.js';\nimport { ObserveSlotPresence } from '@spectrum-web-components/shared/src/observe-slot-presence.js';\nimport { ObserveSlotText } from '@spectrum-web-components/shared/src/observe-slot-text.js';\nimport { randomID } from '@spectrum-web-components/shared/src/random-id.js';\n\nimport tabItemStyles from './tab.css.js';\n\n/**\n * @element sp-tab\n *\n * @slot - text label of the Tab\n * @slot icon - The icon that appears on the left of the label\n */\nexport class Tab extends FocusVisiblePolyfillMixin(\n ObserveSlotText(ObserveSlotPresence(SpectrumElement, '[slot=\"icon\"]'), '')\n) {\n public static override get styles(): CSSResultArray {\n return [tabItemStyles];\n }\n\n protected get hasIcon(): boolean {\n return this.slotContentIsPresent;\n }\n\n protected get hasLabel(): boolean {\n return !!this.label || this.slotHasContent;\n }\n\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n @property({ reflect: true })\n public label = '';\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n @property({ type: String, reflect: true })\n public value = '';\n\n protected override render(): TemplateResult {\n return html`\n ${this.hasIcon\n ? html`\n <slot name=\"icon\"></slot>\n `\n : nothing}\n <label id=\"item-label\" ?hidden=${!this.hasLabel}>\n ${this.slotHasContent ? nothing : this.label}\n <slot>${this.label}</slot>\n </label>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'tab');\n if (!this.hasAttribute('id')) {\n this.id = `sp-tab-${randomID()}`;\n }\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n if (changes.has('selected')) {\n this.setAttribute(\n 'aria-selected',\n this.selected ? 'true' : 'false'\n );\n this.setAttribute('tabindex', this.selected ? '0' : '-1');\n }\n if (changes.has('disabled')) {\n if (this.disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n }\n}\n"],
5
+ "mappings": "qNAYA,OAEI,QAAAA,EACA,WAAAC,EAEA,mBAAAC,MAEG,gCACP,OAAS,YAAAC,MAAgB,kDACzB,OAAS,6BAAAC,MAAiC,uDAC1C,OAAS,uBAAAC,MAA2B,+DACpC,OAAS,mBAAAC,MAAuB,2DAChC,OAAS,YAAAC,MAAgB,mDAEzB,OAAOC,MAAmB,eAQnB,aAAM,YAAYJ,EACrBE,EAAgBD,EAAoBH,EAAiB,eAAe,EAAG,EAAE,CAC7E,CAAE,CAFK,kCAgBH,KAAO,SAAW,GAGlB,KAAO,MAAQ,GAGf,KAAO,SAAW,GAGlB,KAAO,SAAW,GAGlB,KAAO,MAAQ,GAzBf,WAA2B,QAAyB,CAChD,MAAO,CAACM,CAAa,CACzB,CAEA,IAAc,SAAmB,CAC7B,OAAO,KAAK,oBAChB,CAEA,IAAc,UAAoB,CAC9B,MAAO,CAAC,CAAC,KAAK,OAAS,KAAK,cAChC,CAiBmB,QAAyB,CACxC,OAAOR;AAAA,cACD,KAAK,QACDA;AAAA;AAAA,oBAGAC,CAAO;AAAA,6CACoB,CAAC,KAAK,QAAQ;AAAA,kBACzC,KAAK,eAAiBA,EAAU,KAAK,KAAK;AAAA,wBACpC,KAAK,KAAK;AAAA;AAAA,SAG9B,CAEmB,aAAaQ,EAA+B,CAC3D,MAAM,aAAaA,CAAO,EAC1B,KAAK,aAAa,OAAQ,KAAK,EAC1B,KAAK,aAAa,IAAI,IACvB,KAAK,GAAK,UAAUF,EAAS,CAAC,GAEtC,CAEmB,QAAQE,EAA+B,CACtD,MAAM,QAAQA,CAAO,EACjBA,EAAQ,IAAI,UAAU,IACtB,KAAK,aACD,gBACA,KAAK,SAAW,OAAS,OAC7B,EACA,KAAK,aAAa,WAAY,KAAK,SAAW,IAAM,IAAI,GAExDA,EAAQ,IAAI,UAAU,IAClB,KAAK,SACL,KAAK,aAAa,gBAAiB,MAAM,EAEzC,KAAK,gBAAgB,eAAe,EAGhD,CACJ,CArDWC,EAAA,CADNP,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAfjC,IAgBF,wBAGAO,EAAA,CADNP,EAAS,CAAE,QAAS,EAAK,CAAC,GAlBlB,IAmBF,qBAGAO,EAAA,CADNP,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GArBjC,IAsBF,wBAGAO,EAAA,CADNP,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAxBjC,IAyBF,wBAGAO,EAAA,CADNP,EAAS,CAAE,KAAM,OAAQ,QAAS,EAAK,CAAC,GA3BhC,IA4BF",
6
+ "names": ["html", "nothing", "SpectrumElement", "property", "FocusVisiblePolyfillMixin", "ObserveSlotPresence", "ObserveSlotText", "randomID", "tabItemStyles", "changes", "__decorateClass"]
7
+ }
@@ -0,0 +1,16 @@
1
+ import { PropertyValues, SpectrumElement, TemplateResult } from '@spectrum-web-components/base';
2
+ /**
3
+ * @element sp-tab-panel
4
+ *
5
+ * @slot - content of the Tab Panel
6
+ */
7
+ export declare class TabPanel extends SpectrumElement {
8
+ static styles: import("@spectrum-web-components/base").CSSResult[];
9
+ selected: boolean;
10
+ value: string;
11
+ protected handleFocusin(): void;
12
+ protected handleFocusout(): void;
13
+ protected render(): TemplateResult;
14
+ protected firstUpdated(): void;
15
+ protected updated(changes: PropertyValues<this>): void;
16
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
+ if (kind && result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ import {
13
+ html,
14
+ SpectrumElement
15
+ } from "@spectrum-web-components/base";
16
+ import { property } from "@spectrum-web-components/base/src/decorators.js";
17
+ import { randomID } from "@spectrum-web-components/shared/src/random-id.js";
18
+ import panelStyles from "./tab-panel.css.js";
19
+ export class TabPanel extends SpectrumElement {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.selected = false;
23
+ this.value = "";
24
+ }
25
+ handleFocusin() {
26
+ this.removeAttribute("tabindex");
27
+ }
28
+ handleFocusout() {
29
+ this.tabIndex = this.selected ? 0 : -1;
30
+ }
31
+ render() {
32
+ return html`
33
+ <slot
34
+ @focusin=${this.handleFocusin}
35
+ @focusout=${this.handleFocusout}
36
+ ></slot>
37
+ `;
38
+ }
39
+ firstUpdated() {
40
+ this.slot = "tab-panel";
41
+ this.setAttribute("role", "tabpanel");
42
+ this.tabIndex = 0;
43
+ if (!this.hasAttribute("id")) {
44
+ this.id = `sp-tab-panel-${randomID()}`;
45
+ }
46
+ }
47
+ updated(changes) {
48
+ if (changes.has("selected")) {
49
+ if (this.selected) {
50
+ this.removeAttribute("aria-hidden");
51
+ this.tabIndex = 0;
52
+ } else {
53
+ this.setAttribute("aria-hidden", "true");
54
+ this.tabIndex = -1;
55
+ }
56
+ }
57
+ }
58
+ }
59
+ TabPanel.styles = [panelStyles];
60
+ __decorateClass([
61
+ property({ type: Boolean, reflect: true })
62
+ ], TabPanel.prototype, "selected", 2);
63
+ __decorateClass([
64
+ property({ type: String, reflect: true })
65
+ ], TabPanel.prototype, "value", 2);
66
+ //# sourceMappingURL=TabPanel.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["TabPanel.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { randomID } from '@spectrum-web-components/shared/src/random-id.js';\n\nimport panelStyles from './tab-panel.css.js';\n\n/**\n * @element sp-tab-panel\n *\n * @slot - content of the Tab Panel\n */\nexport class TabPanel extends SpectrumElement {\n static override styles = [panelStyles];\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: String, reflect: true })\n public value = '';\n\n protected handleFocusin(): void {\n this.removeAttribute('tabindex');\n }\n\n protected handleFocusout(): void {\n this.tabIndex = this.selected ? 0 : -1;\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot\n @focusin=${this.handleFocusin}\n @focusout=${this.handleFocusout}\n ></slot>\n `;\n }\n\n protected override firstUpdated(): void {\n this.slot = 'tab-panel';\n this.setAttribute('role', 'tabpanel');\n this.tabIndex = 0;\n if (!this.hasAttribute('id')) {\n this.id = `sp-tab-panel-${randomID()}`;\n }\n }\n\n protected override updated(changes: PropertyValues<this>): void {\n if (changes.has('selected')) {\n if (this.selected) {\n this.removeAttribute('aria-hidden');\n this.tabIndex = 0;\n } else {\n this.setAttribute('aria-hidden', 'true');\n this.tabIndex = -1;\n }\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;AAYA;AAAA,EACI;AAAA,EAEA;AAAA,OAEG;AACP,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,OAAO,iBAAiB;AAOjB,aAAM,iBAAiB,gBAAgB;AAAA,EAAvC;AAAA;AAIH,SAAO,WAAW;AAGlB,SAAO,QAAQ;AAAA;AAAA,EAEL,gBAAsB;AAC5B,SAAK,gBAAgB,UAAU;AAAA,EACnC;AAAA,EAEU,iBAAuB;AAC7B,SAAK,WAAW,KAAK,WAAW,IAAI;AAAA,EACxC;AAAA,EAEmB,SAAyB;AACxC,WAAO;AAAA;AAAA,2BAEY,KAAK,aAAa;AAAA,4BACjB,KAAK,cAAc;AAAA;AAAA;AAAA,EAG3C;AAAA,EAEmB,eAAqB;AACpC,SAAK,OAAO;AACZ,SAAK,aAAa,QAAQ,UAAU;AACpC,SAAK,WAAW;AAChB,QAAI,CAAC,KAAK,aAAa,IAAI,GAAG;AAC1B,WAAK,KAAK,gBAAgB,SAAS,CAAC;AAAA,IACxC;AAAA,EACJ;AAAA,EAEmB,QAAQ,SAAqC;AAC5D,QAAI,QAAQ,IAAI,UAAU,GAAG;AACzB,UAAI,KAAK,UAAU;AACf,aAAK,gBAAgB,aAAa;AAClC,aAAK,WAAW;AAAA,MACpB,OAAO;AACH,aAAK,aAAa,eAAe,MAAM;AACvC,aAAK,WAAW;AAAA,MACpB;AAAA,IACJ;AAAA,EACJ;AACJ;AA9Ca,SACO,SAAS,CAAC,WAAW;AAG9B;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAHjC,SAIF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAK,CAAC;AAAA,GANhC,SAOF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=(s,t,i,r)=>{for(var e=r>1?void 0:r?u(t,i):t,o=s.length-1,d;o>=0;o--)(d=s[o])&&(e=(r?d(t,i,e):d(e))||e);return r&&e&&p(t,i,e),e};import{html as h,SpectrumElement as n}from"@spectrum-web-components/base";import{property as a}from"@spectrum-web-components/base/src/decorators.js";import{randomID as c}from"@spectrum-web-components/shared/src/random-id.js";import m from"./tab-panel.css.js";export class TabPanel extends n{constructor(){super(...arguments);this.selected=!1;this.value=""}handleFocusin(){this.removeAttribute("tabindex")}handleFocusout(){this.tabIndex=this.selected?0:-1}render(){return h`
2
+ <slot
3
+ @focusin=${this.handleFocusin}
4
+ @focusout=${this.handleFocusout}
5
+ ></slot>
6
+ `}firstUpdated(){this.slot="tab-panel",this.setAttribute("role","tabpanel"),this.tabIndex=0,this.hasAttribute("id")||(this.id=`sp-tab-panel-${c()}`)}updated(i){i.has("selected")&&(this.selected?(this.removeAttribute("aria-hidden"),this.tabIndex=0):(this.setAttribute("aria-hidden","true"),this.tabIndex=-1))}}TabPanel.styles=[m],l([a({type:Boolean,reflect:!0})],TabPanel.prototype,"selected",2),l([a({type:String,reflect:!0})],TabPanel.prototype,"value",2);
7
+ //# sourceMappingURL=TabPanel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["TabPanel.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { randomID } from '@spectrum-web-components/shared/src/random-id.js';\n\nimport panelStyles from './tab-panel.css.js';\n\n/**\n * @element sp-tab-panel\n *\n * @slot - content of the Tab Panel\n */\nexport class TabPanel extends SpectrumElement {\n static override styles = [panelStyles];\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: String, reflect: true })\n public value = '';\n\n protected handleFocusin(): void {\n this.removeAttribute('tabindex');\n }\n\n protected handleFocusout(): void {\n this.tabIndex = this.selected ? 0 : -1;\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot\n @focusin=${this.handleFocusin}\n @focusout=${this.handleFocusout}\n ></slot>\n `;\n }\n\n protected override firstUpdated(): void {\n this.slot = 'tab-panel';\n this.setAttribute('role', 'tabpanel');\n this.tabIndex = 0;\n if (!this.hasAttribute('id')) {\n this.id = `sp-tab-panel-${randomID()}`;\n }\n }\n\n protected override updated(changes: PropertyValues<this>): void {\n if (changes.has('selected')) {\n if (this.selected) {\n this.removeAttribute('aria-hidden');\n this.tabIndex = 0;\n } else {\n this.setAttribute('aria-hidden', 'true');\n this.tabIndex = -1;\n }\n }\n }\n}\n"],
5
+ "mappings": "qNAYA,OACI,QAAAA,EAEA,mBAAAC,MAEG,gCACP,OAAS,YAAAC,MAAgB,kDACzB,OAAS,YAAAC,MAAgB,mDAEzB,OAAOC,MAAiB,qBAOjB,aAAM,iBAAiBH,CAAgB,CAAvC,kCAIH,KAAO,SAAW,GAGlB,KAAO,MAAQ,GAEL,eAAsB,CAC5B,KAAK,gBAAgB,UAAU,CACnC,CAEU,gBAAuB,CAC7B,KAAK,SAAW,KAAK,SAAW,EAAI,EACxC,CAEmB,QAAyB,CACxC,OAAOD;AAAA;AAAA,2BAEY,KAAK,aAAa;AAAA,4BACjB,KAAK,cAAc;AAAA;AAAA,SAG3C,CAEmB,cAAqB,CACpC,KAAK,KAAO,YACZ,KAAK,aAAa,OAAQ,UAAU,EACpC,KAAK,SAAW,EACX,KAAK,aAAa,IAAI,IACvB,KAAK,GAAK,gBAAgBG,EAAS,CAAC,GAE5C,CAEmB,QAAQE,EAAqC,CACxDA,EAAQ,IAAI,UAAU,IAClB,KAAK,UACL,KAAK,gBAAgB,aAAa,EAClC,KAAK,SAAW,IAEhB,KAAK,aAAa,cAAe,MAAM,EACvC,KAAK,SAAW,IAG5B,CACJ,CA9Ca,SACO,OAAS,CAACD,CAAW,EAG9BE,EAAA,CADNJ,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAHjC,SAIF,wBAGAI,EAAA,CADNJ,EAAS,CAAE,KAAM,OAAQ,QAAS,EAAK,CAAC,GANhC,SAOF",
6
+ "names": ["html", "SpectrumElement", "property", "randomID", "panelStyles", "changes", "__decorateClass"]
7
+ }
package/src/Tabs.d.ts ADDED
@@ -0,0 +1,102 @@
1
+ import { CSSResult, CSSResultArray, PropertyValueMap, PropertyValues, TemplateResult } from '@spectrum-web-components/base';
2
+ import { ResizeController } from '@lit-labs/observers/resize-controller.js';
3
+ import { Tab } from './Tab.js';
4
+ import { Focusable } from '@spectrum-web-components/shared';
5
+ import { RovingTabindexController } from '@spectrum-web-components/reactive-controllers/src/RovingTabindex.js';
6
+ export declare const ScaledIndicator: {
7
+ baseSize: 100;
8
+ noSelectionStyle: string;
9
+ transformX(left: number, width: number): string;
10
+ transformY(top: number, height: number): string;
11
+ baseStyles(): CSSResult;
12
+ };
13
+ /**
14
+ * Given that the scroll needs to be on the right side of the viewport.
15
+ * Returns the coordonate x it needs to scroll so that the tab with given index is visible.
16
+ */
17
+ export declare function calculateScrollTargetForRightSide(index: number, direction: 'rtl' | 'ltr', tabs: Tab[], container: HTMLDivElement): number;
18
+ /**
19
+ * Given that the scroll needs to be on the left side of the viewport.
20
+ * Returns the coordonate x it needs to scroll so that the tab with given index is visible.
21
+ */
22
+ export declare function calculateScrollTargetForLeftSide(index: number, direction: 'rtl' | 'ltr', tabs: Tab[], container: HTMLDivElement): number;
23
+ declare const Tabs_base: typeof Focusable & {
24
+ new (...args: any[]): import("@spectrum-web-components/base").SizedElementInterface;
25
+ prototype: import("@spectrum-web-components/base").SizedElementInterface;
26
+ };
27
+ /**
28
+ * @element sp-tabs
29
+ *
30
+ * @slot - Tab elements to manage as a group
31
+ * @slot tab-panel - Tab Panel elements related to the listed Tab elements
32
+ * @csspart tablist - Container element for the slotted sp-tab elements
33
+ *
34
+ * @fires change - The selected Tab child has changed.
35
+ */
36
+ export declare class Tabs extends Tabs_base {
37
+ static get styles(): CSSResultArray;
38
+ /**
39
+ * Whether to activate a tab on keyboard focus or not.
40
+ *
41
+ * By default a tab is activated via a "click" interaction. This is specifically intended for when
42
+ * tab content cannot be displayed instantly, e.g. not all of the DOM content is available, etc.
43
+ * To learn more about "Deciding When to Make Selection Automatically Follow Focus", visit:
44
+ * https://w3c.github.io/aria-practices/#kbd_selection_follows_focus
45
+ */
46
+ auto: boolean;
47
+ /**
48
+ * The tab items are displayed closer together.
49
+ */
50
+ compact: boolean;
51
+ dir: 'ltr' | 'rtl';
52
+ direction: 'vertical' | 'vertical-right' | 'horizontal';
53
+ emphasized: boolean;
54
+ label: string;
55
+ enableTabsScroll: boolean;
56
+ /**
57
+ * The tab list is displayed without a border.
58
+ */
59
+ quiet: boolean;
60
+ selectionIndicatorStyle: string;
61
+ shouldAnimate: boolean;
62
+ private slotEl;
63
+ private tabList;
64
+ selected: string;
65
+ private set tabs(value);
66
+ private get tabs();
67
+ private _tabs;
68
+ constructor();
69
+ protected resizeController: ResizeController<void>;
70
+ rovingTabindexController: RovingTabindexController<Tab>;
71
+ /**
72
+ * @private
73
+ */
74
+ get focusElement(): Tab | this;
75
+ private limitDeltaToInterval;
76
+ /**
77
+ * Scrolls through the tabs component, on the X-axis, by a given ammount of pixels/ delta. The given delta is limited to the scrollable area of the tabs component.
78
+ * @param {number} delta - The ammount of pixels to scroll by. If the value is positive, the tabs will scroll to the right. If the value is negative, the tabs will scroll to the left.
79
+ * @param {ScrollBehavior} behavior - The scroll behavior to use. Defaults to 'smooth'.
80
+ */
81
+ scrollTabs(delta: number, behavior?: ScrollBehavior): void;
82
+ get scrollState(): Record<string, boolean>;
83
+ getUpdateComplete(): Promise<boolean>;
84
+ private getNecessaryAutoScroll;
85
+ scrollToSelection(): Promise<void>;
86
+ protected updated(changedProperties: PropertyValueMap<this>): void;
87
+ protected managePanels({ target, }: Event & {
88
+ target: HTMLSlotElement;
89
+ }): void;
90
+ protected render(): TemplateResult;
91
+ protected willUpdate(changes: PropertyValues): void;
92
+ private onTabsScroll;
93
+ private onClick;
94
+ private onKeyDown;
95
+ private selectTarget;
96
+ private onSlotChange;
97
+ private updateCheckedState;
98
+ private updateSelectionIndicator;
99
+ connectedCallback(): void;
100
+ disconnectedCallback(): void;
101
+ }
102
+ export {};