@svelte-thing/primitives 0.0.0 → 0.0.2

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 (120) hide show
  1. package/dist/{chunk-D7D4PA-g.mjs → _virtual/_rolldown/runtime.mjs} +1 -1
  2. package/dist/button/createButton.svelte.d.mts +9 -0
  3. package/dist/button/createButton.svelte.mjs +6 -0
  4. package/dist/button/index.d.mts +1 -8
  5. package/dist/button/index.mjs +1 -5
  6. package/dist/{index-C-ME1Tk9.d.mts → field/date/createPicker.svelte.d.mts} +1 -1
  7. package/dist/field/date/createPicker.svelte.mjs +27 -0
  8. package/dist/field/date/index.d.mts +1 -1
  9. package/dist/field/date/index.mjs +1 -26
  10. package/dist/{index-CA_POIj_.d.mts → field/error/createError.svelte.d.mts} +1 -1
  11. package/dist/field/error/createError.svelte.mjs +10 -0
  12. package/dist/field/error/index.d.mts +1 -1
  13. package/dist/field/error/index.mjs +1 -9
  14. package/dist/field/index.d.mts +10 -9
  15. package/dist/field/index.mjs +16 -9
  16. package/dist/{createInput.svelte-DTz79zNF.d.mts → field/input/createInput.svelte.d.mts} +1 -1
  17. package/dist/{createInput.svelte-DzcT9u1t.mjs → field/input/createInput.svelte.mjs} +2 -2
  18. package/dist/field/input/index.d.mts +1 -1
  19. package/dist/field/input/index.mjs +1 -1
  20. package/dist/{index-OI9KlY5x.d.mts → field/label/createLabel.svelte.d.mts} +1 -1
  21. package/dist/field/label/createLabel.svelte.mjs +15 -0
  22. package/dist/field/label/index.d.mts +1 -1
  23. package/dist/field/label/index.mjs +1 -14
  24. package/dist/field/password/context.d.mts +6 -0
  25. package/dist/field/password/context.mjs +5 -0
  26. package/dist/field/password/createPassword.svelte.d.mts +15 -0
  27. package/dist/field/password/createPassword.svelte.mjs +25 -0
  28. package/dist/field/password/createShow.svelte.d.mts +9 -0
  29. package/dist/field/password/createShow.svelte.mjs +35 -0
  30. package/dist/field/password/index.d.mts +3 -1
  31. package/dist/field/password/index.mjs +3 -60
  32. package/dist/field/root/context.d.mts +6 -0
  33. package/dist/{context-D77KIx26.mjs → field/root/context.mjs} +1 -1
  34. package/dist/{index-BLb5EVhG.d.mts → field/root/createRoot.svelte.d.mts} +1 -4
  35. package/dist/field/root/createRoot.svelte.mjs +79 -0
  36. package/dist/field/root/index.d.mts +2 -1
  37. package/dist/field/root/index.mjs +2 -78
  38. package/dist/index.d.mts +2 -2
  39. package/dist/index.mjs +2 -2
  40. package/dist/menu/index.d.mts +5 -4
  41. package/dist/menu/index.mjs +9 -5
  42. package/dist/menu/item/createItem.svelte.d.mts +14 -0
  43. package/dist/menu/item/createItem.svelte.mjs +86 -0
  44. package/dist/menu/item/index.d.mts +1 -13
  45. package/dist/menu/item/index.mjs +1 -85
  46. package/dist/menu/popup/createPopup.svelte.d.mts +19 -0
  47. package/dist/menu/popup/createPopup.svelte.mjs +121 -0
  48. package/dist/menu/popup/index.d.mts +1 -18
  49. package/dist/menu/popup/index.mjs +1 -120
  50. package/dist/menu/root/context.d.mts +6 -0
  51. package/dist/{context-BJAwVB1S.mjs → menu/root/context.mjs} +1 -1
  52. package/dist/menu/root/createRoot.svelte.d.mts +25 -0
  53. package/dist/menu/root/createRoot.svelte.mjs +69 -0
  54. package/dist/menu/root/index.d.mts +2 -27
  55. package/dist/menu/root/index.mjs +2 -68
  56. package/dist/menu/trigger/createTrigger.svelte.d.mts +13 -0
  57. package/dist/menu/trigger/createTrigger.svelte.mjs +27 -0
  58. package/dist/menu/trigger/index.d.mts +1 -12
  59. package/dist/menu/trigger/index.mjs +1 -26
  60. package/dist/pagination/content/createContent.svelte.d.mts +9 -0
  61. package/dist/pagination/content/createContent.svelte.mjs +6 -0
  62. package/dist/pagination/content/index.d.mts +1 -8
  63. package/dist/pagination/content/index.mjs +1 -5
  64. package/dist/pagination/ellipsis/createEllipsis.svelte.d.mts +9 -0
  65. package/dist/pagination/ellipsis/createEllipsis.svelte.mjs +6 -0
  66. package/dist/pagination/ellipsis/index.d.mts +1 -8
  67. package/dist/pagination/ellipsis/index.mjs +1 -5
  68. package/dist/pagination/index.d.mts +5 -5
  69. package/dist/pagination/index.mjs +5 -5
  70. package/dist/pagination/item/createItem.svelte.d.mts +9 -0
  71. package/dist/pagination/item/createItem.svelte.mjs +6 -0
  72. package/dist/pagination/item/index.d.mts +1 -8
  73. package/dist/pagination/item/index.mjs +1 -5
  74. package/dist/pagination/link/createLink.svelte.d.mts +13 -0
  75. package/dist/pagination/link/createLink.svelte.mjs +13 -0
  76. package/dist/pagination/link/index.d.mts +1 -12
  77. package/dist/pagination/link/index.mjs +1 -12
  78. package/dist/pagination/root/createRoot.svelte.d.mts +9 -0
  79. package/dist/pagination/root/createRoot.svelte.mjs +9 -0
  80. package/dist/pagination/root/index.d.mts +1 -8
  81. package/dist/pagination/root/index.mjs +1 -8
  82. package/dist/tab/index.d.mts +8 -9
  83. package/dist/tab/index.mjs +15 -9
  84. package/dist/{index-07sbgO0w.d.mts → tab/indicator/createIndicator.svelte.d.mts} +1 -1
  85. package/dist/tab/indicator/createIndicator.svelte.mjs +42 -0
  86. package/dist/tab/indicator/index.d.mts +1 -1
  87. package/dist/tab/indicator/index.mjs +1 -41
  88. package/dist/{index-CbchmhrC.d.mts → tab/list/createList.svelte.d.mts} +1 -1
  89. package/dist/tab/list/createList.svelte.mjs +20 -0
  90. package/dist/tab/list/index.d.mts +1 -1
  91. package/dist/tab/list/index.mjs +1 -19
  92. package/dist/{index-D2vzMU8o.d.mts → tab/panel/createPanel.svelte.d.mts} +1 -1
  93. package/dist/tab/panel/createPanel.svelte.mjs +28 -0
  94. package/dist/tab/panel/index.d.mts +1 -1
  95. package/dist/tab/panel/index.mjs +1 -27
  96. package/dist/tab/root/context.d.mts +6 -0
  97. package/dist/{context-DwEoOJU2.mjs → tab/root/context.mjs} +1 -1
  98. package/dist/{index-j-8eH9nJ.d.mts → tab/root/createRoot.svelte.d.mts} +1 -4
  99. package/dist/tab/root/createRoot.svelte.mjs +57 -0
  100. package/dist/tab/root/index.d.mts +2 -1
  101. package/dist/tab/root/index.mjs +2 -56
  102. package/dist/{index-DAHEDQQS.d.mts → tab/title/createTitle.svelte.d.mts} +1 -1
  103. package/dist/tab/title/createTitle.svelte.mjs +18 -0
  104. package/dist/tab/title/index.d.mts +1 -1
  105. package/dist/tab/title/index.mjs +1 -17
  106. package/dist/{index-B-PBb_8h.d.mts → tab/trigger/createTrigger.svelte.d.mts} +1 -1
  107. package/dist/tab/trigger/createTrigger.svelte.mjs +94 -0
  108. package/dist/tab/trigger/index.d.mts +1 -1
  109. package/dist/tab/trigger/index.mjs +1 -93
  110. package/dist/table/index.d.mts +2 -1
  111. package/dist/table/index.mjs +3 -1
  112. package/dist/table/row/context.d.mts +6 -0
  113. package/dist/table/row/context.mjs +5 -0
  114. package/dist/table/row/createRow.svelte.d.mts +14 -0
  115. package/dist/table/row/createRow.svelte.mjs +14 -0
  116. package/dist/table/row/index.d.mts +2 -16
  117. package/dist/table/row/index.mjs +2 -16
  118. package/package.json +146 -30
  119. package/dist/index-BVVgDSdq.d.mts +0 -1
  120. package/dist/index-Boej-mdy.d.mts +0 -25
