@musecat/uikit 0.1.3 → 0.2.1

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 (173) hide show
  1. package/.agents/references/Components/Box.md +1 -1
  2. package/.agents/references/Components/Button.md +1 -1
  3. package/.agents/references/Components/Card.md +1 -1
  4. package/.agents/references/Components/Checkbox.md +1 -1
  5. package/.agents/references/Components/CodeBox.md +1 -1
  6. package/.agents/references/Components/ContextMenu.md +1 -1
  7. package/.agents/references/Components/ContributionGraph.md +1 -1
  8. package/.agents/references/Components/DatePicker.md +1 -1
  9. package/.agents/references/Components/Divider.md +1 -1
  10. package/.agents/references/Components/Header.md +3 -3
  11. package/.agents/references/Components/Icon.md +1 -1
  12. package/.agents/references/Components/Input.md +1 -1
  13. package/.agents/references/Components/Label.md +2 -2
  14. package/.agents/references/Components/Layout.md +2 -2
  15. package/.agents/references/Components/Maps.md +1 -1
  16. package/.agents/references/Components/Nav.md +1 -1
  17. package/.agents/references/Components/Pagination.md +1 -1
  18. package/.agents/references/Components/Pill.md +1 -1
  19. package/.agents/references/Components/Profile.md +1 -1
  20. package/.agents/references/Components/Progress.md +2 -2
  21. package/.agents/references/Components/Radio.md +2 -2
  22. package/.agents/references/Components/Select.md +1 -1
  23. package/.agents/references/Components/Skeleton.md +1 -1
  24. package/.agents/references/Components/Spinner.md +1 -1
  25. package/.agents/references/Components/Text.md +1 -1
  26. package/.agents/references/Components/TimePicker.md +1 -1
  27. package/.agents/references/Components/Timeline.md +2 -2
  28. package/.agents/references/Frameworks/DNDView.md +1 -1
  29. package/.agents/references/Frameworks/Dialog.md +2 -2
  30. package/.agents/references/Frameworks/EdgeEffect.md +2 -2
  31. package/.agents/references/Frameworks/HScrollView.md +2 -2
  32. package/.agents/references/Frameworks/ImageView.md +1 -1
  33. package/.agents/references/Frameworks/Motion.md +1 -1
  34. package/.agents/references/Frameworks/Pressable.md +1 -1
  35. package/.agents/references/Frameworks/Squircle.md +1 -1
  36. package/.agents/references/Frameworks/Theme.md +1 -1
  37. package/.agents/references/Frameworks/Toaster.md +2 -2
  38. package/.agents/references/Frameworks/View.md +1 -1
  39. package/.agents/references/Frameworks/_shared.md +3 -3
  40. package/README.md +25 -1
  41. package/global.d.ts +6 -0
  42. package/i18n/messages/en/uikit.json +50 -0
  43. package/i18n/messages/jp/uikit.json +50 -0
  44. package/i18n/messages/kr/uikit.json +50 -0
  45. package/i18n/request.ts +17 -0
  46. package/i18n/shared.ts +54 -0
  47. package/index.ts +86 -66
  48. package/package.json +33 -10
  49. package/packages/Components/Box/Box.tsx +7 -7
  50. package/packages/Components/Box/Box.types.ts +7 -7
  51. package/packages/Components/Button/Button.tsx +6 -6
  52. package/packages/Components/Button/Button.types.ts +6 -6
  53. package/packages/Components/Card/Card.default.tsx +13 -11
  54. package/packages/Components/Card/Card.foldable.tsx +16 -14
  55. package/packages/Components/Card/Card.tsx +3 -3
  56. package/packages/Components/Card/Card.types.ts +5 -5
  57. package/packages/Components/Card/Card.utils.ts +1 -1
  58. package/packages/Components/Checkbox/Checkbox.tsx +6 -6
  59. package/packages/Components/Checkbox/Checkbox.types.ts +4 -4
  60. package/packages/Components/CodeBox/CodeBox.copy.tsx +3 -3
  61. package/packages/Components/CodeBox/CodeBox.tsx +6 -5
  62. package/packages/Components/CodeBox/CodeBox.types.ts +2 -2
  63. package/packages/Components/ContextMenu/ContextMenu.options.tsx +6 -6
  64. package/packages/Components/ContextMenu/ContextMenu.tsx +8 -7
  65. package/packages/Components/ContextMenu/ContextMenu.types.ts +1 -1
  66. package/packages/Components/ContributionGraph/ContributionGraph.tsx +18 -9
  67. package/packages/Components/ContributionGraph/ContributionGraph.types.ts +2 -2
  68. package/packages/Components/DatePicker/DatePicker.calendar.tsx +6 -6
  69. package/packages/Components/DatePicker/DatePicker.core.tsx +2 -2
  70. package/packages/Components/DatePicker/DatePicker.tsx +48 -27
  71. package/packages/Components/DatePicker/DatePicker.types.ts +1 -1
  72. package/packages/Components/DatePicker/hooks/useCalendar.ts +1 -1
  73. package/packages/Components/DatePicker/hooks/useSelection.ts +2 -2
  74. package/packages/Components/Divider/Divider.tsx +2 -2
  75. package/packages/Components/Divider/Divider.types.ts +1 -1
  76. package/packages/Components/Header/Header.tsx +4 -4
  77. package/packages/Components/Icon/Icon.group.tsx +5 -5
  78. package/packages/Components/Icon/Icon.group.types.ts +4 -4
  79. package/packages/Components/Icon/Icon.tsx +8 -8
  80. package/packages/Components/Icon/Icon.types.ts +7 -7
  81. package/packages/Components/Input/Input.tsx +5 -5
  82. package/packages/Components/Input/Input.types.ts +1 -1
  83. package/packages/Components/Label/Label.tsx +7 -7
  84. package/packages/Components/Label/Label.types.ts +2 -2
  85. package/packages/Components/Layout/Layout.docs.tsx +6 -6
  86. package/packages/Components/Layout/Layout.docs.types.ts +2 -2
  87. package/packages/Components/Layout/Layout.tsx +7 -7
  88. package/packages/Components/Layout/Layout.types.ts +4 -4
  89. package/packages/Components/Maps/OSM/MapOSM.tsx +4 -4
  90. package/packages/Components/Nav/Nav.tsx +8 -8
  91. package/packages/Components/Nav/Nav.types.ts +5 -5
  92. package/packages/Components/Nav/hooks/useNavDrag.ts +1 -1
  93. package/packages/Components/Pagination/Pagination.tsx +8 -7
  94. package/packages/Components/Pagination/Pagination.types.ts +1 -1
  95. package/packages/Components/Pill/Pill.tsx +4 -4
  96. package/packages/Components/Pill/Pill.types.ts +6 -6
  97. package/packages/Components/Profile/Profile.shared.ts +3 -3
  98. package/packages/Components/Profile/Profile.tsx +7 -7
  99. package/packages/Components/Profile/Profile.types.ts +4 -4
  100. package/packages/Components/Progress/Progress.tsx +5 -5
  101. package/packages/Components/Progress/Progress.types.ts +2 -2
  102. package/packages/Components/Radio/Radio.tsx +5 -5
  103. package/packages/Components/Radio/Radio.types.ts +4 -4
  104. package/packages/Components/Select/Select.keyboard.tsx +1 -1
  105. package/packages/Components/Select/Select.trigger.tsx +3 -3
  106. package/packages/Components/Select/Select.tsx +2 -2
  107. package/packages/Components/Select/Select.types.ts +1 -1
  108. package/packages/Components/Select/Select.utils.ts +1 -1
  109. package/packages/Components/Select/hooks/useSelectNavigation.ts +7 -10
  110. package/packages/Components/Select/hooks/useSelectSelection.ts +3 -3
  111. package/packages/Components/Select/hooks/useSelectState.ts +3 -3
  112. package/packages/Components/Select/select.control.tsx +15 -24
  113. package/packages/Components/Select/select.inner.tsx +10 -10
  114. package/packages/Components/Skeleton/Skeleton.tsx +2 -2
  115. package/packages/Components/Skeleton/Skeleton.types.ts +2 -2
  116. package/packages/Components/Spinner/Spinner.tsx +5 -5
  117. package/packages/Components/Spinner/Spinner.types.ts +2 -2
  118. package/packages/Components/Text/Text.tsx +3 -3
  119. package/packages/Components/Text/Text.types.ts +2 -2
  120. package/packages/Components/TimePicker/TimePicker.core.tsx +4 -4
  121. package/packages/Components/TimePicker/TimePicker.tsx +7 -7
  122. package/packages/Components/TimePicker/TimePicker.types.ts +1 -1
  123. package/packages/Components/Timeline/Timeline.tsx +5 -5
  124. package/packages/Components/Timeline/Timeline.types.ts +3 -3
  125. package/packages/Components/Title/Title.tsx +7 -7
  126. package/packages/Components/Title/Title.types.ts +6 -6
  127. package/packages/Components/Toggle/Toggle.tsx +9 -9
  128. package/packages/Components/Toggle/Toggle.types.ts +3 -3
  129. package/packages/Components/Tooltip/Tooltip.tsx +3 -3
  130. package/packages/Components/Tooltip/Tooltip.types.ts +2 -2
  131. package/packages/Frameworks/Dialog/Dialog.background.tsx +4 -4
  132. package/packages/Frameworks/Dialog/Dialog.boot.tsx +2 -2
  133. package/packages/Frameworks/Dialog/Dialog.store.ts +1 -1
  134. package/packages/Frameworks/Dialog/Dialog.tsx +6 -5
  135. package/packages/Frameworks/Dialog/Dialog.types.ts +4 -4
  136. package/packages/Frameworks/Dialog/contents/Dialog.footer.tsx +4 -4
  137. package/packages/Frameworks/Dialog/contents/Dialog.funnel.tsx +6 -6
  138. package/packages/Frameworks/Dialog/contents/Dialog.header.tsx +6 -6
  139. package/packages/Frameworks/Dialog/hooks/useDialogPosition.ts +2 -2
  140. package/packages/Frameworks/Dialog/hooks/useSheetDrag.ts +4 -2
  141. package/packages/Frameworks/Dialog/hooks/useSheetGeometry.ts +5 -3
  142. package/packages/Frameworks/Dialog/hooks/useSheetProgressive.ts +2 -2
  143. package/packages/Frameworks/Dialog/renderers/renderModal.tsx +9 -9
  144. package/packages/Frameworks/Dialog/renderers/renderPopover.tsx +11 -11
  145. package/packages/Frameworks/Dialog/renderers/renderSheet.tsx +17 -17
  146. package/packages/Frameworks/EdgeEffect/EdgeEffect.tsx +2 -2
  147. package/packages/Frameworks/EdgeEffect/EdgeEffect.types.ts +1 -1
  148. package/packages/Frameworks/Pressable/Pressable.tsx +11 -11
  149. package/packages/Frameworks/Pressable/Pressable.types.ts +15 -6
  150. package/packages/Frameworks/Squircle/Squircle.tsx +3 -3
  151. package/packages/Frameworks/Squircle/Squircle.types.ts +1 -1
  152. package/packages/Frameworks/Theme/Radius.types.ts +2 -2
  153. package/packages/Frameworks/Toaster/Toaster.boot.tsx +5 -5
  154. package/packages/Frameworks/Toaster/Toaster.types.ts +3 -1
  155. package/packages/Frameworks/View/DNDView/DNDView.tsx +5 -5
  156. package/packages/Frameworks/View/DNDView/DNDView.types.ts +2 -2
  157. package/packages/Frameworks/View/HScrollView/HScrollView.tsx +8 -8
  158. package/packages/Frameworks/View/HScrollView/HScrollView.types.ts +2 -2
  159. package/packages/Frameworks/View/ImageView/Dialog/ImageDialog.counter.tsx +2 -2
  160. package/packages/Frameworks/View/ImageView/Dialog/ImageDialog.footer.tsx +8 -4
  161. package/packages/Frameworks/View/ImageView/Dialog/ImageDialog.header.tsx +3 -3
  162. package/packages/Frameworks/View/ImageView/Dialog/ImageDialog.list.tsx +5 -5
  163. package/packages/Frameworks/View/ImageView/Dialog/ImageDialog.slide.tsx +3 -3
  164. package/packages/Frameworks/View/ImageView/Dialog/ImageDialog.tsx +7 -7
  165. package/packages/Frameworks/View/ImageView/Image.controls.tsx +1 -1
  166. package/packages/Frameworks/View/ImageView/Image.tsx +44 -27
  167. package/packages/Frameworks/View/ImageView/Image.types.ts +2 -2
  168. package/packages/Frameworks/View/ImageView/Image.utils.ts +2 -2
  169. package/packages/Frameworks/View/View.tsx +8 -8
  170. package/packages/Frameworks/View/View.types.ts +5 -5
  171. package/packages/Frameworks/_shared/Padding.types.ts +2 -4
  172. package/packages/Frameworks/_shared/StopParentInteraction.tsx +1 -1
  173. package/packages/Frameworks/_shared/Wind.types.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useCallback, useRef } from "react";
