@plitzi/sdk-elements 0.37.1 → 0.37.3

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 (261) hide show
  1. package/CHANGELOG.md +1306 -0
  2. package/dist/Component/ComponentProvider.d.ts +1 -1
  3. package/dist/Component/ComponentProvider.mjs +10 -5
  4. package/dist/Element/JsxManager.d.ts +1 -1
  5. package/dist/Element/JsxManager.mjs +1 -0
  6. package/dist/Element/LayoutBody.d.ts +1 -1
  7. package/dist/Element/PluginManager.d.ts +1 -1
  8. package/dist/Element/PluginRemote.d.ts +3 -1
  9. package/dist/Element/PluginRemote.mjs +9 -9
  10. package/dist/Element/ReplicaProvider.d.ts +1 -1
  11. package/dist/Element/helpers/elementConstants.mjs +28 -0
  12. package/dist/Element/helpers/elementUtils.mjs +1 -1
  13. package/dist/Element/helpers/loadComponent.d.ts +6 -1
  14. package/dist/Element/helpers/loadComponent.mjs +7 -7
  15. package/dist/Element/helpers/pluginSelector.d.ts +1 -1
  16. package/dist/Element/helpers/pluginSelector.mjs +1 -0
  17. package/dist/Element/hocs/withElement.d.ts +1 -1
  18. package/dist/Element/hooks/useElementDataSource.mjs +23 -16
  19. package/dist/Element/hooks/useElementInternal.mjs +60 -52
  20. package/dist/Element/hooks/useInternalClassName.mjs +19 -18
  21. package/dist/Element/hooks/useKeyTriggers.d.ts +18 -0
  22. package/dist/Element/hooks/useKeyTriggers.mjs +36 -0
  23. package/dist/Element/hooks/useRootElementInteractions.mjs +70 -55
  24. package/dist/Element/hooks/useRscData.mjs +20 -15
  25. package/dist/components/ElementAdvancedEditor.d.ts +1 -1
  26. package/dist/dataSource/GlobalSources.mjs +115 -79
  27. package/dist/dataSource/getSourcesByElementId.mjs +2 -2
  28. package/dist/elements/advanced/BlockHtml/BlockHtml.d.ts +2 -2
  29. package/dist/elements/advanced/BlockHtml/Settings.d.ts +1 -1
  30. package/dist/elements/advanced/BlockHtml/index.d.ts +1 -1
  31. package/dist/elements/advanced/BlockJsx/BlockJsx.d.ts +2 -2
  32. package/dist/elements/advanced/BlockJsx/BlockJsx.mjs +1 -1
  33. package/dist/elements/advanced/BlockJsx/Settings.d.ts +1 -1
  34. package/dist/elements/advanced/BlockJsx/index.d.ts +1 -1
  35. package/dist/elements/advanced/Custom/Custom.d.ts +2 -2
  36. package/dist/elements/advanced/Custom/Settings.d.ts +1 -1
  37. package/dist/elements/advanced/Custom/index.d.ts +1 -1
  38. package/dist/elements/advanced/NodeHtml/declaration.d.ts +1 -1
  39. package/dist/elements/advanced/NodeHtml/index.d.ts +2 -2
  40. package/dist/elements/advanced/PlitziSdk/Settings.d.ts +1 -1
  41. package/dist/elements/advanced/Reference/Reference.d.ts +2 -2
  42. package/dist/elements/advanced/Reference/Settings.d.ts +1 -1
  43. package/dist/elements/advanced/Reference/index.d.ts +1 -1
  44. package/dist/elements/basic/Button/Button.d.ts +11 -4
  45. package/dist/elements/basic/Button/Button.mjs +5 -5
  46. package/dist/elements/basic/Button/Settings.d.ts +2 -1
  47. package/dist/elements/basic/Button/Settings.mjs +14 -7
  48. package/dist/elements/basic/Button/declaration.d.ts +8 -3
  49. package/dist/elements/basic/Button/declaration.mjs +14 -6
  50. package/dist/elements/basic/Button/index.d.ts +9 -4
  51. package/dist/elements/basic/Dropdown/Dropdown.d.ts +2 -2
  52. package/dist/elements/basic/Dropdown/Dropdown.mjs +48 -39
  53. package/dist/elements/basic/Dropdown/DropdownPopup/DropdownPopup.d.ts +2 -2
  54. package/dist/elements/basic/Dropdown/DropdownPopup/Settings.d.ts +1 -1
  55. package/dist/elements/basic/Dropdown/DropdownPopup/declaration.d.ts +2 -1
  56. package/dist/elements/basic/Dropdown/DropdownPopup/declaration.mjs +2 -1
  57. package/dist/elements/basic/Dropdown/DropdownPopup/index.d.ts +3 -2
  58. package/dist/elements/basic/Dropdown/Settings.d.ts +1 -1
  59. package/dist/elements/basic/Dropdown/declaration.d.ts +3 -0
  60. package/dist/elements/basic/Dropdown/declaration.mjs +9 -3
  61. package/dist/elements/basic/Dropdown/index.d.ts +7 -3
  62. package/dist/elements/basic/Dropdown/useDropdown.d.ts +6 -1
  63. package/dist/elements/basic/Dropdown/useDropdown.mjs +58 -41
  64. package/dist/elements/basic/Dropdown/useDropdownTrigger.d.ts +26 -0
  65. package/dist/elements/basic/Dropdown/useDropdownTrigger.mjs +30 -0
  66. package/dist/elements/basic/Heading/Heading.d.ts +2 -2
  67. package/dist/elements/basic/Heading/Settings.d.ts +1 -1
  68. package/dist/elements/basic/Heading/declaration.d.ts +9 -6
  69. package/dist/elements/basic/Heading/declaration.mjs +17 -9
  70. package/dist/elements/basic/Heading/index.d.ts +10 -7
  71. package/dist/elements/basic/Link/Link.d.ts +2 -2
  72. package/dist/elements/basic/Link/Link.mjs +5 -2
  73. package/dist/elements/basic/Link/Settings.d.ts +2 -1
  74. package/dist/elements/basic/Link/Settings.mjs +31 -24
  75. package/dist/elements/basic/Link/declaration.d.ts +5 -1
  76. package/dist/elements/basic/Link/declaration.mjs +16 -3
  77. package/dist/elements/basic/Link/index.d.ts +6 -2
  78. package/dist/elements/basic/Markdown/Markdown.d.ts +2 -2
  79. package/dist/elements/basic/Markdown/Settings.d.ts +1 -1
  80. package/dist/elements/basic/Markdown/declaration.d.ts +1 -1
  81. package/dist/elements/basic/Markdown/declaration.mjs +1 -1
  82. package/dist/elements/basic/Markdown/index.d.ts +2 -2
  83. package/dist/elements/basic/Paragraph/Paragraph.d.ts +2 -2
  84. package/dist/elements/basic/Paragraph/Settings.d.ts +1 -1
  85. package/dist/elements/basic/Paragraph/index.d.ts +1 -1
  86. package/dist/elements/basic/RichText/RichText.d.ts +2 -2
  87. package/dist/elements/basic/RichText/Settings.d.ts +1 -1
  88. package/dist/elements/basic/RichText/declaration.d.ts +3 -0
  89. package/dist/elements/basic/RichText/declaration.mjs +8 -3
  90. package/dist/elements/basic/RichText/index.d.ts +4 -1
  91. package/dist/elements/basic/Text/Settings.d.ts +1 -1
  92. package/dist/elements/basic/Text/Text.d.ts +2 -2
  93. package/dist/elements/basic/Text/declaration.d.ts +1 -1
  94. package/dist/elements/basic/Text/declaration.mjs +1 -1
  95. package/dist/elements/basic/Text/index.d.ts +2 -2
  96. package/dist/elements/basic/ThemeToggle/ThemeToggle.d.ts +2 -2
  97. package/dist/elements/basic/ThemeToggle/ThemeToggle.mjs +58 -62
  98. package/dist/elements/basic/ThemeToggle/declaration.d.ts +15 -1
  99. package/dist/elements/basic/ThemeToggle/declaration.mjs +12 -4
  100. package/dist/elements/basic/ThemeToggle/index.d.ts +16 -2
  101. package/dist/elements/declarations/index.d.ts +530 -21
  102. package/dist/elements/declarations/index.mjs +24 -22
  103. package/dist/elements/form/Form/Form.d.ts +2 -2
  104. package/dist/elements/form/Form/Form.mjs +37 -57
  105. package/dist/elements/form/Form/Settings.d.ts +1 -1
  106. package/dist/elements/form/Form/declaration.d.ts +60 -0
  107. package/dist/elements/form/Form/declaration.mjs +59 -3
  108. package/dist/elements/form/Form/index.d.ts +62 -2
  109. package/dist/elements/form/FormControl/FormControl.d.ts +19 -7
  110. package/dist/elements/form/FormControl/FormControl.mjs +138 -138
  111. package/dist/elements/form/FormControl/Settings.d.ts +3 -1
  112. package/dist/elements/form/FormControl/Settings.mjs +73 -57
  113. package/dist/elements/form/FormControl/components/Label.d.ts +3 -1
  114. package/dist/elements/form/FormControl/components/Label.mjs +20 -18
  115. package/dist/elements/form/FormControl/components/visuallyHidden.d.ts +6 -0
  116. package/dist/elements/form/FormControl/components/visuallyHidden.mjs +14 -0
  117. package/dist/elements/form/FormControl/declaration.d.ts +17 -0
  118. package/dist/elements/form/FormControl/declaration.mjs +56 -30
  119. package/dist/elements/form/FormControl/hocs/withFieldValue.d.ts +1 -1
  120. package/dist/elements/form/FormControl/hocs/withFieldValue.mjs +68 -61
  121. package/dist/elements/form/FormControl/index.d.ts +19 -2
  122. package/dist/elements/form/FormControl/inputs/Checkbox.d.ts +6 -1
  123. package/dist/elements/form/FormControl/inputs/Checkbox.mjs +5 -3
  124. package/dist/elements/form/FormControl/inputs/Hidden.d.ts +1 -1
  125. package/dist/elements/form/FormControl/inputs/Input.d.ts +8 -1
  126. package/dist/elements/form/FormControl/inputs/Input.mjs +44 -38
  127. package/dist/elements/form/FormControl/inputs/Select.d.ts +6 -1
  128. package/dist/elements/form/FormControl/inputs/Select.mjs +12 -10
  129. package/dist/elements/form/FormControl/inputs/Textarea.d.ts +8 -1
  130. package/dist/elements/form/FormControl/inputs/Textarea.mjs +26 -21
  131. package/dist/elements/form/FormControl/inputs/useFocusWhenShown.d.ts +7 -0
  132. package/dist/elements/form/FormControl/inputs/useFocusWhenShown.mjs +9 -0
  133. package/dist/elements/index.d.ts +3 -1
  134. package/dist/elements/index.mjs +16 -14
  135. package/dist/elements/internal/LayoutContainer/LayoutContainer.d.ts +2 -2
  136. package/dist/elements/internal/LayoutContainer/Settings.d.ts +1 -1
  137. package/dist/elements/internal/LayoutContainer/declaration.d.ts +3 -0
  138. package/dist/elements/internal/LayoutContainer/declaration.mjs +15 -3
  139. package/dist/elements/internal/LayoutContainer/index.d.ts +4 -1
  140. package/dist/elements/internal/LayoutPicker/LayoutPicker.d.ts +1 -1
  141. package/dist/elements/internal/Loading/Loading.d.ts +2 -2
  142. package/dist/elements/internal/Loading/index.d.ts +1 -1
  143. package/dist/elements/internal/NotFound/NotFound.d.ts +2 -2
  144. package/dist/elements/internal/NotFound/index.d.ts +1 -1
  145. package/dist/elements/internal/Page/Page.d.ts +2 -2
  146. package/dist/elements/internal/Page/Page.mjs +34 -43
  147. package/dist/elements/internal/Page/Settings.d.ts +1 -1
  148. package/dist/elements/internal/Page/declaration.d.ts +13 -0
  149. package/dist/elements/internal/Page/declaration.mjs +11 -0
  150. package/dist/elements/internal/Page/index.d.ts +14 -1
  151. package/dist/elements/media/FontAwesome/FontAwesome.d.ts +9 -2
  152. package/dist/elements/media/FontAwesome/FontAwesome.mjs +12 -5
  153. package/dist/elements/media/FontAwesome/Settings.d.ts +2 -1
  154. package/dist/elements/media/FontAwesome/Settings.mjs +29 -22
  155. package/dist/elements/media/FontAwesome/declaration.d.ts +1 -0
  156. package/dist/elements/media/FontAwesome/index.d.ts +2 -1
  157. package/dist/elements/media/Image/Image.d.ts +14 -3
  158. package/dist/elements/media/Image/Image.mjs +25 -25
  159. package/dist/elements/media/Image/Settings.d.ts +3 -1
  160. package/dist/elements/media/Image/Settings.mjs +29 -15
  161. package/dist/elements/media/Image/declaration.d.ts +7 -1
  162. package/dist/elements/media/Image/declaration.mjs +16 -3
  163. package/dist/elements/media/Image/index.d.ts +8 -2
  164. package/dist/elements/media/Video/Settings.d.ts +1 -1
  165. package/dist/elements/media/Video/Video.d.ts +2 -2
  166. package/dist/elements/media/Video/index.d.ts +1 -1
  167. package/dist/elements/provider/ApiContainer/ApiContainer.d.ts +11 -2
  168. package/dist/elements/provider/ApiContainer/ApiContainer.mjs +164 -198
  169. package/dist/elements/provider/ApiContainer/Settings.d.ts +2 -1
  170. package/dist/elements/provider/ApiContainer/Settings.mjs +129 -122
  171. package/dist/elements/provider/ApiContainer/components/FiltersInput/FiltersInput.d.ts +1 -1
  172. package/dist/elements/provider/ApiContainer/declaration.d.ts +88 -0
  173. package/dist/elements/provider/ApiContainer/declaration.mjs +112 -4
  174. package/dist/elements/provider/ApiContainer/helpers/isEmptyAnswer.d.ts +16 -0
  175. package/dist/elements/provider/ApiContainer/helpers/isEmptyAnswer.mjs +4 -0
  176. package/dist/elements/provider/ApiContainer/helpers/providerOutcome.d.ts +25 -0
  177. package/dist/elements/provider/ApiContainer/helpers/providerOutcome.mjs +7 -0
  178. package/dist/elements/provider/ApiContainer/helpers/queryInput.d.ts +5 -0
  179. package/dist/elements/provider/ApiContainer/helpers/queryInput.mjs +12 -0
  180. package/dist/elements/provider/ApiContainer/hooks/useAutoRefresh.d.ts +21 -0
  181. package/dist/elements/provider/ApiContainer/hooks/useAutoRefresh.mjs +18 -0
  182. package/dist/elements/provider/ApiContainer/index.d.ts +89 -1
  183. package/dist/elements/provider/Channel/Channel.d.ts +26 -0
  184. package/dist/elements/provider/Channel/Channel.mjs +92 -0
  185. package/dist/elements/provider/Channel/Settings.d.ts +9 -0
  186. package/dist/elements/provider/Channel/Settings.mjs +38 -0
  187. package/dist/elements/provider/Channel/declaration.d.ts +138 -0
  188. package/dist/elements/provider/Channel/declaration.mjs +125 -0
  189. package/dist/elements/provider/Channel/index.d.ts +137 -0
  190. package/dist/elements/provider/Channel/index.mjs +6 -0
  191. package/dist/elements/settings.mjs +25 -23
  192. package/dist/elements/structure/Container/Container.d.ts +17 -3
  193. package/dist/elements/structure/Container/Container.mjs +18 -9
  194. package/dist/elements/structure/Container/Settings.d.ts +4 -2
  195. package/dist/elements/structure/Container/Settings.mjs +110 -69
  196. package/dist/elements/structure/Container/declaration.d.ts +12 -1
  197. package/dist/elements/structure/Container/declaration.mjs +35 -3
  198. package/dist/elements/structure/Container/index.d.ts +7 -2
  199. package/dist/elements/structure/Container/index.mjs +3 -3
  200. package/dist/elements/structure/DialogContainer/DialogContainer.d.ts +2 -2
  201. package/dist/elements/structure/DialogContainer/DialogContainer.mjs +126 -153
  202. package/dist/elements/structure/DialogContainer/Settings.d.ts +1 -1
  203. package/dist/elements/structure/DialogContainer/declaration.d.ts +82 -1
  204. package/dist/elements/structure/DialogContainer/declaration.mjs +62 -1
  205. package/dist/elements/structure/DialogContainer/index.d.ts +83 -2
  206. package/dist/elements/structure/List/List.d.ts +2 -2
  207. package/dist/elements/structure/List/ListItem/ListItem.d.ts +2 -2
  208. package/dist/elements/structure/List/ListItem/Settings.d.ts +1 -1
  209. package/dist/elements/structure/List/ListItem/index.d.ts +1 -1
  210. package/dist/elements/structure/List/Settings.d.ts +1 -1
  211. package/dist/elements/structure/List/declaration.d.ts +4 -0
  212. package/dist/elements/structure/List/declaration.mjs +7 -3
  213. package/dist/elements/structure/List/index.d.ts +6 -2
  214. package/dist/elements/structure/List/modes/ListBasic.d.ts +1 -1
  215. package/dist/elements/structure/List/modes/ListControlled/ListControlled.d.ts +1 -1
  216. package/dist/elements/structure/List/modes/ListControlled/ListControlledItem.d.ts +1 -1
  217. package/dist/elements/structure/ModalContainer/ModalContainer.d.ts +2 -2
  218. package/dist/elements/structure/ModalContainer/ModalContainer.mjs +92 -107
  219. package/dist/elements/structure/ModalContainer/Settings.d.ts +1 -1
  220. package/dist/elements/structure/ModalContainer/declaration.d.ts +48 -2
  221. package/dist/elements/structure/ModalContainer/declaration.mjs +40 -2
  222. package/dist/elements/structure/ModalContainer/index.d.ts +49 -3
  223. package/dist/elements/structure/ModalContainer/metadataFromText.d.ts +1 -0
  224. package/dist/elements/structure/ModalContainer/metadataFromText.mjs +10 -0
  225. package/dist/elements/structure/ModalContainer/useModalDialog.d.ts +20 -0
  226. package/dist/elements/structure/ModalContainer/useModalDialog.mjs +31 -0
  227. package/dist/elements/structure/Pagination/Pagination.d.ts +7 -2
  228. package/dist/elements/structure/Pagination/Pagination.mjs +49 -52
  229. package/dist/elements/structure/Pagination/Settings.d.ts +2 -1
  230. package/dist/elements/structure/Pagination/Settings.mjs +16 -9
  231. package/dist/elements/structure/Pagination/declaration.d.ts +16 -0
  232. package/dist/elements/structure/Pagination/declaration.mjs +14 -3
  233. package/dist/elements/structure/Pagination/index.d.ts +17 -1
  234. package/dist/elements/structure/TabContainer/Settings.d.ts +1 -1
  235. package/dist/elements/structure/TabContainer/TabContainer.d.ts +2 -2
  236. package/dist/elements/structure/TabContainer/TabContainer.mjs +19 -17
  237. package/dist/elements/structure/TabContainer/TabContainerBody/Settings.d.ts +1 -1
  238. package/dist/elements/structure/TabContainer/TabContainerBody/TabContainerBody.d.ts +2 -2
  239. package/dist/elements/structure/TabContainer/TabContainerBody/TabContainerBody.mjs +8 -6
  240. package/dist/elements/structure/TabContainer/TabContainerBody/declaration.d.ts +1 -0
  241. package/dist/elements/structure/TabContainer/TabContainerBody/declaration.mjs +1 -0
  242. package/dist/elements/structure/TabContainer/TabContainerBody/index.d.ts +2 -1
  243. package/dist/elements/structure/TabContainer/TabContainerContext.d.ts +2 -0
  244. package/dist/elements/structure/TabContainer/TabContainerHeader/Settings.d.ts +1 -1
  245. package/dist/elements/structure/TabContainer/TabContainerHeader/TabContainerHeader.d.ts +2 -2
  246. package/dist/elements/structure/TabContainer/TabContainerHeader/TabContainerHeader.mjs +18 -14
  247. package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.d.ts +1 -0
  248. package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.mjs +1 -0
  249. package/dist/elements/structure/TabContainer/TabContainerHeader/index.d.ts +2 -1
  250. package/dist/elements/structure/TabContainer/TabContainerItem/Settings.d.ts +1 -1
  251. package/dist/elements/structure/TabContainer/TabContainerItem/TabContainerItem.d.ts +6 -2
  252. package/dist/elements/structure/TabContainer/TabContainerItem/TabContainerItem.mjs +48 -13
  253. package/dist/elements/structure/TabContainer/TabContainerItem/declaration.d.ts +1 -1
  254. package/dist/elements/structure/TabContainer/TabContainerItem/index.d.ts +1 -1
  255. package/dist/elements/structure/TabContainer/index.d.ts +6 -4
  256. package/dist/index.d.ts +570 -57
  257. package/dist/index.mjs +20 -17
  258. package/dist/realtime/useChannel.d.ts +35 -0
  259. package/dist/realtime/useChannel.mjs +57 -0
  260. package/package.json +75 -11
  261. package/dist/elements/media/FontAwesome/FontAwesome.stories-paused.d.ts +0 -1