@@ -1,42 +1,2 @@
1
- import { t as getRoot } from "../../context-DwEoOJU2.mjs";
2
- import { createAttachmentKey } from "svelte/attachments";
3
- //#region src/tab/indicator/createIndicator.svelte.ts
4
- function createIndicator() {
5
- const root = getRoot();
6
- const tabListSelector = $derived(`[data-tabs-list][id="${root.id}-list"]`);
7
- const id = $derived(`${root.id}-indicator`);
8
- const indicatorSelector = $derived(`[data-tabs-indicator][id="${id}"]`);
9
- let resizeTick = $state(0);
10
- return { props: {
11
- "data-tabs-indicator": "",
12
- get id() {
13
- return id;
14
- },
15
- [createAttachmentKey()](element) {
16
- const tabList = element.closest(tabListSelector);
17
- if (!tabList) return;
18
- const observer = new ResizeObserver(() => {
19
- resizeTick += 1;
20
- });
21
- observer.observe(tabList);
22
- return () => {
23
- observer.disconnect();
24
- };
25
- },
26
- get style() {
27
- if (typeof document === "undefined") return;
28
- const { value, direction, id } = root;
29
- const tabList = document.querySelector(indicatorSelector)?.closest(tabListSelector) ?? null;
30
- const selectedTab = tabList?.querySelector(`[data-tabs-trigger][id="${id}-trigger-${value}"]`);
31
- if (!tabList || value === null || !selectedTab) return;
32
- const rect = selectedTab.getBoundingClientRect();
33
- const width = Math.floor(rect.width);
34
- const height = Math.floor(rect.height);
35
- const right = direction === "ltr" ? tabList.scrollWidth - selectedTab.offsetLeft - width - tabList.clientLeft : selectedTab.offsetLeft - tabList.clientLeft;
36
- const bottom = tabList.scrollHeight - selectedTab.offsetTop - height - tabList.clientTop;
37
- return `--active-tab-left: ${selectedTab.offsetLeft - tabList.clientLeft}px;--active-tab-top: ${selectedTab.offsetTop - tabList.clientTop}px;--active-tab-width: ${width}px;--active-tab-height: ${height}px;--active-tab-right: ${right}px;--active-tab-bottom: ${bottom}px;`;
38
- }
39
- } };
40
- }
41
- //#endregion
1
+ import { createIndicator } from "./createIndicator.svelte.mjs";
42
2
  export { createIndicator };
