@orbitkit/components 0.2.0 → 0.4.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 (120) hide show
  1. package/dist/astro/accordion/Accordion.astro +34 -34
  2. package/dist/astro/accordion/AccordionItem.astro +19 -19
  3. package/dist/astro/accordion/AccordionTrigger.astro +33 -33
  4. package/dist/astro/accordion/AcordionContent.astro +23 -23
  5. package/dist/astro/accordion/accordion.ts +151 -151
  6. package/dist/astro/accordion/index.ts +6 -6
  7. package/dist/astro/ambient-image/AmbientFigcaption.astro +15 -0
  8. package/dist/astro/ambient-image/AmbientImage.astro +70 -0
  9. package/dist/astro/ambient-image/index.ts +4 -0
  10. package/dist/astro/button-group/ButtonGroup.astro +21 -0
  11. package/dist/astro/button-group/buttonGroupVariants.ts +34 -0
  12. package/dist/astro/button-group/index.ts +3 -0
  13. package/dist/astro/collapsible/Collapsible.astro +34 -34
  14. package/dist/astro/collapsible/CollapsibleContent.astro +20 -20
  15. package/dist/astro/collapsible/collapsible.ts +81 -81
  16. package/dist/astro/collapsible/index.ts +4 -4
  17. package/dist/astro/diff/Diff.astro +55 -0
  18. package/dist/astro/diff/DiffItem.astro +21 -0
  19. package/dist/astro/diff/index.ts +4 -0
  20. package/dist/astro/drawer/DrawerContent.astro +74 -74
  21. package/dist/astro/drawer/drawer.ts +104 -104
  22. package/dist/astro/drawer/index.ts +17 -17
  23. package/dist/astro/dropdown/DropdownMenu.astro +19 -19
  24. package/dist/astro/dropdown/DropdownMenuContent.astro +42 -42
  25. package/dist/astro/dropdown/DropdownMenuGroup.astro +3 -3
  26. package/dist/astro/dropdown/DropdownMenuItem.astro +27 -27
  27. package/dist/astro/dropdown/DropdownMenuLabel.astro +3 -3
  28. package/dist/astro/dropdown/DropdownMenuSeparator.astro +6 -6
  29. package/dist/astro/dropdown/dropdown.ts +157 -157
  30. package/dist/astro/dropdown/dropdownVariants.ts +134 -134
  31. package/dist/astro/dropdown/index.ts +23 -23
  32. package/dist/astro/loader/Loader.astro +16 -0
  33. package/dist/astro/loader/index.ts +6 -0
  34. package/dist/astro/loader/loaders/12-dots-scale-rotate.svg +1 -0
  35. package/dist/astro/loader/loaders/180-ring-with-bg.svg +1 -0
  36. package/dist/astro/loader/loaders/180-ring.svg +1 -0
  37. package/dist/astro/loader/loaders/270-ring-with-bg.svg +1 -0
  38. package/dist/astro/loader/loaders/270-ring.svg +1 -0
  39. package/dist/astro/loader/loaders/3-dots-bounce.svg +1 -0
  40. package/dist/astro/loader/loaders/3-dots-fade.svg +1 -0
  41. package/dist/astro/loader/loaders/3-dots-move.svg +1 -0
  42. package/dist/astro/loader/loaders/3-dots-rotate.svg +1 -0
  43. package/dist/astro/loader/loaders/3-dots-scale-middle.svg +1 -0
  44. package/dist/astro/loader/loaders/3-dots-scale.svg +1 -0
  45. package/dist/astro/loader/loaders/6-dots-rotate.svg +1 -0
  46. package/dist/astro/loader/loaders/6-dots-scale-middle.svg +1 -0
  47. package/dist/astro/loader/loaders/6-dots-scale.svg +1 -0
  48. package/dist/astro/loader/loaders/8-dots-rotate.svg +1 -0
  49. package/dist/astro/loader/loaders/90-ring-with-bg.svg +1 -0
  50. package/dist/astro/loader/loaders/90-ring.svg +1 -0
  51. package/dist/astro/loader/loaders/bars-fade.svg +1 -0
  52. package/dist/astro/loader/loaders/bars-rotate-fade.svg +1 -0
  53. package/dist/astro/loader/loaders/bars-scale-fade.svg +1 -0
  54. package/dist/astro/loader/loaders/bars-scale-middle.svg +1 -0
  55. package/dist/astro/loader/loaders/bars-scale.svg +1 -0
  56. package/dist/astro/loader/loaders/blocks-scale.svg +1 -0
  57. package/dist/astro/loader/loaders/blocks-shuffle-2.svg +1 -0
  58. package/dist/astro/loader/loaders/blocks-shuffle-3.svg +1 -0
  59. package/dist/astro/loader/loaders/blocks-wave.svg +1 -0
  60. package/dist/astro/loader/loaders/bouncing-ball.svg +1 -0
  61. package/dist/astro/loader/loaders/clock.svg +1 -0
  62. package/dist/astro/loader/loaders/dot-revolve.svg +1 -0
  63. package/dist/astro/loader/loaders/eclipse-half.svg +1 -0
  64. package/dist/astro/loader/loaders/eclipse.svg +1 -0
  65. package/dist/astro/loader/loaders/gooey-balls-1.svg +1 -0
  66. package/dist/astro/loader/loaders/gooey-balls-2.svg +1 -0
  67. package/dist/astro/loader/loaders/index.ts +99 -0
  68. package/dist/astro/loader/loaders/pulse-2.svg +1 -0
  69. package/dist/astro/loader/loaders/pulse-3.svg +1 -0
  70. package/dist/astro/loader/loaders/pulse-multiple.svg +1 -0
  71. package/dist/astro/loader/loaders/pulse-ring.svg +1 -0
  72. package/dist/astro/loader/loaders/pulse-rings-2.svg +1 -0
  73. package/dist/astro/loader/loaders/pulse-rings-3.svg +1 -0
  74. package/dist/astro/loader/loaders/pulse-rings-multiple.svg +1 -0
  75. package/dist/astro/loader/loaders/pulse.svg +1 -0
  76. package/dist/astro/loader/loaders/ring-resize.svg +1 -0
  77. package/dist/astro/loader/loaders/tadpole.svg +1 -0
  78. package/dist/astro/loader/loaders/wifi-fade.svg +1 -0
  79. package/dist/astro/loader/loaders/wifi.svg +1 -0
  80. package/dist/astro/loader/loaders/wind-toy.svg +1 -0
  81. package/dist/astro/marquee/Marquee.astro +53 -0
  82. package/dist/astro/marquee/index.ts +3 -0
  83. package/dist/astro/modal/Modal.astro +19 -19
  84. package/dist/astro/modal/ModalContent.astro +71 -71
  85. package/dist/astro/modal/ModalDescription.astro +12 -12
  86. package/dist/astro/modal/ModalFooter.astro +15 -15
  87. package/dist/astro/modal/ModalHeader.astro +12 -12
  88. package/dist/astro/modal/ModalTitle.astro +18 -18
  89. package/dist/astro/modal/index.ts +15 -15
  90. package/dist/astro/modal/modal.ts +101 -101
  91. package/dist/astro/pagination/index.ts +15 -15
  92. package/dist/astro/popover/Popover.astro +17 -17
  93. package/dist/astro/popover/PopoverContent.astro +39 -39
  94. package/dist/astro/popover/index.ts +5 -5
  95. package/dist/astro/popover/popover.ts +113 -113
  96. package/dist/astro/popover/popoverVariants.ts +115 -115
  97. package/dist/astro/scroll-progress/ScrollProgress.astro +41 -0
  98. package/dist/astro/scroll-progress/ScrollProgressBar.astro +19 -0
  99. package/dist/astro/scroll-progress/index.ts +4 -0
  100. package/dist/astro/stat/Stat.astro +12 -12
  101. package/dist/astro/stat/StatDescription.astro +12 -12
  102. package/dist/astro/stat/StatTitle.astro +18 -18
  103. package/dist/astro/stat/StatValue.astro +12 -12
  104. package/dist/astro/stat/index.ts +6 -6
  105. package/dist/astro/tab/TabList.astro +19 -19
  106. package/dist/astro/toast/Toast.astro +36 -0
  107. package/dist/astro/toast/ToastDescription.astro +10 -0
  108. package/dist/astro/toast/ToastTitle.astro +18 -0
  109. package/dist/astro/toast/Toaster.astro +78 -0
  110. package/dist/astro/toast/assets.ts +6 -0
  111. package/dist/astro/toast/index.ts +30 -0
  112. package/dist/astro/toast/toast.ts +277 -0
  113. package/dist/astro/tooltip/Tooltip.astro +40 -40
  114. package/dist/astro/tooltip/TooltipContent.astro +39 -39
  115. package/dist/astro/tooltip/index.ts +5 -5
  116. package/dist/astro/tooltip/tooltip.ts +137 -137
  117. package/dist/astro/tooltip/tooltipVariants.ts +115 -115
  118. package/dist/index.js +30 -2
  119. package/dist/index.js.map +1 -1
  120. package/package.json +9 -8