@@ -4,9 +4,9 @@ export type TabContainerHeaderProps = {
4
4
  className: string;
5
5
  children: ReactNode;
6
6
  };
7
- declare const TabContainerHeader: ({ ref, className, children }: TabContainerHeaderProps) => import("react").JSX.Element;
7
+ declare const TabContainerHeader: ({ ref, className, children }: TabContainerHeaderProps) => import('react').JSX.Element;
8
8
  declare const _default: {
9
- (props: import('../../../../Element/hocs/withElement').WithElementProps<TabContainerHeaderProps>): import("react").JSX.Element;
9
+ (props: import('../../../../Element/hocs/withElement').WithElementProps<TabContainerHeaderProps>): import('react').JSX.Element;
10
10
  displayName: string;
11
11
  };
12
12
  export default _default;
@@ -6,31 +6,35 @@ import { jsx as c } from "react/jsx-runtime";
6
6
  import l from "clsx";
7
7
  //#region src/elements/structure/TabContainer/TabContainerHeader/TabContainerHeader.tsx
8
8
  var u = ({ ref: e, className: u = "", children: d }) => {
9
- let { tabSelected: f, onSelect: p } = o(n), { childrenParsed: m } = s(() => {
10
- let e = { childrenParsed: [] };
11
- return r.forEach(d, (t, n) => {
12
- if (!a(t)) return;
13
- let r = t.props;
14
- e.childrenParsed.push(i(t, {
15
- ...r,
9
+ let { baseId: f, tabSelected: p, onSelect: m } = o(n), { childrenParsed: h } = s(() => {
10
+ let e = { childrenParsed: [] }, t = r.toArray(d).filter(a).length;
11
+ return r.forEach(d, (n, r) => {
12
+ if (!a(n)) return;
13
+ let o = n.props;
14
+ e.childrenParsed.push(i(n, {
15
+ ...o,
16
16
  internalProps: {
17
- ...r.internalProps,
17
+ ...o.internalProps,
18
18
  isHeader: !0,
19
- onSelect: p,
20
- tabSelected: f,
21
- tabIndex: n
19
+ baseId: f,
20
+ onSelect: m,
21
+ tabSelected: p,
22
+ tabIndex: r,
23
+ tabCount: t
22
24
  }
23
25
  }));
24
26
  }), e;
25
27
  }, [
28
+ f,
26
29
  d,
27
- p,
28
- f
30
+ m,
31
+ p
29
32
  ]);
30
33
  return /* @__PURE__ */ c(t, {
31
34
  ref: e,
35
+ role: "tablist",
32
36
  className: l("plitzi-component__tab-container-header", u),
33
- children: m
37
+ children: h
34
38
  });
35
39
  }, d = e(u);
36
40
  //#endregion
@@ -4,6 +4,7 @@ import { AuthorableAttributes } from '@plitzi/sdk-shared/authoring/declare';
4
4
  export type TabContainerHeaderAttributes = AuthorableAttributes<TabContainerHeaderProps>;
5
5
  declare const declaration: {
6
6
  readonly type: "tabContainerHeader";
7
+ readonly ancestorType: "tabContainer";
7
8
  readonly content: {
8
9
  readonly attributes: {};
9
10
  readonly definition: {
@@ -2,6 +2,7 @@ import { elementDeclaration as e } from "@plitzi/sdk-shared/authoring/declare";
2
2
  //#region src/elements/structure/TabContainer/TabContainerHeader/declaration.ts
3
3
  var t = e()({
4
4
  type: "tabContainerHeader",
5
+ ancestorType: "tabContainer",
5
6
  content: {
6
7
  attributes: {},
7
8
  definition: {
@@ -1,8 +1,9 @@
1
1
  declare const TabContainerHeader: {
2
- (props: import('../../../../Element/hocs/withElement').WithElementProps<import('./TabContainerHeader').TabContainerHeaderProps>): import("react").JSX.Element;
2
+ (props: import('../../../../Element/hocs/withElement').WithElementProps<import('./TabContainerHeader').TabContainerHeaderProps>): import('react').JSX.Element;
3
3
  displayName: string;
4
4
  } & {
5
5
  readonly type: "tabContainerHeader";
6
+ readonly ancestorType: "tabContainer";
6
7
  readonly content: {
7
8
  readonly attributes: {};
8
9
  readonly definition: {
@@ -1,2 +1,2 @@
1
- declare const Settings: () => import("react").JSX.Element;
1
+ declare const Settings: () => import('react').JSX.Element;
2
2
  export default Settings;
@@ -3,14 +3,18 @@ export type TabContainerItemProps = {
3
3
  ref: RefObject<HTMLElement>;
4
4
  className: string;
5
5
  children: ReactNode;
6
+ baseId?: string;
6
7
  tabSelected?: number;
8
+ /** The item's position among its siblings — not the HTML attribute, which the tabs set themselves. */
7
9
  tabIndex?: number;
10
+ /** How many tabs the header holds, so the arrow keys can go round them. */
11
+ tabCount?: number;
8
12
  isHeader?: boolean;
9
13
  onSelect?: Dispatch<SetStateAction<number>>;
10
14
  };
11
- declare const TabContainerItem: ({ className, children, ref, tabSelected, tabIndex, isHeader, onSelect }: TabContainerItemProps) => import("react").JSX.Element;
15
+ declare const TabContainerItem: ({ className, children, ref, baseId, tabSelected, tabIndex: position, tabCount, isHeader, onSelect }: TabContainerItemProps) => import('react').JSX.Element;
12
16
  declare const _default: {
13
- (props: import('../../../../Element/hocs/withElement').WithElementProps<TabContainerItemProps>): import("react").JSX.Element;
17
+ (props: import('../../../../Element/hocs/withElement').WithElementProps<TabContainerItemProps>): import('react').JSX.Element;
14
18
  displayName: string;
15
19
  };
16
20
  export default _default;
@@ -4,21 +4,56 @@ import { useCallback as n } from "react";
4
4
  import { jsx as r } from "react/jsx-runtime";
5
5
  import i from "clsx";
6
6
  //#region src/elements/structure/TabContainer/TabContainerItem/TabContainerItem.tsx
7
- var a = ({ className: e = "", children: a, ref: o, tabSelected: s, tabIndex: c = 0, isHeader: l, onSelect: u }) => {
8
- let d = n(() => {
9
- l && s !== c && u?.(c);
7
+ var a = (e, t, n) => {
8
+ switch (e) {
9
+ case "ArrowRight":
10
+ case "ArrowDown": return (t + 1) % n;
11
+ case "ArrowLeft":
12
+ case "ArrowUp": return (t - 1 + n) % n;
13
+ case "Home": return 0;
14
+ case "End": return n - 1;
15
+ default: return;
16
+ }
17
+ }, o = ({ className: e = "", children: o, ref: s, baseId: c = "", tabSelected: l, tabIndex: u = 0, tabCount: d = 0, isHeader: f, onSelect: p }) => {
18
+ let m = l === u, h = `${c}_tab_${u}`, g = `${c}_panel_${u}`, _ = n(() => {
19
+ f && !m && p?.(u);
20
+ }, [
21
+ f,
22
+ m,
23
+ u,
24
+ p
25
+ ]), v = n((e) => {
26
+ if (e.key === "Enter" || e.key === " ") {
27
+ e.preventDefault(), p?.(u);
28
+ return;
29
+ }
30
+ let t = a(e.key, u, d);
31
+ t !== void 0 && d !== 0 && (e.preventDefault(), p?.(t), e.currentTarget.ownerDocument.getElementById(`${c}_tab_${t}`)?.focus());
10
32
  }, [
11
- l,
12
- s,
13
33
  c,
14
- u
15
- ]);
34
+ u,
35
+ d,
36
+ p
37
+ ]), y = f ? {
38
+ id: h,
39
+ role: "tab",
40
+ "aria-selected": m,
41
+ "aria-controls": g,
42
+ tabIndex: m ? 0 : -1,
43
+ onKeyDown: v
44
+ } : {
45
+ id: g,
46
+ role: "tabpanel",
47
+ "aria-labelledby": h,
48
+ tabIndex: 0
49
+ };
16
50
  return /* @__PURE__ */ r(t, {
17
- ref: o,
18
- onClick: d,
19
- className: i("plitzi-component__tab-container-item", e, { active: s === c }),
20
- children: a
51
+ ref: s,
52
+ onClick: _,
53
+ className: i("plitzi-component__tab-container-item", e, { active: m }),
54
+ ...c ? y : {},
55
+ children: o
21
56
  });
22
- }, o = e(a);
57
+ }, s = e(o);
23
58
  //#endregion
24
- export { a as TabContainerItem, o as default };
59
+ export { o as TabContainerItem, s as default };
@@ -1,7 +1,7 @@
1
1
  import { TabContainerItemProps } from './TabContainerItem';
2
2
  import { AuthorableAttributes } from '@plitzi/sdk-shared/authoring/declare';
3
3
  /** What this element can be authored with — its component's own props, minus what the runtime supplies. */
4
- export type TabContainerItemAttributes = AuthorableAttributes<TabContainerItemProps, 'tabSelected' | 'tabIndex' | 'isHeader' | 'onSelect'>;
4
+ export type TabContainerItemAttributes = AuthorableAttributes<TabContainerItemProps, 'baseId' | 'tabSelected' | 'tabIndex' | 'tabCount' | 'isHeader' | 'onSelect'>;
5
5
  declare const declaration: {
6
6
  readonly type: "tabContainerItem";
7
7
  readonly content: {
@@ -1,5 +1,5 @@
1
1
  declare const TabContainerItem: {
2
- (props: import('../../../../Element/hocs/withElement').WithElementProps<import('./TabContainerItem').TabContainerItemProps>): import("react").JSX.Element;
2
+ (props: import('../../../../Element/hocs/withElement').WithElementProps<import('./TabContainerItem').TabContainerItemProps>): import('react').JSX.Element;
3
3
  displayName: string;
4
4
  } & {
5
5
  readonly type: "tabContainerItem";
@@ -1,13 +1,14 @@
1
1
  declare const TabContainer: {
2
- (props: import('../../../Element/hocs/withElement').WithElementProps<import('./TabContainer').TabContainerProps>): import("react").JSX.Element;
2
+ (props: import('../../../Element/hocs/withElement').WithElementProps<import('./TabContainer').TabContainerProps>): import('react').JSX.Element;
3
3
  displayName: string;
4
4
  } & {
5
5
  plugins: {
6
6
  tabContainerHeader: {
7
- (props: import('../../../Element/hocs/withElement').WithElementProps<import('./TabContainerHeader/TabContainerHeader').TabContainerHeaderProps>): import("react").JSX.Element;
7
+ (props: import('../../../Element/hocs/withElement').WithElementProps<import('./TabContainerHeader/TabContainerHeader').TabContainerHeaderProps>): import('react').JSX.Element;
8
8
  displayName: string;
9
9
  } & {
10
10
  readonly type: "tabContainerHeader";
11
+ readonly ancestorType: "tabContainer";
11
12
  readonly content: {
12
13
  readonly attributes: {};
13
14
  readonly definition: {
@@ -56,10 +57,11 @@ declare const TabContainer: {
56
57
  readonly initialItems: readonly ["tabContainerItem", "tabContainerItem", "tabContainerItem"];
57
58
  } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<unknown>;
58
59
  tabContainerBody: {
59
- (props: import('../../../Element/hocs/withElement').WithElementProps<import('./TabContainerBody/TabContainerBody').TabContainerBodyProps>): import("react").JSX.Element;
60
+ (props: import('../../../Element/hocs/withElement').WithElementProps<import('./TabContainerBody/TabContainerBody').TabContainerBodyProps>): import('react').JSX.Element;
60
61
  displayName: string;
61
62
  } & {
62
63
  readonly type: "tabContainerBody";
64
+ readonly ancestorType: "tabContainer";
63
65
  readonly content: {
64
66
  readonly attributes: {};
65
67
  readonly definition: {
@@ -108,7 +110,7 @@ declare const TabContainer: {
108
110
  readonly initialItems: readonly ["tabContainerItem", "tabContainerItem", "tabContainerItem"];
109
111
  } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<unknown>;
110
112
  tabContainerItem: {
111
- (props: import('../../../Element/hocs/withElement').WithElementProps<import('./TabContainerItem/TabContainerItem').TabContainerItemProps>): import("react").JSX.Element;
113
+ (props: import('../../../Element/hocs/withElement').WithElementProps<import('./TabContainerItem/TabContainerItem').TabContainerItemProps>): import('react').JSX.Element;
112
114
  displayName: string;
113
115
  } & {
114
116
  readonly type: "tabContainerItem";