@@ -6,4 +6,4 @@ interface ListState {
6
6
  }
7
7
  declare function createList(): ListState;
8
8
  //#endregion
9
- export { createList as n, ListState as t };
9
+ export { ListState, createList };
@@ -0,0 +1,20 @@
1
+ import { getRoot } from "../root/context.mjs";
2
+ //#region src/tab/list/createList.svelte.ts
3
+ function createList() {
4
+ const root = getRoot();
5
+ return { props: {
6
+ get id() {
7
+ return `${root.id}-list`;
8
+ },
9
+ get "aria-labelledby"() {
10
+ return root.hasTitle ? `${root.id}-title` : void 0;
11
+ },
12
+ get "data-orientation"() {
13
+ return root.orientation;
14
+ },
15
+ "data-tabs-list": "",
16
+ role: "tablist"
17
+ } };
18
+ }
19
+ //#endregion
20
+ export { createList };
@@ -1,2 +1,2 @@
1
- import { n as createList, t as ListState } from "../../index-CbchmhrC.mjs";
1
+ import { ListState, createList } from "./createList.svelte.mjs";
2
2
  export { ListState, createList };
@@ -1,20 +1,2 @@
1
- import { t as getRoot } from "../../context-DwEoOJU2.mjs";
2
- //#region src/tab/list/createList.svelte.ts
3
- function createList() {
4
- const root = getRoot();
5
- return { props: {
6
- get id() {
7
- return `${root.id}-list`;
8
- },
9
- get "aria-labelledby"() {
10
- return root.hasTitle ? `${root.id}-title` : void 0;
11
- },
12
- get "data-orientation"() {
13
- return root.orientation;
14
- },
15
- "data-tabs-list": "",
16
- role: "tablist"
17
- } };
18
- }
19
- //#endregion
1
+ import { createList } from "./createList.svelte.mjs";
20
2
  export { createList };