@@ -1,137 +1,137 @@
1
- export class Tooltip {
2
- // References to tooltip elements
3
- private tooltip: HTMLElement;
4
- private trigger: HTMLElement | null;
5
- private content: HTMLElement | null;
6
-
7
- // Tooltip configuration options
8
- private duration: number;
9
- private openDelay: number;
10
- private closeDelay: number;
11
-
12
- // Timers for managing tooltip open/close/hide delays
13
- private openTimerId: number | null = null;
14
- private closeTimerId: number | null = null;
15
- private hideTimerId: number | null = null;
16
-
17
- constructor(tooltip: HTMLElement) {
18
- this.tooltip = tooltip;
19
- this.content = this.tooltip.querySelector("[data-tooltip-content]");
20
- this.trigger = this.tooltip.querySelector("[data-trigger]");
21
-
22
- this.duration = parseFloat(tooltip.dataset.duration || "200");
23
- this.openDelay = parseFloat(tooltip.dataset.openDelay || "0");
24
- this.closeDelay = parseFloat(tooltip.dataset.closeDelay || "0");
25
-
26
- if (!this.tooltip || !this.content || !this.trigger) {
27
- console.error("Tooltip not initialized properly", {
28
- container: this.tooltip,
29
- trigger: this.trigger,
30
- content: this.content,
31
- });
32
- return;
33
- }
34
-
35
- // If you want to use animations instead of transitions
36
- // set animation duration instead of transition duration.
37
- this.content.style.transitionDuration = `${this.duration}ms`;
38
-
39
- this.init();
40
- }
41
-
42
- private init() {
43
- this.setupAccessibility();
44
- this.setupEventListeners();
45
- }
46
-
47
- private setupAccessibility() {
48
- if (!this.trigger || !this.content) return;
49
-
50
- const id =
51
- this.content.id ||
52
- `tooltip-id-${Math.random().toString(36).substring(2, 9)}`;
53
- this.content.id = id;
54
- this.trigger.setAttribute("aria-describedby", id);
55
- this.setState("closed");
56
- }
57
-
58
- private setupEventListeners() {
59
- if (!this.trigger || !this.content) return;
60
-
61
- this.trigger!.addEventListener("mouseenter", () => this.showTooltip());
62
- this.trigger!.addEventListener("mouseleave", () => this.hideTooltip());
63
- this.trigger.addEventListener("focus", () => this.showTooltip(true));
64
- this.trigger.addEventListener("blur", () => this.hideTooltip(true));
65
-
66
- if (this.tooltip.dataset.disableHoverableContent === "false") {
67
- this.content.addEventListener("mouseenter", () => this.showTooltip());
68
- this.content.addEventListener("mouseleave", () => this.hideTooltip());
69
- }
70
-
71
- document.addEventListener("keydown", (e) => this.handleKeyDown(e));
72
- }
73
-
74
- private showTooltip(instant: boolean = false) {
75
- this.clearCloseTimer();
76
- this.content?.classList.remove("hidden");
77
-
78
- if (instant) {
79
- this.setState("open");
80
- return;
81
- }
82
-
83
- this.openTimerId = window.setTimeout(() => {
84
- this.setState("open");
85
- this.openTimerId = null;
86
- }, this.openDelay);
87
- }
88
-
89
- private hideTooltip(instant: boolean = false) {
90
- this.clearOpenTimer();
91
-
92
- if (instant) {
93
- this.setState("closed");
94
- this.content?.classList.add("hidden");
95
- return;
96
- }
97
-
98
- this.closeTimerId = window.setTimeout(() => {
99
- this.setState("closed");
100
- this.hideTimerId = window.setTimeout(() => {
101
- this.content?.classList.add("hidden");
102
- this.closeTimerId = null;
103
- this.hideTimerId = null;
104
- }, this.duration);
105
- }, this.closeDelay);
106
- }
107
-
108
- private setState(state: "open" | "closed") {
109
- this.content?.setAttribute("aria-hidden", `${state === "closed"}`);
110
- this.content?.setAttribute("data-state", state);
111
- }
112
-
113
- private clearOpenTimer() {
114
- if (this.openTimerId) {
115
- window.clearTimeout(this.openTimerId);
116
- this.openTimerId = null;
117
- }
118
- }
119
-
120
- private clearCloseTimer() {
121
- if (this.closeTimerId) {
122
- window.clearTimeout(this.closeTimerId);
123
- this.closeTimerId = null;
124
- }
125
- if (this.hideTimerId) {
126
- window.clearTimeout(this.hideTimerId);
127
- this.hideTimerId = null;
128
- }
129
- }
130
-
131
- private handleKeyDown = (event: KeyboardEvent) => {
132
- if (event.key === "Escape" && this.content!.dataset.status === "open") {
133
- this.hideTooltip(true);
134
- event.preventDefault();
135
- }
136
- };
137
- }
1
+ export class Tooltip {
2
+ // References to tooltip elements
3
+ private tooltip: HTMLElement;
4
+ private trigger: HTMLElement | null;
5
+ private content: HTMLElement | null;
6
+
7
+ // Tooltip configuration options
8
+ private duration: number;
9
+ private openDelay: number;
10
+ private closeDelay: number;
11
+
12
+ // Timers for managing tooltip open/close/hide delays
13
+ private openTimerId: number | null = null;
14
+ private closeTimerId: number | null = null;
15
+ private hideTimerId: number | null = null;
16
+
17
+ constructor(tooltip: HTMLElement) {
18
+ this.tooltip = tooltip;
19
+ this.content = this.tooltip.querySelector("[data-tooltip-content]");
20
+ this.trigger = this.tooltip.querySelector("[data-trigger]");
21
+
22
+ this.duration = parseFloat(tooltip.dataset.duration || "200");
23
+ this.openDelay = parseFloat(tooltip.dataset.openDelay || "0");
24
+ this.closeDelay = parseFloat(tooltip.dataset.closeDelay || "0");
25
+
26
+ if (!this.tooltip || !this.content || !this.trigger) {
27
+ console.error("Tooltip not initialized properly", {
28
+ container: this.tooltip,
29
+ trigger: this.trigger,
30
+ content: this.content,
31
+ });
32
+ return;
33
+ }
34
+
35
+ // If you want to use animations instead of transitions
36
+ // set animation duration instead of transition duration.
37
+ this.content.style.transitionDuration = `${this.duration}ms`;
38
+
39
+ this.init();
40
+ }
41
+
42
+ private init() {
43
+ this.setupAccessibility();
44
+ this.setupEventListeners();
45
+ }
46
+
47
+ private setupAccessibility() {
48
+ if (!this.trigger || !this.content) return;
49
+
50
+ const id =
51
+ this.content.id ||
52
+ `tooltip-id-${Math.random().toString(36).substring(2, 9)}`;
53
+ this.content.id = id;
54
+ this.trigger.setAttribute("aria-describedby", id);
55
+ this.setState("closed");
56
+ }
57
+
58
+ private setupEventListeners() {
59
+ if (!this.trigger || !this.content) return;
60
+
61
+ this.trigger!.addEventListener("mouseenter", () => this.showTooltip());
62
+ this.trigger!.addEventListener("mouseleave", () => this.hideTooltip());
63
+ this.trigger.addEventListener("focus", () => this.showTooltip(true));
64
+ this.trigger.addEventListener("blur", () => this.hideTooltip(true));
65
+
66
+ if (this.tooltip.dataset.disableHoverableContent === "false") {
67
+ this.content.addEventListener("mouseenter", () => this.showTooltip());
68
+ this.content.addEventListener("mouseleave", () => this.hideTooltip());
69
+ }
70
+
71
+ document.addEventListener("keydown", (e) => this.handleKeyDown(e));
72
+ }
73
+
74
+ private showTooltip(instant: boolean = false) {
75
+ this.clearCloseTimer();
76
+ this.content?.classList.remove("hidden");
77
+
78
+ if (instant) {
79
+ this.setState("open");
80
+ return;
81
+ }
82
+
83
+ this.openTimerId = window.setTimeout(() => {
84
+ this.setState("open");
85
+ this.openTimerId = null;
86
+ }, this.openDelay);
87
+ }
88
+
89
+ private hideTooltip(instant: boolean = false) {
90
+ this.clearOpenTimer();
91
+
92
+ if (instant) {
93
+ this.setState("closed");
94
+ this.content?.classList.add("hidden");
95
+ return;
96
+ }
97
+
98
+ this.closeTimerId = window.setTimeout(() => {
99
+ this.setState("closed");
100
+ this.hideTimerId = window.setTimeout(() => {
101
+ this.content?.classList.add("hidden");
102
+ this.closeTimerId = null;
103
+ this.hideTimerId = null;
104
+ }, this.duration);
105
+ }, this.closeDelay);
106
+ }
107
+
108
+ private setState(state: "open" | "closed") {
109
+ this.content?.setAttribute("aria-hidden", `${state === "closed"}`);
110
+ this.content?.setAttribute("data-state", state);
111
+ }
112
+
113
+ private clearOpenTimer() {
114
+ if (this.openTimerId) {
115
+ window.clearTimeout(this.openTimerId);
116
+ this.openTimerId = null;
117
+ }
118
+ }
119
+
120
+ private clearCloseTimer() {
121
+ if (this.closeTimerId) {
122
+ window.clearTimeout(this.closeTimerId);
123
+ this.closeTimerId = null;
124
+ }
125
+ if (this.hideTimerId) {
126
+ window.clearTimeout(this.hideTimerId);
127
+ this.hideTimerId = null;
128
+ }
129
+ }
130
+
131
+ private handleKeyDown = (event: KeyboardEvent) => {
132
+ if (event.key === "Escape" && this.content!.dataset.status === "open") {
133
+ this.hideTooltip(true);
134
+ event.preventDefault();
135
+ }
136
+ };
137
+ }
@@ -1,115 +1,115 @@
1
- import { cva } from "class-variance-authority";
2
-
3
- const baseClass = [
4
- "hidden absolute z-50 px-3 py-1.5 whitespace-nowrap bg-foreground text-background rounded-md text-sm backdrop-blur-sm max-w-xs",
5
- "transform transition-all ease-in data-[state=closed]:opacity-0 data-[state=closed]:scale-95 data[state=open]:opacity-100 data[state=open]:scale-100",
6
- ];
7
-
8
- const tooltipVariants = cva(baseClass, {
9
- variants: {
10
- side: {
11
- top: "bottom-full mb-(--tooltip-offset)",
12
- bottom: "top-full mt-(--tooltip-offset)",
13
- left: "right-full mr-(--tooltip-offset)",
14
- right: "left-full ml-(--tooltip-offset)",
15
- },
16
- alignment: {
17
- start: "",
18
- center: "",
19
- end: "",
20
- },
21
- },
22
- compoundVariants: [
23
- {
24
- side: ["top", "bottom"],
25
- alignment: "start",
26
- class: "left-0",
27
- },
28
- {
29
- side: ["top", "bottom"],
30
- alignment: "end",
31
- class: "left-full -translate-x-full",
32
- },
33
- {
34
- side: ["top", "bottom"],
35
- alignment: "center",
36
- class: "left-1/2 -translate-x-1/2",
37
- },
38
- {
39
- side: ["left", "right"],
40
- alignment: "start",
41
- class: "top-0 -translate-y-0",
42
- },
43
- {
44
- side: ["left", "right"],
45
- alignment: "center",
46
- class: "top-1/2 -translate-y-1/2",
47
- },
48
- {
49
- side: ["left", "right"],
50
- alignment: "end",
51
- class: "top-full -translate-y-full",
52
- },
53
- ],
54
- defaultVariants: {
55
- side: "top",
56
- alignment: "center",
57
- },
58
- });
59
-
60
- const arrowClass =
61
- "absolute w-0 h-0 transition-all transform ease-in size-2 bg-foreground transform rotate-45";
62
-
63
- const tooltipArrowVariants = cva(arrowClass, {
64
- variants: {
65
- side: {
66
- top: "top-full -mt-1 ",
67
- bottom: "bottom-full -mb-1",
68
- left: "left-full -ml-1",
69
- right: "right-full -mr-1",
70
- },
71
- alignment: {
72
- start: "",
73
- center: "",
74
- end: "",
75
- },
76
- },
77
- compoundVariants: [
78
- {
79
- side: ["top", "bottom"],
80
- alignment: "start",
81
- class: "left-0 ml-3 ",
82
- },
83
- {
84
- side: ["top", "bottom"],
85
- alignment: "end",
86
- class: "right-0 mr-3",
87
- },
88
- {
89
- side: ["top", "bottom"],
90
- alignment: "center",
91
- class: "left-1/2 -translate-x-1/2",
92
- },
93
- {
94
- side: ["left", "right"],
95
- alignment: "start",
96
- class: "top-0 mt-3",
97
- },
98
- {
99
- side: ["left", "right"],
100
- alignment: "center",
101
- class: "top-1/2 -translate-y-1/2",
102
- },
103
- {
104
- side: ["left", "right"],
105
- alignment: "end",
106
- class: "bottom-0 mb-3",
107
- },
108
- ],
109
- defaultVariants: {
110
- side: "top",
111
- alignment: "center",
112
- },
113
- });
114
-
115
- export { tooltipArrowVariants, tooltipVariants };
1
+ import { cva } from "class-variance-authority";
2
+
3
+ const baseClass = [
4
+ "hidden absolute z-50 px-3 py-1.5 whitespace-nowrap bg-foreground text-background rounded-md text-sm backdrop-blur-sm max-w-xs",
5
+ "transform transition-all ease-in data-[state=closed]:opacity-0 data-[state=closed]:scale-95 data[state=open]:opacity-100 data[state=open]:scale-100",
6
+ ];
7
+
8
+ const tooltipVariants = cva(baseClass, {
9
+ variants: {
10
+ side: {
11
+ top: "bottom-full mb-(--tooltip-offset)",
12
+ bottom: "top-full mt-(--tooltip-offset)",
13
+ left: "right-full mr-(--tooltip-offset)",
14
+ right: "left-full ml-(--tooltip-offset)",
15
+ },
16
+ alignment: {
17
+ start: "",
18
+ center: "",
19
+ end: "",
20
+ },
21
+ },
22
+ compoundVariants: [
23
+ {
24
+ side: ["top", "bottom"],
25
+ alignment: "start",
26
+ class: "left-0",
27
+ },
28
+ {
29
+ side: ["top", "bottom"],
30
+ alignment: "end",
31
+ class: "left-full -translate-x-full",
32
+ },
33
+ {
34
+ side: ["top", "bottom"],
35
+ alignment: "center",
36
+ class: "left-1/2 -translate-x-1/2",
37
+ },
38
+ {
39
+ side: ["left", "right"],
40
+ alignment: "start",
41
+ class: "top-0 -translate-y-0",
42
+ },
43
+ {
44
+ side: ["left", "right"],
45
+ alignment: "center",
46
+ class: "top-1/2 -translate-y-1/2",
47
+ },
48
+ {
49
+ side: ["left", "right"],
50
+ alignment: "end",
51
+ class: "top-full -translate-y-full",
52
+ },
53
+ ],
54
+ defaultVariants: {
55
+ side: "top",
56
+ alignment: "center",
57
+ },
58
+ });
59
+
60
+ const arrowClass =
61
+ "absolute w-0 h-0 transition-all transform ease-in size-2 bg-foreground transform rotate-45";
62
+
63
+ const tooltipArrowVariants = cva(arrowClass, {
64
+ variants: {
65
+ side: {
66
+ top: "top-full -mt-1 ",
67
+ bottom: "bottom-full -mb-1",
68
+ left: "left-full -ml-1",
69
+ right: "right-full -mr-1",
70
+ },
71
+ alignment: {
72
+ start: "",
73
+ center: "",
74
+ end: "",
75
+ },
76
+ },
77
+ compoundVariants: [
78
+ {
79
+ side: ["top", "bottom"],
80
+ alignment: "start",
81
+ class: "left-0 ml-3 ",
82
+ },
83
+ {
84
+ side: ["top", "bottom"],
85
+ alignment: "end",
86
+ class: "right-0 mr-3",
87
+ },
88
+ {
89
+ side: ["top", "bottom"],
90
+ alignment: "center",
91
+ class: "left-1/2 -translate-x-1/2",
92
+ },
93
+ {
94
+ side: ["left", "right"],
95
+ alignment: "start",
96
+ class: "top-0 mt-3",
97
+ },
98
+ {
99
+ side: ["left", "right"],
100
+ alignment: "center",
101
+ class: "top-1/2 -translate-y-1/2",
102
+ },
103
+ {
104
+ side: ["left", "right"],
105
+ alignment: "end",
106
+ class: "bottom-0 mb-3",
107
+ },
108
+ ],
109
+ defaultVariants: {
110
+ side: "top",
111
+ alignment: "center",
112
+ },
113
+ });
114
+
115
+ export { tooltipArrowVariants, tooltipVariants };
package/dist/index.js CHANGED
@@ -112,13 +112,41 @@ var registry_default = {
112
112
  {
113
113
  name: "tab",
114
114
  version: "0.0.1"
115
+ },
116
+ {
117
+ name: "toast",
118
+ version: "0.0.1"
119
+ },
120
+ {
121
+ name: "scroll-progress",
122
+ version: "0.0.1"
123
+ },
124
+ {
125
+ name: "marquee",
126
+ version: "0.0.1"
127
+ },
128
+ {
129
+ name: "ambient-image",
130
+ version: "0.0.1"
131
+ },
132
+ {
133
+ name: "button-group",
134
+ version: "0.0.1"
135
+ },
136
+ {
137
+ name: "diff",
138
+ version: "0.0.1"
139
+ },
140
+ {
141
+ name: "loader",
142
+ version: "0.0.1"
115
143
  }
116
144
  ]