4
- import type { NavProps } from "@/packages/Components/Nav/Nav.types";
4
+ import type { NavProps } from "../Nav.types";
5
5
 
6
6
  const DRAG_SELECTION_TOUCH_ACTIVATION_DISTANCE = 10;
7
7
  const DRAG_SELECTION_TOUCH_HORIZONTAL_RATIO = 1.75;
@@ -2,13 +2,13 @@
2
2
 
3
3
  import { useTimeout } from "@musecat/functionkit";
4
4
  import { useEffect, useState } from "react";
5
- import { Word } from "@/i18n/shared";
6
- import Icon from "@/packages/Components/Icon/Icon";
7
- import type { IconProps } from "@/packages/Components/Icon/Icon.types";
8
- import type { PaginationProps } from "@/packages/Components/Pagination/Pagination.types";
9
- import Text from "@/packages/Components/Text/Text";
10
- import type { PressableProps } from "@/packages/Frameworks/Pressable/Pressable.types";
11
- import View from "@/packages/Frameworks/View/View";
5
+ import { Word } from "../../../i18n/shared";
6
+ import Icon from "../Icon/Icon";
7
+ import type { IconProps } from "../Icon/Icon.types";
8
+ import type { PaginationProps } from "./Pagination.types";
9
+ import Text from "../Text/Text";
10
+ import type { PressableProps } from "../../Frameworks/Pressable/Pressable.types";
11
+ import View from "../../Frameworks/View/View";
12
12
 