@@ -10,4 +10,4 @@ interface PanelState {
10
10
  }
11
11
  declare function createPanel<T extends CreatePanelProps>(props: Exact<CreatePanelProps, T>): PanelState;
12
12
  //#endregion
13
- export { PanelState as n, createPanel as r, CreatePanelProps as t };
13
+ export { CreatePanelProps, PanelState, createPanel };
@@ -0,0 +1,28 @@
1
+ import { getRoot } from "../root/context.mjs";
2
+ //#region src/tab/panel/createPanel.svelte.ts
3
+ function createPanel(props) {
4
+ const root = getRoot();
5
+ const isSelected = $derived(root.panel === props.value);
6
+ return { props: {
7
+ get "aria-labelledby"() {
8
+ return `${root.id}-trigger-${props.value}`;
9
+ },
10
+ get "data-orientation"() {
11
+ return root.orientation;
12
+ },
13
+ get "data-hidden"() {
14
+ return isSelected ? void 0 : "";
15
+ },
16
+ get hidden() {
17
+ return isSelected ? void 0 : "";
18
+ },
19
+ get id() {
20
+ return `${root.id}-panel-${props.value}`;
21
+ },
22
+ "data-tab-panel": "",
23
+ role: "tabpanel",
24
+ tabindex: 0
25
+ } };
26
+ }
27
+ //#endregion
28
+ export { createPanel };
@@ -1,2 +1,2 @@
1
- import { n as PanelState, r as createPanel, t as CreatePanelProps } from "../../index-D2vzMU8o.mjs";
1
+ import { CreatePanelProps, PanelState, createPanel } from "./createPanel.svelte.mjs";
2
2
  export { CreatePanelProps, PanelState, createPanel };
@@ -1,28 +1,2 @@
1
- import { t as getRoot } from "../../context-DwEoOJU2.mjs";
2
- //#region src/tab/panel/createPanel.svelte.ts
3
- function createPanel(props) {
4
- const root = getRoot();
5
- const isSelected = $derived(root.panel === props.value);
6
- return { props: {
7
- get "aria-labelledby"() {
8
- return `${root.id}-trigger-${props.value}`;
9
- },
10
- get "data-orientation"() {
11
- return root.orientation;
12
- },
13
- get "data-hidden"() {
14
- return isSelected ? void 0 : "";
15
- },
16
- get hidden() {
17
- return isSelected ? void 0 : "";
18
- },
19
- get id() {
20
- return `${root.id}-panel-${props.value}`;
21
- },
22
- "data-tab-panel": "",
23
- role: "tabpanel",
24
- tabindex: 0
25
- } };
26
- }
27
- //#endregion
1
+ import { createPanel } from "./createPanel.svelte.mjs";
28
2
  export { createPanel };
@@ -0,0 +1,6 @@
1
+ import { RootState } from "./createRoot.svelte.mjs";
2
+
3
+ //#region src/tab/root/context.d.ts
4
+ declare const getRoot: () => RootState, setRoot: (context: RootState) => RootState;
5
+ //#endregion
6
+ export { getRoot, setRoot };
@@ -2,4 +2,4 @@ import { createContext } from "svelte";
2
2
  //#region src/tab/root/context.ts
3
3
  const [getRoot, setRoot] = createContext();
4
4
  //#endregion
5
- export { setRoot as n, getRoot as t };
5
+ export { getRoot, setRoot };
@@ -23,7 +23,4 @@ interface RootState {
23
23
  }
24
24
  declare function createRoot<T extends CreateRootProps>(props: Exact<CreateRootProps, T>): RootState;
25
25
  //#endregion