117
145
  };
118
146
 
119
147
  // src/index.ts
120
- import { fileURLToPath } from "node:url";
121
- import path from "node:path";
148
+ import { fileURLToPath } from "url";
149
+ import path from "path";
122
150
  var __dirname = path.dirname(fileURLToPath(import.meta.url));
123
151
  function getAllComponents() {
124
152
  const availableComponents = registry_default.components;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/registry.json","../src/index.ts"],"sourcesContent":["{\n \"components\": [\n {\n \"name\": \"button\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"alert\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"badge\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"avatar\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"card\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"input\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"label\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"breadcrumb\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"progress\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"textarea\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"select\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"switch\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"checkbox\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"radio\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"list\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"divider\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"skeleton\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"accordion\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"modal\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"tooltip\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"collapsible\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"drawer\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"dropdown\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"kbd\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"pagination\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"popover\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"stat\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"tab\",\n \"version\": \"0.0.1\"\n }\n ]\n}\n","import registry from \"@/registry.json\";\nimport { fileURLToPath } from \"node:url\";\n\nimport path from \"node:path\";\nimport { ComponentRegistryEntry } from \"./types/registry\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport function getAllComponents() {\n const availableComponents = registry.components as ComponentRegistryEntry[];\n return availableComponents.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport function getComponentPath(componentName: string) {\n return path.join(__dirname, \"astro\", componentName);\n}\n\nexport async function checkComponentsInRegistry(components: string[]) {\n const valid: ComponentRegistryEntry[] = [];\n const invalid: string[] = [];\n const allComponents = getAllComponents();\n\n for (const component of components) {\n const found = allComponents.find(\n (c) => c.name.toLowerCase() === component.toLowerCase(),\n );\n if (found) {\n valid.push(found);\n } else {\n invalid.push(component);\n }\n }\n\n return { valid, invalid };\n}\n\nexport { type ComponentRegistryEntry } from \"@/types/registry\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/registry.json","../src/index.ts"],"sourcesContent":["{\n \"components\": [\n {\n \"name\": \"button\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"alert\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"badge\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"avatar\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"card\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"input\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"label\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"breadcrumb\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"progress\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"textarea\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"select\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"switch\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"checkbox\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"radio\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"list\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"divider\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"skeleton\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"accordion\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"modal\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"tooltip\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"collapsible\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"drawer\",\n \"version\": \"0.0.2\"\n },\n {\n \"name\": \"dropdown\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"kbd\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"pagination\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"popover\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"stat\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"tab\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"toast\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"scroll-progress\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"marquee\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"ambient-image\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"button-group\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"diff\",\n \"version\": \"0.0.1\"\n },\n {\n \"name\": \"loader\",\n \"version\": \"0.0.1\"\n }\n ]\n}\n","import registry from \"@/registry.json\";\r\nimport { fileURLToPath } from \"node:url\";\r\n\r\nimport path from \"node:path\";\r\nimport { ComponentRegistryEntry } from \"./types/registry\";\r\n\r\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\r\n\r\nexport function getAllComponents() {\r\n const availableComponents = registry.components as ComponentRegistryEntry[];\r\n return availableComponents.sort((a, b) => a.name.localeCompare(b.name));\r\n}\r\n\r\nexport function getComponentPath(componentName: string) {\r\n return path.join(__dirname, \"astro\", componentName);\r\n}\r\n\r\nexport async function checkComponentsInRegistry(components: string[]) {\r\n const valid: ComponentRegistryEntry[] = [];\r\n const invalid: string[] = [];\r\n const allComponents = getAllComponents();\r\n\r\n for (const component of components) {\r\n const found = allComponents.find(\r\n (c) => c.name.toLowerCase() === component.toLowerCase(),\r\n );\r\n if (found) {\r\n valid.push(found);\r\n } else {\r\n invalid.push(component);\r\n }\r\n }\r\n\r\n return { valid, invalid };\r\n}\r\n\r\nexport { type ComponentRegistryEntry } from \"@/types/registry\";\r\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbitkit/components",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Customizable UI components designed for seamless integration and scalability.",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",
@@ -27,21 +27,22 @@
27
27
  "kit",
28
28
  "components",
29
29
  "orbit",
30
- "tailwind"
30
+ "tailwind",
31
+ "astro"
31
32
  ],
32
33
  "author": "NSMichelJ (Michelito)",
33
34
  "license": "MIT",
34
35
  "packageManager": "pnpm@10.9.0",
35
36
  "devDependencies": {
36
37
  "@types/fs-extra": "11.0.4",
37
- "@types/node": "22.15.3",
38
- "astro": "5.7.10",
38
+ "@types/node": "24.10.1",
39
+ "astro": "5.16.0",
39
40
  "class-variance-authority": "0.7.1",
40
41
  "clsx": "2.1.1",
41
- "fs-extra": "11.3.0",
42
- "tailwind-merge": "3.2.0",
43
- "tailwindcss": "4.1.5",
44
- "tsup": "8.4.0"
42
+ "fs-extra": "11.3.2",
43
+ "tailwind-merge": "3.4.0",
44
+ "tailwindcss": "4.1.17",
45
+ "tsup": "8.5.1"
45
46
  },
46
47
  "repository": {
47
48
  "type": "git",