13
13
  function clampPage(page: number, total: number) {
14
14
  return Math.min(total, Math.max(1, page));
@@ -138,6 +138,7 @@ export default function Pagination({
138
138
  }
139
139
 
140
140
  return (
141
+ // biome-ignore lint/a11y/useSemanticElements: nav[role="group"] is correct for pagination
141
142
  <nav
142
143
  aria-label={resolvedNavigationLabel}
143
144
  data-color-mode={dataTheme}
@@ -1,7 +1,7 @@
1
1
  import type {
2
2
  BorderProps,
3
3
  ThemeSystemProps,
4
- } from "@/packages/Frameworks/Theme/Theme.types";
4
+ } from "../../Frameworks/Theme/Theme.types";
5
5
 
6
6
  export interface PaginationProps extends ThemeSystemProps, BorderProps {
7
7
  "data-color-mode"?: string;
@@ -1,8 +1,8 @@
1
1
  import clsx from "clsx";
2
- import Icon from "@/packages/Components/Icon/Icon";
3
- import type { PillProps } from "@/packages/Components/Pill/Pill.types";
4
- import Text from "@/packages/Components/Text/Text";
5
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
2
+ import Icon from "../Icon/Icon";
3
+ import type { PillProps } from "./Pill.types";
4
+ import Text from "../Text/Text";
5
+ import Pressable from "../../Frameworks/Pressable/Pressable";
6
6
 
7
7
  export function Pill({
8
8
  themePreset,
@@ -1,12 +1,12 @@
1
- import type { IconProps } from "@/packages/Components/Icon/Icon.types";
2
- import type { TextProps } from "@/packages/Components/Text/Text.types";
3
- import type { UIKitSizeValue } from "@/packages/Frameworks/_shared/sizing";
4
- import type { PressableProps } from "@/packages/Frameworks/Pressable/Pressable.types";
5
- import type { RadiusProps } from "@/packages/Frameworks/Theme/Radius.types";
1
+ import type { IconProps } from "../Icon/Icon.types";
2
+ import type { TextProps } from "../Text/Text.types";
3
+ import type { UIKitSizeValue } from "../../Frameworks/_shared/sizing";
4
+ import type { PressableProps } from "../../Frameworks/Pressable/Pressable.types";
5
+ import type { RadiusProps } from "../../Frameworks/Theme/Radius.types";
6
6
  import type {
7
7
  BorderProps,
8
8
  ThemeSystemProps,
9
- } from "@/packages/Frameworks/Theme/Theme.types";
9
+ } from "../../Frameworks/Theme/Theme.types";
10
10
 
11
11
  export interface PillProps extends ThemeSystemProps, RadiusProps, BorderProps {
12
12
  "data-color-mode"?: string;
@@ -1,9 +1,9 @@
1
- import type { IconProps } from "@/packages/Components/Icon/Icon.types";
2
- import type { ProfileAvatarOptions } from "@/packages/Components/Profile/Profile.types";
1
+ import type { IconProps } from "../Icon/Icon.types";
2
+ import type { ProfileAvatarOptions } from "./Profile.types";
3
3
  import {
4
4
  Size,
5
5
  type UIKitSizeValue,
6
- } from "@/packages/Frameworks/_shared/sizing";
6
+ } from "../../Frameworks/_shared/sizing";
7
7
 
8
8
  const resolveFallbackAvatarIconSize = (
9
9
  outerSize: UIKitSizeValue,
@@ -1,16 +1,16 @@
1
1
  "use client";
2
2
 
3
- import Divider from "@/packages/Components/Divider/Divider";
4
- import Icon from "@/packages/Components/Icon/Icon";
5
- import { getProfileAvatarIconProps } from "@/packages/Components/Profile/Profile.shared";
3
+ import Divider from "../Divider/Divider";
4
+ import Icon from "../Icon/Icon";
5
+ import { getProfileAvatarIconProps } from "./Profile.shared";
6
6
  import type {
7
7
  ProfileProps,
8
8
  ProfileRole,
9
9
  ProfileSizeOptions,
10
- } from "@/packages/Components/Profile/Profile.types";
11
- import Text from "@/packages/Components/Text/Text";
12
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
13
- import View from "@/packages/Frameworks/View/View";
10
+ } from "./Profile.types";
11
+ import Text from "../Text/Text";
12
+ import Pressable from "../../Frameworks/Pressable/Pressable";
13
+ import View from "../../Frameworks/View/View";
14
14
 
15
15
  type ResolvedProfileSize = Required<
16
16
  Pick<ProfileSizeOptions, "avatar" | "textType" | "badge" | "gap">
@@ -1,7 +1,7 @@
1
- import type { IconProps } from "@/packages/Components/Icon/Icon.types";
2
- import type { TextProps } from "@/packages/Components/Text/Text.types";
3
- import type { UIKitSizeValue } from "@/packages/Frameworks/_shared/sizing";
4
- import type { ThemePaint } from "@/packages/Frameworks/Theme/Theme.types";
1
+ import type { IconProps } from "../Icon/Icon.types";
2
+ import type { TextProps } from "../Text/Text.types";
3
+ import type { UIKitSizeValue } from "../../Frameworks/_shared/sizing";
4
+ import type { ThemePaint } from "../../Frameworks/Theme/Theme.types";
5
5
 
6
6
  export type ProfileAvatarLoading = "eager" | "lazy";
7
7
 
@@ -1,10 +1,10 @@
1
1
  import clsx from "clsx";
2
2
  import type { CSSProperties } from "react";
3
- import styles from "@/packages/Components/Progress/Progress.module.scss";
4
- import type { ProgressProps } from "@/packages/Components/Progress/Progress.types";
5
- import Spinner from "@/packages/Components/Spinner/Spinner";
6
- import { resolveThemeClasses } from "@/packages/Frameworks/Theme/Theme.types";
7
- import View from "@/packages/Frameworks/View/View";
3
+ import styles from "./Progress.module.scss";
4
+ import type { ProgressProps } from "./Progress.types";
5
+ import Spinner from "../Spinner/Spinner";
6
+ import { resolveThemeClasses } from "../../Frameworks/Theme/Theme.types";
7
+ import View from "../../Frameworks/View/View";
8
8
 
9
9
  function clampValue(value: number, min: number, max: number) {
10
10
  return Math.max(min, Math.min(max, value));
@@ -1,9 +1,9 @@
1
1
  import type { CSSProperties } from "react";
2
- import type { RadiusProps } from "@/packages/Frameworks/Theme/Radius.types";
2
+ import type { RadiusProps } from "../../Frameworks/Theme/Radius.types";
3
3
  import type {
4
4
  ThemeBackgroundPaint,
5
5
  ThemePaint,
6
- } from "@/packages/Frameworks/Theme/Theme.types";
6
+ } from "../../Frameworks/Theme/Theme.types";
7
7
 
8
8
  export interface ProgressProps extends RadiusProps {
9
9
  "data-color-mode"?: string;
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
 
3
3
  import { useEffect, useRef, useState } from "react";
4
- import styles from "@/packages/Components/Radio/Radio.module.scss";
5
- import type { RadioProps } from "@/packages/Components/Radio/Radio.types";
6
- import Text from "@/packages/Components/Text/Text";
7
- import { Size } from "@/packages/Frameworks/_shared/sizing";
8
- import View from "@/packages/Frameworks/View/View";
4
+ import styles from "./Radio.module.scss";
5
+ import type { RadioProps } from "./Radio.types";
6
+ import Text from "../Text/Text";
7
+ import { Size } from "../../Frameworks/_shared/sizing";
8
+ import View from "../../Frameworks/View/View";
9
9
 
10
10
  export default function Radio({
11
11
  title,
@@ -1,10 +1,10 @@
1
- import type { TextProps } from "@/packages/Components/Text/Text.types";
2
- import type { UIKitSizeValue } from "@/packages/Frameworks/_shared/sizing";
3
- import type { RadiusProps } from "@/packages/Frameworks/Theme/Radius.types";
1
+ import type { TextProps } from "../Text/Text.types";
2
+ import type { UIKitSizeValue } from "../../Frameworks/_shared/sizing";
3
+ import type { RadiusProps } from "../../Frameworks/Theme/Radius.types";
4
4
  import type {
5
5
  BorderProps,
6
6
  ThemeSystemProps,
7
- } from "@/packages/Frameworks/Theme/Theme.types";
7
+ } from "../../Frameworks/Theme/Theme.types";
8
8
 
9
9
  export interface RadioProps
10
10
  extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "color">,
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useCallback, useRef } from "react";
4
- import type { Option } from "@/packages/Components/Select/Select.types";
4
+ import type { Option } from "./Select.types";
5
5
 
6
6
  const TYPE_AHEAD_RESET_MS = 500;
7
7
 
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import type { KeyboardEvent, ReactElement } from "react";
3
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
4
- import Text from "@/packages/Components/Text/Text";
5
- import View from "@/packages/Frameworks/View/View";
3
+ import Text from "../Text/Text";
4
+ import Pressable from "../../Frameworks/Pressable/Pressable";
5
+ import View from "../../Frameworks/View/View";
6
6
 
7
7
  interface SelectTriggerProps {
8
8
  selectId: string;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import type { ReactElement } from "react";
3
- import type { SelectProps } from "@/packages/Components/Select/Select.types";
4
- import SelectInner from "@/packages/Components/Select/select.inner";
3
+ import type { SelectProps } from "./Select.types";
4
+ import SelectInner from "./select.inner";
5
5
 
6
6
  export default function Select(props: SelectProps<false>): ReactElement;
7
7
  export default function Select(props: SelectProps<true>): ReactElement;
@@ -18,7 +18,7 @@ export type SelectChangeEvent<Multiple extends boolean = false> =
18
18
  | React.ChangeEvent<HTMLSelectElement>
19
19
  | { target: { value: SelectValue<Multiple> } };
20
20
 
21
- import type { LabelSharedProps } from "@/packages/Components/Label/Label.types";
21
+ import type { LabelSharedProps } from "../Label/Label.types";
22
22
 
23
23
  export interface SelectProps<Multiple extends boolean = false>
24
24
  extends LabelSharedProps {
@@ -1,7 +1,7 @@
1
1
  import type {
2
2
  OptGroup,
3
3
  Option,
4
- } from "@/packages/Components/Select/Select.types";
4
+ } from "./Select.types";
5
5
 
6
6
  type ScrollLockSnapshot = {
7
7
  count: number;
@@ -6,19 +6,19 @@ import {
6
6
  useCallback,
7
7
  useEffect,
8
8
  } from "react";
9
- import type { SelectState } from "@/packages/Components/Select/hooks/useSelectState";
9
+ import type { SelectState } from "./useSelectState";
10
10
  import {
11
11
  handleEndKey,
12
12
  handleHomeKey,
13
13
  isPrintableCharacter,
14
14
  useTypeAhead,
15
- } from "@/packages/Components/Select/Select.keyboard";
16
- import type { Option } from "@/packages/Components/Select/Select.types";
15
+ } from "../Select.keyboard";
16
+ import type { Option } from "../Select.types";
17
17
  import {
18
18
  findScrollableAncestor,
19
19
  lockScrollElementSafe,
20
20
  unlockScrollElementSafe,
21
- } from "@/packages/Components/Select/Select.utils";
21
+ } from "../Select.utils";
22
22
 
23
23
  export function useSelectNavigation(
24
24
  state: SelectState,
@@ -322,10 +322,7 @@ export function useSelectNavigation(
322
322
  );
323
323
 
324
324
  const handleControlKeyDown = useCallback(
325
- (
326
- e: KeyboardEvent<HTMLInputElement | HTMLButtonElement>,
327
- allowSpaceSelection: boolean,
328
- ) => {
325
+ (e: KeyboardEvent<Element>, allowSpaceSelection: boolean) => {
329
326
  if (e.key === "Tab") {
330
327
  setOpen(false);
331
328
  return;
@@ -436,7 +433,7 @@ export function useSelectNavigation(
436
433
  const handleTriggerClick = useCallback(() => {
437
434
  if (Date.now() < suppressClickUntilRef.current) return;
438
435
  toggleOpenFromTrigger();
439
- }, [toggleOpenFromTrigger]);
436
+ }, [toggleOpenFromTrigger, suppressClickUntilRef.current]);
440
437
  const handleTriggerPointerUp = useCallback(
441
438
  (e: ReactPointerEvent<HTMLButtonElement>) => {
442
439
  if (e.pointerType !== "touch") return;
@@ -444,7 +441,7 @@ export function useSelectNavigation(
444
441
  suppressClickUntilRef.current = Date.now() + 400;
445
442
  toggleOpenFromTrigger();
446
443
  },
447
- [toggleOpenFromTrigger],
444
+ [toggleOpenFromTrigger, suppressClickUntilRef],
448
445
  );
449
446
 
450
447
  return {
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { useCallback } from "react";
3
- import type { SelectState } from "@/packages/Components/Select/hooks/useSelectState";
3
+ import type { SelectState } from "./useSelectState";
4
4
  import type {
5
5
  Option,
6
6
  SelectChangeEvent,
7
7
  SelectValue,
8
- } from "@/packages/Components/Select/Select.types";
9
- import { filterOptionsByQuery } from "@/packages/Components/Select/Select.utils";
8
+ } from "../Select.types";
9
+ import { filterOptionsByQuery } from "../Select.utils";
10
10
 
11
11
  export function useSelectSelection(state: SelectState) {
12
12
  const {
@@ -8,17 +8,17 @@ import {
8
8
  useRef,
9
9
  useState,
10
10
  } from "react";
11
- import { Word } from "@/i18n/shared";
11
+ import { Word } from "../../../../i18n/shared";
12
12
  import type {
13
13
  Option,
14
14
  SelectProps,
15
- } from "@/packages/Components/Select/Select.types";
15
+ } from "../Select.types";
16
16
  import {
17
17
  filterOptionsByQuery,
18
18
  findScrollableAncestor,
19
19
  getStringValues,
20
20
  isOptGroup,
21
- } from "@/packages/Components/Select/Select.utils";
21
+ } from "../Select.utils";
22
22
 
23
23
  export function useSelectState(props: SelectProps<boolean>) {
24
24
  const t = Word();
@@ -4,14 +4,13 @@ import type {
4
4
  ReactElement,
5
5
  MouseEvent as ReactMouseEvent,
6
6
  } from "react";
7
- import Pill from "@/packages/Components/Pill/Pill";
8
- import SelectTrigger from "@/packages/Components/Select/Select.trigger";
9
- import type { SelectNavigation } from "@/packages/Components/Select/hooks/useSelectNavigation";
10
- import type { SelectState } from "@/packages/Components/Select/hooks/useSelectState";
11
- import type { SelectValue } from "@/packages/Components/Select/Select.types";
12
- import { filterOptionsByQuery } from "@/packages/Components/Select/Select.utils";
13
- import Text from "@/packages/Components/Text/Text";
14
- import View from "@/packages/Frameworks/View/View";
7
+ import Pill from "../Pill/Pill";
8
+ import type { SelectNavigation } from "./hooks/useSelectNavigation";
9
+ import type { SelectState } from "./hooks/useSelectState";
10
+ import SelectTrigger from "./Select.trigger";
11
+ import type { SelectValue } from "./Select.types";
12
+ import { filterOptionsByQuery } from "./Select.utils";
13
+ import View from "../../Frameworks/View/View";
15
14
 
16
15
  interface SelectControlProps {
17
16
  state: SelectState;
@@ -54,19 +53,10 @@ export default function SelectControl({
54
53
  visibleOptions,
55
54
  } = state;
56
55
 
57
- const {
58
- placeholder,
59
- title,
60
- disabled,
61
- readOnly,
62
- required,
63
- } = props;
56
+ const { placeholder, title, disabled, readOnly, required } = props;
64
57
 
65
- const {
66
- handleControlKeyDown,
67
- handleTriggerClick,
68
- handleTriggerPointerUp,
69
- } = navigation;
58
+ const { handleControlKeyDown, handleTriggerClick, handleTriggerPointerUp } =
59
+ navigation;
70
60
 
71
61
  const selectedPills =
72
62
  isMultiple && selectedOptions.length > 0 ? (
@@ -159,9 +149,7 @@ export default function SelectControl({
159
149
  }
160
150
  value={isMultiple ? query : inputValue}
161
151
  placeholder={
162
- isMultiple && selectedOptions.length > 0
163
- ? undefined
164
- : placeholderText
152
+ isMultiple && selectedOptions.length > 0 ? undefined : placeholderText
165
153
  }
166
154
  className="Subheadline"
167
155
  onFocus={() => {
@@ -186,7 +174,10 @@ export default function SelectControl({
186
174
  const nextQuery = e.target.value;
187
175
  setOpenSource("keyboard");
188
176
  if (!isMultiple) {
189
- if (selectedValues.length > 0 && nextQuery !== selectedOptionLabel) {
177
+ if (
178
+ selectedValues.length > 0 &&
179
+ nextQuery !== selectedOptionLabel
180
+ ) {
190
181
  setSelectedValues([]);
191
182
  emitNativeChange("" as SelectValue<boolean>);
192
183
  }
@@ -5,16 +5,16 @@ import {
5
5
  type MouseEvent as ReactMouseEvent,
6
6
  useMemo,
7
7
  } from "react";
8
- import ContextMenu from "@/packages/Components/ContextMenu/ContextMenu";
9
- import Icon from "@/packages/Components/Icon/Icon";
10
- import Label from "@/packages/Components/Label/Label";
11
- import { useSelectNavigation } from "@/packages/Components/Select/hooks/useSelectNavigation";
12
- import { useSelectSelection } from "@/packages/Components/Select/hooks/useSelectSelection";
13
- import { useSelectState } from "@/packages/Components/Select/hooks/useSelectState";
14
- import type { SelectProps } from "@/packages/Components/Select/Select.types";
15
- import { filterOptionsByQuery } from "@/packages/Components/Select/Select.utils";
16
- import SelectControl from "@/packages/Components/Select/select.control";
17
- import View from "@/packages/Frameworks/View/View";
8
+ import ContextMenu from "../ContextMenu/ContextMenu";
9
+ import Icon from "../Icon/Icon";
10
+ import Label from "../Label/Label";
11
+ import { useSelectNavigation } from "./hooks/useSelectNavigation";
12
+ import { useSelectSelection } from "./hooks/useSelectSelection";
13
+ import { useSelectState } from "./hooks/useSelectState";
14
+ import type { SelectProps } from "./Select.types";
15
+ import { filterOptionsByQuery } from "./Select.utils";
16
+ import SelectControl from "./select.control";
17
+ import View from "../../Frameworks/View/View";
18
18
 
19
19
  export default function SelectInner(props: SelectProps<boolean>): ReactElement {
20
20
  const state = useSelectState(props);
@@ -1,5 +1,5 @@
1
- import type { SkeletonProps } from "@/packages/Components/Skeleton/Skeleton.types";
2
- import View from "@/packages/Frameworks/View/View";
1
+ import type { SkeletonProps } from "./Skeleton.types";
2
+ import View from "../../Frameworks/View/View";
3
3
 
4
4
  export default function Skeleton({
5
5
  className,
@@ -1,5 +1,5 @@
1
- import type { TextProps } from "@/packages/Components/Text/Text.types";
2
- import type { UIKitSizeValue } from "@/packages/Frameworks/_shared/sizing";
1
+ import type { TextProps } from "../Text/Text.types";
2
+ import type { UIKitSizeValue } from "../../Frameworks/_shared/sizing";
3
3
 
4
4
  export interface SkeletonProps {
5
5
  "data-color-mode"?: string;
@@ -1,10 +1,10 @@
1
1
  import clsx from "clsx";
2
2
  import type { CSSProperties } from "react";
3
- import styles from "@/packages/Components/Spinner/Spinner.module.scss";
4
- import type { SpinnerProps } from "@/packages/Components/Spinner/Spinner.types";
5
- import { Size } from "@/packages/Frameworks/_shared/sizing";
6
- import { resolveThemeClasses } from "@/packages/Frameworks/Theme/Theme.types";
7
- import View from "@/packages/Frameworks/View/View";
3
+ import styles from "./Spinner.module.scss";
4
+ import type { SpinnerProps } from "./Spinner.types";
5
+ import { Size } from "../../Frameworks/_shared/sizing";
6
+ import { resolveThemeClasses } from "../../Frameworks/Theme/Theme.types";
7
+ import View from "../../Frameworks/View/View";
8
8
 
9
9
  const SPINNER_SEGMENTS = 12;
10
10
  const SPINNER_VISUAL_SCALE_BY_TYPE = {
@@ -1,6 +1,6 @@
1
1
  import type { AriaRole, CSSProperties, SVGAttributes } from "react";
2
- import type { UIKitSizeValue } from "@/packages/Frameworks/_shared/sizing";
3
- import type { ThemePaint } from "@/packages/Frameworks/Theme/Theme.types";
2
+ import type { UIKitSizeValue } from "../../Frameworks/_shared/sizing";
3
+ import type { ThemePaint } from "../../Frameworks/Theme/Theme.types";
4
4
 
5
5
  export interface SpinnerProps {
6
6
  "data-color-mode"?: string;
@@ -1,7 +1,7 @@
1
1
  import clsx from "clsx";
2
- import styles from "@/packages/Components/Text/Text.module.scss";
3
- import type { TextProps } from "@/packages/Components/Text/Text.types";
4
- import { Size } from "@/packages/Frameworks/_shared/sizing";
2
+ import styles from "./Text.module.scss";
3
+ import type { TextProps } from "./Text.types";
4
+ import { Size } from "../../Frameworks/_shared/sizing";
5
5
 
6
6
  export default function Text({
7
7
  children,
@@ -1,5 +1,5 @@
1
- import type { UIKitSizeValue } from "@/packages/Frameworks/_shared/sizing";
2
- import type { ThemePaint } from "@/packages/Frameworks/Theme/Theme.types";
1
+ import type { UIKitSizeValue } from "../../Frameworks/_shared/sizing";
2
+ import type { ThemePaint } from "../../Frameworks/Theme/Theme.types";
3
3
 
4
4
  export interface TextProps {
5
5
  "data-color-mode"?: string;
@@ -9,10 +9,10 @@ import {
9
9
  useMemo,
10
10
  useRef,
11
11
  } from "react";
12
- import Text from "@/packages/Components/Text/Text";
13
- import styles from "@/packages/Components/TimePicker/TimePicker.module.scss";
14
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
15
- import View from "@/packages/Frameworks/View/View";
12
+ import Text from "../Text/Text";
13
+ import styles from "./TimePicker.module.scss";
14
+ import Pressable from "../../Frameworks/Pressable/Pressable";
15
+ import View from "../../Frameworks/View/View";
16
16
 
17
17
  type Segment = "hour" | "minute" | "second" | "ampm";
18
18
 
@@ -10,13 +10,13 @@ import {
10
10
  useRef,
11
11
  useState,
12
12
  } from "react";
13
- import Icon from "@/packages/Components/Icon/Icon";
14
- import Label from "@/packages/Components/Label/Label";
15
- import Text from "@/packages/Components/Text/Text";
16
- import styles from "@/packages/Components/TimePicker/TimePicker.module.scss";
17
- import type { TimePickerProps } from "@/packages/Components/TimePicker/TimePicker.types";
18
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
19
- import View from "@/packages/Frameworks/View/View";
13
+ import Icon from "../Icon/Icon";
14
+ import Label from "../Label/Label";
15
+ import Text from "../Text/Text";
16
+ import styles from "./TimePicker.module.scss";
17
+ import type { TimePickerProps } from "./TimePicker.types";
18
+ import Pressable from "../../Frameworks/Pressable/Pressable";
19
+ import View from "../../Frameworks/View/View";
20
20
 
21
21
  type Segment = "hour" | "minute" | "second" | "ampm";
22
22
 
@@ -1,4 +1,4 @@
1
- import type { LabelProps } from "@/packages/Components/Label/Label.types";
1
+ import type { LabelProps } from "../Label/Label.types";
2
2
 
3
3
  export interface TimePickerProps {
4
4
  "data-color-mode"?: string;
@@ -1,11 +1,11 @@
1
- import Divider from "@/packages/Components/Divider/Divider";
2
- import Icon from "@/packages/Components/Icon/Icon";
1
+ import Divider from "../Divider/Divider";
2
+ import Icon from "../Icon/Icon";
3
3
  import type {
4
4
  TimelineItemProps,
5
5
  TimelineProps,
6
- } from "@/packages/Components/Timeline/Timeline.types";
7
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
8
- import View from "@/packages/Frameworks/View/View";
6
+ } from "./Timeline.types";
7
+ import Pressable from "../../Frameworks/Pressable/Pressable";
8
+ import View from "../../Frameworks/View/View";
9
9
 
10
10
  function TimelineItem({
11
11
  item,
@@ -1,6 +1,6 @@
1
- import type { IconProps } from "@/packages/Components/Icon/Icon.types";
2
- import type { PressableProps } from "@/packages/Frameworks/Pressable/Pressable.types";
3
- import type { ThemeSystemProps } from "@/packages/Frameworks/Theme/Theme.types";
1
+ import type { IconProps } from "../Icon/Icon.types";
2
+ import type { PressableProps } from "../../Frameworks/Pressable/Pressable.types";
3
+ import type { ThemeSystemProps } from "../../Frameworks/Theme/Theme.types";
4
4
 
5
5
  export interface TimelineItemProps {
6
6
  children?: React.ReactNode;
@@ -1,15 +1,15 @@
1
1
  import clsx from "clsx";
2
- import IconGroup from "@/packages/Components/Icon/Icon.group";
3
- import { IconInner } from "@/packages/Components/Icon/Icon";
4
- import Pill from "@/packages/Components/Pill/Pill";
5
- import Text from "@/packages/Components/Text/Text";
2
+ import { IconInner } from "../Icon/Icon";
3
+ import IconGroup from "../Icon/Icon.group";
4
+ import Pill from "../Pill/Pill";
5
+ import Text from "../Text/Text";
6
6
  import type {
7
7
  TitleContextItem,
8
8
  TitleContextProps,
9
9
  TitleProps,
10
- } from "@/packages/Components/Title/Title.types";
11
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
12
- import View from "@/packages/Frameworks/View/View";
10
+ } from "./Title.types";
11
+ import Pressable from "../../Frameworks/Pressable/Pressable";
12
+ import View from "../../Frameworks/View/View";
13
13
 
14
14
  const buildRenderKeys = <T,>(
15
15
  items: T[],