26
- //#region src/tab/root/context.d.ts
27
- declare const getRoot: () => RootState, setRoot: (context: RootState) => RootState;
28
- //#endregion
29
- export { Orientation as a, createRoot as c, Direction as i, setRoot as n, RootState as o, CreateRootProps as r, TValue as s, getRoot as t };
26
+ export { CreateRootProps, Direction, Orientation, RootState, TValue, createRoot };
@@ -0,0 +1,57 @@
1
+ import { setRoot } from "./context.mjs";
2
+ import { uid } from "uid";
3
+ //#region src/tab/root/createRoot.svelte.ts
4
+ function createRoot(props) {
5
+ const activateOnFocus = $derived(props.activateOnFocus ?? true);
6
+ const direction = $derived(props.direction ?? "ltr");
7
+ const id = $derived(uid());
8
+ const orientation = $derived(props.orientation ?? "horizontal");
9
+ let hasTitle = $state(false);
10
+ let value = $derived(props.value ?? null);
11
+ let panel = $derived(props.value ?? null);
12
+ const root = {
13
+ get activateOnFocus() {
14
+ return activateOnFocus;
15
+ },
16
+ get direction() {
17
+ return direction;
18
+ },
19
+ get hasTitle() {
20
+ return hasTitle;
21
+ },
22
+ set hasTitle(h) {
23
+ hasTitle = h;
24
+ },
25
+ get id() {
26
+ return id;
27
+ },
28
+ get orientation() {
29
+ return orientation;
30
+ },
31
+ get panel() {
32
+ return panel;
33
+ },
34
+ set panel(p) {
35
+ panel = p;
36
+ },
37
+ get value() {
38
+ return value;
39
+ },
40
+ set value(v) {
41
+ value = v;
42
+ },
43
+ props: {
44
+ get "data-orientation"() {
45
+ return orientation;
46
+ },
47
+ get id() {
48
+ return id;
49
+ },
50
+ "data-tab-root": ""
51
+ }
52
+ };
53
+ setRoot(root);
54
+ return root;
55
+ }
56
+ //#endregion
57
+ export { createRoot };
@@ -1,2 +1,3 @@
1
- import { a as Orientation, c as createRoot, i as Direction, n as setRoot, o as RootState, r as CreateRootProps, s as TValue, t as getRoot } from "../../index-j-8eH9nJ.mjs";
1
+ import { CreateRootProps, Direction, Orientation, RootState, TValue, createRoot } from "./createRoot.svelte.mjs";
2
+ import { getRoot, setRoot } from "./context.mjs";
2
3
  export { CreateRootProps, Direction, Orientation, RootState, TValue, createRoot, getRoot, setRoot };
@@ -1,57 +1,3 @@
1
- import { n as setRoot, t as getRoot } from "../../context-DwEoOJU2.mjs";
2
- import { uid } from "uid";
3
- //#region src/tab/root/createRoot.svelte.ts
4
- function createRoot(props) {
5
- const activateOnFocus = $derived(props.activateOnFocus ?? true);
6
- const direction = $derived(props.direction ?? "ltr");
7
- const id = $derived(uid());
8
- const orientation = $derived(props.orientation ?? "horizontal");
9
- let hasTitle = $state(false);
10
- let value = $derived(props.value ?? null);
11
- let panel = $derived(props.value ?? null);
12
- const root = {
13
- get activateOnFocus() {
14
- return activateOnFocus;
15
- },
16
- get direction() {
17
- return direction;
18
- },
19
- get hasTitle() {
20
- return hasTitle;
21
- },
22
- set hasTitle(h) {
23
- hasTitle = h;
24
- },
25
- get id() {
26
- return id;
27
- },
28
- get orientation() {
29
- return orientation;
30
- },
31
- get panel() {
32
- return panel;
33
- },
34
- set panel(p) {
35
- panel = p;
36
- },
37
- get value() {
38
- return value;
39
- },
40
- set value(v) {
41
- value = v;
42
- },
43
- props: {
44
- get "data-orientation"() {
45
- return orientation;
46
- },
47
- get id() {
48
- return id;
49
- },
50
- "data-tab-root": ""
51
- }
52
- };
53
- setRoot(root);
54
- return root;
55
- }
56
- //#endregion
1
+ import { getRoot, setRoot } from "./context.mjs";
2
+ import { createRoot } from "./createRoot.svelte.mjs";
57
3
  export { createRoot, getRoot, setRoot };
@@ -6,4 +6,4 @@ interface TitleState {
6
6
  }
7
7
  declare function createTitle(): TitleState;
8
8
  //#endregion
9
- export { createTitle as n, TitleState as t };
9
+ export { TitleState, createTitle };
@@ -0,0 +1,18 @@
1
+ import { getRoot } from "../root/context.mjs";
2
+ import { onDestroy } from "svelte";
3
+ //#region src/tab/title/createTitle.svelte.ts
4
+ function createTitle() {
5
+ const root = getRoot();
6
+ root.hasTitle = true;
7
+ onDestroy(() => {
8
+ root.hasTitle = false;
9
+ });
10
+ return { props: {
11
+ get id() {
12
+ return `${root.id}-title`;
13
+ },
14
+ "data-tab-title": ""
15
+ } };
16
+ }
17
+ //#endregion
18
+ export { createTitle };
@@ -1,2 +1,2 @@
1
- import { n as createTitle, t as TitleState } from "../../index-DAHEDQQS.mjs";
1
+ import { TitleState, createTitle } from "./createTitle.svelte.mjs";
2
2
  export { TitleState, createTitle };
@@ -1,18 +1,2 @@
1
- import { t as getRoot } from "../../context-DwEoOJU2.mjs";
2
- import { onDestroy } from "svelte";
3
- //#region src/tab/title/createTitle.svelte.ts
4
- function createTitle() {
5
- const root = getRoot();
6
- root.hasTitle = true;
7
- onDestroy(() => {
8
- root.hasTitle = false;
9
- });
10
- return { props: {
11
- get id() {
12
- return `${root.id}-title`;
13
- },
14
- "data-tab-title": ""
15
- } };
16
- }
17
- //#endregion
1
+ import { createTitle } from "./createTitle.svelte.mjs";
18
2
  export { createTitle };
@@ -11,4 +11,4 @@ interface TriggerState {
11
11
  }
12
12
  declare function createTrigger<T extends CreateTriggerProps>(props: Exact<CreateTriggerProps, T>): TriggerState;
13
13
  //#endregion
14
- export { TriggerState as n, createTrigger as r, CreateTriggerProps as t };
14
+ export { CreateTriggerProps, TriggerState, createTrigger };
@@ -0,0 +1,94 @@
1
+ import { getRoot } from "../root/context.mjs";
2
+ //#region src/tab/trigger/createTrigger.svelte.ts
3
+ function createTrigger(props) {
4
+ const root = getRoot();
5
+ const isSelected = $derived(root.value === props.value);
6
+ if (root.value === null) {
7
+ root.value = props.value;
8
+ root.panel = props.value;
9
+ }
10
+ return { props: {
11
+ get "aria-controls"() {
12
+ return `${root.id}-panel-${props.value}`;
13
+ },
14
+ get "aria-selected"() {
15
+ return isSelected;
16
+ },
17
+ get "data-disabled"() {
18
+ return props.disabled ? true : void 0;
19
+ },
20
+ get "data-orientation"() {
21
+ return root.orientation;
22
+ },
23
+ get "data-root-id"() {
24
+ return root.id;
25
+ },
26
+ get "data-selected"() {
27
+ return isSelected ? "" : void 0;
28
+ },
29
+ get "data-value"() {
30
+ return props.value;
31
+ },
32
+ get id() {
33
+ return `${root.id}-trigger-${props.value}`;
34
+ },
35
+ get tabindex() {
36
+ return isSelected ? void 0 : -1;
37
+ },
38
+ "data-tabs-trigger": "",
39
+ type: "button",
40
+ role: "tab",
41
+ onclick(event) {
42
+ root.value = props.value;
43
+ root.panel = props.value;
44
+ event.currentTarget.focus();
45
+ },
46
+ onkeydown(event) {
47
+ if (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey) return;
48
+ let preventDefault = false;
49
+ let pendingValue = null;
50
+ const button = event.currentTarget;
51
+ const triggers = [...document.querySelectorAll(`[data-tabs-trigger][data-root-id="${root.id}"]:not([data-disabled])`)];
52
+ const currentIndex = triggers.indexOf(button);
53
+ const nextKeyName = root.orientation === "horizontal" ? "ArrowRight" : "ArrowDown";
54
+ const previousKeyName = root.orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
55
+ switch (event.key) {
56
+ case previousKeyName: {
57
+ const nextIndex = currentIndex === 0 ? triggers.length - 1 : currentIndex - 1;
58
+ pendingValue = triggers[nextIndex]?.dataset.value ?? null;
59
+ triggers[nextIndex]?.focus();
60
+ preventDefault = true;
61
+ break;
62
+ }
63
+ case nextKeyName: {
64
+ const nextIndex = (currentIndex + 1) % triggers.length;
65
+ pendingValue = triggers[nextIndex]?.dataset.value ?? null;
66
+ triggers[nextIndex]?.focus();
67
+ preventDefault = true;
68
+ break;
69
+ }
70
+ case "Home":
71
+ pendingValue = triggers[0]?.dataset.value ?? null;
72
+ triggers[0]?.focus();
73
+ preventDefault = true;
74
+ break;
75
+ case "End":
76
+ pendingValue = triggers.at(-1)?.dataset.value ?? null;
77
+ triggers.at(-1)?.focus();
78
+ preventDefault = true;
79
+ break;
80
+ default: break;
81
+ }
82
+ if (pendingValue !== null) {
83
+ root.value = pendingValue;
84
+ if (root.activateOnFocus) root.panel = pendingValue;
85
+ }
86
+ if (preventDefault) {
87
+ event.stopPropagation();
88
+ event.preventDefault();
89
+ }
90
+ }
91
+ } };
92
+ }
93
+ //#endregion
94
+ export { createTrigger };
@@ -1,2 +1,2 @@
1
- import { n as TriggerState, r as createTrigger, t as CreateTriggerProps } from "../../index-B-PBb_8h.mjs";
1
+ import { CreateTriggerProps, TriggerState, createTrigger } from "./createTrigger.svelte.mjs";
2
2
  export { CreateTriggerProps, TriggerState, createTrigger };
@@ -1,94 +1,2 @@
1
- import { t as getRoot } from "../../context-DwEoOJU2.mjs";
2
- //#region src/tab/trigger/createTrigger.svelte.ts
3
- function createTrigger(props) {
4
- const root = getRoot();
5
- const isSelected = $derived(root.value === props.value);
6
- if (root.value === null) {
7
- root.value = props.value;
8
- root.panel = props.value;
9
- }
10
- return { props: {
11
- get "aria-controls"() {
12
- return `${root.id}-panel-${props.value}`;
13
- },
14
- get "aria-selected"() {
15
- return isSelected;
16
- },
17
- get "data-disabled"() {
18
- return props.disabled ? true : void 0;
19
- },
20
- get "data-orientation"() {
21
- return root.orientation;
22
- },
23
- get "data-root-id"() {
24
- return root.id;
25
- },
26
- get "data-selected"() {
27
- return isSelected ? "" : void 0;
28
- },
29
- get "data-value"() {
30
- return props.value;
31
- },
32
- get id() {
33
- return `${root.id}-trigger-${props.value}`;
34
- },
35
- get tabindex() {
36
- return isSelected ? void 0 : -1;
37
- },
38
- "data-tabs-trigger": "",
39
- type: "button",
40
- role: "tab",
41
- onclick(event) {
42
- root.value = props.value;
43
- root.panel = props.value;
44
- event.currentTarget.focus();
45
- },
46
- onkeydown(event) {
47
- if (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey) return;
48
- let preventDefault = false;
49
- let pendingValue = null;
50
- const button = event.currentTarget;
51
- const triggers = [...document.querySelectorAll(`[data-tabs-trigger][data-root-id="${root.id}"]:not([data-disabled])`)];
52
- const currentIndex = triggers.indexOf(button);
53
- const nextKeyName = root.orientation === "horizontal" ? "ArrowRight" : "ArrowDown";
54
- const previousKeyName = root.orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
55
- switch (event.key) {
56
- case previousKeyName: {
57
- const nextIndex = currentIndex === 0 ? triggers.length - 1 : currentIndex - 1;
58
- pendingValue = triggers[nextIndex]?.dataset.value ?? null;
59
- triggers[nextIndex]?.focus();
60
- preventDefault = true;
61
- break;
62
- }
63
- case nextKeyName: {
64
- const nextIndex = (currentIndex + 1) % triggers.length;
65
- pendingValue = triggers[nextIndex]?.dataset.value ?? null;
66
- triggers[nextIndex]?.focus();
67
- preventDefault = true;
68
- break;
69
- }
70
- case "Home":
71
- pendingValue = triggers[0]?.dataset.value ?? null;
72
- triggers[0]?.focus();
73
- preventDefault = true;
74
- break;
75
- case "End":
76
- pendingValue = triggers.at(-1)?.dataset.value ?? null;
77
- triggers.at(-1)?.focus();
78
- preventDefault = true;
79
- break;
80
- default: break;
81
- }
82
- if (pendingValue !== null) {
83
- root.value = pendingValue;
84
- if (root.activateOnFocus) root.panel = pendingValue;
85
- }
86
- if (preventDefault) {
87
- event.stopPropagation();
88
- event.preventDefault();
89
- }
90
- }
91
- } };
92
- }
93
- //#endregion
1
+ import { createTrigger } from "./createTrigger.svelte.mjs";
94
2
  export { createTrigger };
@@ -1,2 +1,3 @@
1
- import { CreateRowProps, RowState, createRow, getRow, setRow } from "./row/index.mjs";
1
+ import { CreateRowProps, RowState, createRow } from "./row/createRow.svelte.mjs";
2
+ import { getRow, setRow } from "./row/context.mjs";
2
3
  export { CreateRowProps, RowState, createRow, getRow, setRow };
@@ -1,2 +1,4 @@
1
- import { createRow, getRow, setRow } from "./row/index.mjs";
1
+ import { getRow, setRow } from "./row/context.mjs";
2
+ import { createRow } from "./row/createRow.svelte.mjs";
3
+ import "./row/index.mjs";
2
4
  export { createRow, getRow, setRow };
@@ -0,0 +1,6 @@
1
+ import { RowState } from "./createRow.svelte.mjs";
2
+
3
+ //#region src/table/row/context.d.ts
4
+ declare const getRow: () => RowState, setRow: (context: RowState) => RowState;
5
+ //#endregion
6
+ export { getRow, setRow };
@@ -0,0 +1,5 @@
1
+ import { createContext } from "svelte";
2
+ //#region src/table/row/context.ts
3
+ const [getRow, setRow] = createContext();
4
+ //#endregion
5
+ export { getRow, setRow };
@@ -0,0 +1,14 @@
1
+ import { Exact } from "@svelte-thing/type-utils";
2
+ import { HTMLAttributes } from "svelte/elements";
3
+
4
+ //#region src/table/row/createRow.svelte.d.ts
5
+ interface CreateRowProps {
6
+ href: string | undefined;
7
+ }
8
+ interface RowState {
9
+ href: string | undefined;
10
+ props: HTMLAttributes<HTMLElement>;
11
+ }
12
+ declare function createRow<T extends CreateRowProps>(props: Exact<CreateRowProps, T>): RowState;
13
+ //#endregion
14
+ export { CreateRowProps, RowState, createRow };
@@ -0,0 +1,14 @@
1
+ import { setRow } from "./context.mjs";
2
+ //#region src/table/row/createRow.svelte.ts
3
+ function createRow(props) {
4
+ const row = {
5
+ get href() {
6
+ return props.href;
7
+ },
8
+ props: {}
9
+ };
10
+ setRow(row);
11
+ return row;
12
+ }
13
+ //#endregion
14
+ export { createRow };
@@ -1,17 +1,3 @@
1
- import { Exact } from "@svelte-thing/type-utils";
2
- import { HTMLAttributes } from "svelte/elements";
3
-
4
- //#region src/table/row/createRow.svelte.d.ts
5
- interface CreateRowProps {
6
- href: string | undefined;
7
- }
8
- interface RowState {
9
- href: string | undefined;
10
- props: HTMLAttributes<HTMLElement>;
11
- }
12
- declare function createRow<T extends CreateRowProps>(props: Exact<CreateRowProps, T>): RowState;
13
- //#endregion
14
- //#region src/table/row/context.d.ts
15
- declare const getRow: () => RowState, setRow: (context: RowState) => RowState;
16
- //#endregion
1
+ import { CreateRowProps, RowState, createRow } from "./createRow.svelte.mjs";
2
+ import { getRow, setRow } from "./context.mjs";
17
3
  export { CreateRowProps, RowState, createRow, getRow, setRow };