@musecat/uikit 0.1.3 → 0.2.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 (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 +2 -0
  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 +58 -57
  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 +11 -11
  54. package/packages/Components/Card/Card.foldable.tsx +14 -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 +5 -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 +7 -7
  65. package/packages/Components/ContextMenu/ContextMenu.types.ts +1 -1
  66. package/packages/Components/ContributionGraph/ContributionGraph.tsx +6 -6
  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 +14 -14
  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 +7 -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 +5 -5
  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 +8 -8
  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 +5 -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 +2 -2
  141. package/packages/Frameworks/Dialog/hooks/useSheetGeometry.ts +2 -2
  142. package/packages/Frameworks/Dialog/hooks/useSheetProgressive.ts +1 -1
  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 +15 -15
  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 +9 -9
  149. package/packages/Frameworks/Pressable/Pressable.types.ts +5 -5
  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 +4 -4
  154. package/packages/Frameworks/Toaster/Toaster.types.ts +1 -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 +4 -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 +11 -10
  167. package/packages/Frameworks/View/ImageView/Image.types.ts +2 -2
  168. package/packages/Frameworks/View/ImageView/Image.utils.ts +1 -1
  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 +1 -1
  172. package/packages/Frameworks/_shared/StopParentInteraction.tsx +1 -1
  173. package/packages/Frameworks/_shared/Wind.types.ts +1 -1
package/i18n/shared.ts ADDED
@@ -0,0 +1,54 @@
1
+ import enUIKitMessages from "./messages/en/uikit.json";
2
+ import jpUIKitMessages from "./messages/jp/uikit.json";
3
+ import krUIKitMessages from "./messages/kr/uikit.json";
4
+
5
+ export type Locale = "en" | "kr" | "jp";
6
+
7
+ export type UIKitMessages = typeof krUIKitMessages;
8
+
9
+ const UIKIT_BY_LOCALE: Record<Locale, UIKitMessages> = {
10
+ en: enUIKitMessages,
11
+ kr: krUIKitMessages,
12
+ jp: jpUIKitMessages,
13
+ };
14
+
15
+ export function normalizeLocale(locale?: string): Locale {
16
+ const normalized =
17
+ typeof locale === "string" ? locale.trim().toLowerCase() : "";
18
+
19
+ if (normalized === "kr" || normalized === "ko") return "kr";
20
+ if (normalized === "jp" || normalized === "ja") return "jp";
21
+ if (normalized === "en") return "en";
22
+
23
+ if (typeof document !== "undefined") {
24
+ const documentLocale = document.documentElement.lang?.trim().toLowerCase();
25
+ if (documentLocale === "kr" || documentLocale === "ko") return "kr";
26
+ if (documentLocale === "jp" || documentLocale === "ja") return "jp";
27
+ if (documentLocale === "en") return "en";
28
+ }
29
+
30
+ return "en";
31
+ }
32
+
33
+ export function Word(locale?: string): UIKitMessages {
34
+ return UIKIT_BY_LOCALE[normalizeLocale(locale)];
35
+ }
36
+
37
+ function interpolate(
38
+ template: string,
39
+ params: Record<string, string | number>,
40
+ ): string {
41
+ return template.replace(/\{(\w+)\}/g, (_, key) =>
42
+ key in params ? String(params[key]) : `{${key}}`,
43
+ );
44
+ }
45
+
46
+ export function UIKitT(locale?: string) {
47
+ const messages = Word(locale);
48
+ return {
49
+ ...messages.UIKit.actions,
50
+ ...messages.UIKit.presets,
51
+ ...messages.UIKit.ui,
52
+ interpolate,
53
+ };
54
+ }
package/index.ts CHANGED
@@ -1,26 +1,27 @@
1
+ /// <reference path="./global.d.ts" />
1
2
  // Frameworks
2
- export { default as View } from "@/packages/Frameworks/View/View";
3
- export { default as Pressable } from "@/packages/Frameworks/Pressable/Pressable";
4
- export { default as ImageView } from "@/packages/Frameworks/View/ImageView/Image";
5
- export { default as HScrollView } from "@/packages/Frameworks/View/HScrollView/HScrollView";
6
- export { default as DNDView } from "@/packages/Frameworks/View/DNDView/DNDView";
7
- export { default as Dialog, useDialog } from "@/packages/Frameworks/Dialog/Dialog";
8
- export { dialog, DialogStore } from "@/packages/Frameworks/Dialog/Dialog.store";
9
- export type { DialogInstance } from "@/packages/Frameworks/Dialog/Dialog.store";
10
- export { default as DialogBootstrap } from "@/packages/Frameworks/Dialog/Dialog.boot";
11
- export { default as ToasterBootstrap, toast } from "@/packages/Frameworks/Toaster/Toaster.boot";
12
- export type { ToasterBootstrapProps } from "@/packages/Frameworks/Toaster/Toaster.types";
13
- export { default as Squircle } from "@/packages/Frameworks/Squircle/Squircle";
14
- export { default as EdgeEffect } from "@/packages/Frameworks/EdgeEffect/EdgeEffect";
15
- export { motionTransitions, motionPresets } from "@/packages/Frameworks/Motion/Motion.presets";
16
- export { default as StopParentInteraction } from "@/packages/Frameworks/_shared/StopParentInteraction";
17
- export { useScrollLock } from "@/packages/Frameworks/_shared/bodyScrollLock";
18
- export { useControllableState } from "@/packages/Frameworks/_shared/useControllableState";
19
- export { Size, SizePX } from "@/packages/Frameworks/_shared/sizing";
20
- export { normalizeUIKitImageSrc, normalizeBrandIconClass, normalizeLang } from "@/packages/Frameworks/_shared/normalize";
21
- export { LAYER_Z_INDEX } from "@/packages/Frameworks/_shared/layer.constants";
22
- export { default as DialogHeader } from "@/packages/Frameworks/Dialog/contents/Dialog.header";
23
- export { default as DialogFooter } from "@/packages/Frameworks/Dialog/contents/Dialog.footer";
3
+ export { default as View } from "./packages/Frameworks/View/View";
4
+ export { default as Pressable } from "./packages/Frameworks/Pressable/Pressable";
5
+ export { default as ImageView } from "./packages/Frameworks/View/ImageView/Image";
6
+ export { default as HScrollView } from "./packages/Frameworks/View/HScrollView/HScrollView";
7
+ export { default as DNDView } from "./packages/Frameworks/View/DNDView/DNDView";
8
+ export { default as Dialog, useDialog } from "./packages/Frameworks/Dialog/Dialog";
9
+ export { dialog, DialogStore } from "./packages/Frameworks/Dialog/Dialog.store";
10
+ export type { DialogInstance } from "./packages/Frameworks/Dialog/Dialog.store";
11
+ export { default as DialogBootstrap } from "./packages/Frameworks/Dialog/Dialog.boot";
12
+ export { default as ToasterBootstrap, toast } from "./packages/Frameworks/Toaster/Toaster.boot";
13
+ export type { ToasterBootstrapProps } from "./packages/Frameworks/Toaster/Toaster.types";
14
+ export { default as Squircle } from "./packages/Frameworks/Squircle/Squircle";
15
+ export { default as EdgeEffect } from "./packages/Frameworks/EdgeEffect/EdgeEffect";
16
+ export { motionTransitions, motionPresets } from "./packages/Frameworks/Motion/Motion.presets";
17
+ export { default as StopParentInteraction } from "./packages/Frameworks/_shared/StopParentInteraction";
18
+ export { useScrollLock } from "./packages/Frameworks/_shared/bodyScrollLock";
19
+ export { useControllableState } from "./packages/Frameworks/_shared/useControllableState";
20
+ export { Size, SizePX } from "./packages/Frameworks/_shared/sizing";
21
+ export { normalizeUIKitImageSrc, normalizeBrandIconClass, normalizeLang } from "./packages/Frameworks/_shared/normalize";
22
+ export { LAYER_Z_INDEX } from "./packages/Frameworks/_shared/layer.constants";
23
+ export { default as DialogHeader } from "./packages/Frameworks/Dialog/contents/Dialog.header";
24
+ export { default as DialogFooter } from "./packages/Frameworks/Dialog/contents/Dialog.footer";
24
25
 
25
26
  // Theme
26
27
  export {
@@ -39,40 +40,40 @@ export {
39
40
  type ThemeSystemProps,
40
41
  type BorderProps,
41
42
  type BackgroundBlurValue,
42
- } from "@/packages/Frameworks/Theme/Theme.types";
43
- export { Radius } from "@/packages/Frameworks/Theme/Radius.types";
44
- export type { RadiusProps, RadiusValue, RadiusScale } from "@/packages/Frameworks/Theme/Radius.types";
43
+ } from "./packages/Frameworks/Theme/Theme.types";
44
+ export { Radius } from "./packages/Frameworks/Theme/Radius.types";
45
+ export type { RadiusProps, RadiusValue, RadiusScale } from "./packages/Frameworks/Theme/Radius.types";
45
46
 
46
47
  // Components
47
- export { default as Box } from "@/packages/Components/Box/Box";
48
- export { default as Button } from "@/packages/Components/Button/Button";
49
- export { default as Card } from "@/packages/Components/Card/Card";
50
- export { default as CardDefault } from "@/packages/Components/Card/Card.default";
51
- export { default as CardFoldable } from "@/packages/Components/Card/Card.foldable";
52
- export { default as Checkbox } from "@/packages/Components/Checkbox/Checkbox";
53
- export { default as CodeBox } from "@/packages/Components/CodeBox/CodeBox";
54
- export { default as ContextMenu } from "@/packages/Components/ContextMenu/ContextMenu";
55
- export { default as ContributionGraph } from "@/packages/Components/ContributionGraph/ContributionGraph";
56
- export { default as DatePicker } from "@/packages/Components/DatePicker/DatePicker";
57
- export { default as Divider } from "@/packages/Components/Divider/Divider";
58
- export { default as Header } from "@/packages/Components/Header/Header";
59
- export { default as Icon } from "@/packages/Components/Icon/Icon";
60
- export { default as Input } from "@/packages/Components/Input/Input";
61
- export { default as Label } from "@/packages/Components/Label/Label";
62
- export { default as Layout, LayoutGrid, LayoutSection } from "@/packages/Components/Layout/Layout";
63
- export { default as MapOSM } from "@/packages/Components/Maps/OSM/MapOSM";
64
- export { default as Nav } from "@/packages/Components/Nav/Nav";
65
- export { default as Pagination } from "@/packages/Components/Pagination/Pagination";
66
- export { default as Pill } from "@/packages/Components/Pill/Pill";
67
- export { default as Profile } from "@/packages/Components/Profile/Profile";
68
- export { default as Progress } from "@/packages/Components/Progress/Progress";
69
- export { default as Radio } from "@/packages/Components/Radio/Radio";
70
- export { default as Select } from "@/packages/Components/Select/Select";
71
- export { default as Skeleton } from "@/packages/Components/Skeleton/Skeleton";
72
- export { default as Spinner } from "@/packages/Components/Spinner/Spinner";
73
- export { default as Text } from "@/packages/Components/Text/Text";
74
- export { default as TimePicker } from "@/packages/Components/TimePicker/TimePicker";
75
- export { default as Timeline } from "@/packages/Components/Timeline/Timeline";
76
- export { default as Title } from "@/packages/Components/Title/Title";
77
- export { default as Toggle } from "@/packages/Components/Toggle/Toggle";
78
- export { default as Tooltip } from "@/packages/Components/Tooltip/Tooltip";
48
+ export { default as Box } from "./packages/Components/Box/Box";
49
+ export { default as Button } from "./packages/Components/Button/Button";
50
+ export { default as Card } from "./packages/Components/Card/Card";
51
+ export { default as CardDefault } from "./packages/Components/Card/Card.default";
52
+ export { default as CardFoldable } from "./packages/Components/Card/Card.foldable";
53
+ export { default as Checkbox } from "./packages/Components/Checkbox/Checkbox";
54
+ export { default as CodeBox } from "./packages/Components/CodeBox/CodeBox";
55
+ export { default as ContextMenu } from "./packages/Components/ContextMenu/ContextMenu";
56
+ export { default as ContributionGraph } from "./packages/Components/ContributionGraph/ContributionGraph";
57
+ export { default as DatePicker } from "./packages/Components/DatePicker/DatePicker";
58
+ export { default as Divider } from "./packages/Components/Divider/Divider";
59
+ export { default as Header } from "./packages/Components/Header/Header";
60
+ export { default as Icon } from "./packages/Components/Icon/Icon";
61
+ export { default as Input } from "./packages/Components/Input/Input";
62
+ export { default as Label } from "./packages/Components/Label/Label";
63
+ export { default as Layout, LayoutGrid, LayoutSection } from "./packages/Components/Layout/Layout";
64
+ export { default as MapOSM } from "./packages/Components/Maps/OSM/MapOSM";
65
+ export { default as Nav } from "./packages/Components/Nav/Nav";
66
+ export { default as Pagination } from "./packages/Components/Pagination/Pagination";
67
+ export { default as Pill } from "./packages/Components/Pill/Pill";
68
+ export { default as Profile } from "./packages/Components/Profile/Profile";
69
+ export { default as Progress } from "./packages/Components/Progress/Progress";
70
+ export { default as Radio } from "./packages/Components/Radio/Radio";
71
+ export { default as Select } from "./packages/Components/Select/Select";
72
+ export { default as Skeleton } from "./packages/Components/Skeleton/Skeleton";
73
+ export { default as Spinner } from "./packages/Components/Spinner/Spinner";
74
+ export { default as Text } from "./packages/Components/Text/Text";
75
+ export { default as TimePicker } from "./packages/Components/TimePicker/TimePicker";
76
+ export { default as Timeline } from "./packages/Components/Timeline/Timeline";
77
+ export { default as Title } from "./packages/Components/Title/Title";
78
+ export { default as Toggle } from "./packages/Components/Toggle/Toggle";
79
+ export { default as Tooltip } from "./packages/Components/Tooltip/Tooltip";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@musecat/uikit",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "High-performance Next.js React UI component library with Squircle shapes, theme tokens, and gesture-driven overlays",
@@ -33,7 +33,9 @@
33
33
  },
34
34
  "files": [
35
35
  "index.ts",
36
- "packages/",
36
+ "packages",
37
+ "i18n",
38
+ "global.d.ts",
37
39
  ".agents/",
38
40
  "AGENTS.md",
39
41
  "CLAUDE.md",
@@ -41,6 +43,7 @@
41
43
  "LICENSE"
42
44
  ],
43
45
  "sideEffects": [
46
+ "**/*.css",
44
47
  "**/*.scss"
45
48
  ],
46
49
  "overrides": {
@@ -64,7 +67,6 @@
64
67
  "@dnd-kit/core": "^6.3.1",
65
68
  "@dnd-kit/sortable": "^10.0.0",
66
69
  "@dnd-kit/utilities": "^3.2.2",
67
- "@musecat/functionkit": "^1.0.1",
68
70
  "@use-funnel/browser": "^0.0.17",
69
71
  "clsx": "^2.1.1",
70
72
  "embla-carousel": "^8.6.0",
@@ -72,17 +74,26 @@
72
74
  "embla-carousel-wheel-gestures": "^8.1.0",
73
75
  "figma-squircle": "1.1.0",
74
76
  "maplibre-gl": "^5.24.0",
75
- "motion": "^12.42.2",
76
- "next": "16.2.10",
77
77
  "next-intl": "^4.13.1",
78
78
  "prismjs": "^1.30.0",
79
- "react": "19.2.7",
80
- "react-dom": "19.2.7",
81
- "sharp": "^0.35.3",
82
79
  "sonner": "^2.0.7"
83
80
  },
81
+ "optionalDependencies": {
82
+ "sharp": "^0.35.3"
83
+ },
84
+ "peerDependencies": {
85
+ "@musecat/functionkit": "^1.2.0",
86
+ "motion": "^12.0.0",
87
+ "next": "^16.0.0",
88
+ "react": "^19.0.0",
89
+ "react-dom": "^19.0.0"
90
+ },
84
91
  "devDependencies": {
85
92
  "@biomejs/biome": "2.5.2",
93
+ "@dnd-kit/core": "^6.3.1",
94
+ "@dnd-kit/sortable": "^10.0.0",
95
+ "@dnd-kit/utilities": "^3.2.2",
96
+ "@musecat/functionkit": "^1.2.0",
86
97
  "@testing-library/jest-dom": "^6.9.1",
87
98
  "@testing-library/react": "^16.3.2",
88
99
  "@testing-library/user-event": "^14.6.1",
@@ -90,17 +101,29 @@
90
101
  "@types/prismjs": "^1.26.6",
91
102
  "@types/react": "^19",
92
103
  "@types/react-dom": "^19",
104
+ "@use-funnel/browser": "^0.0.17",
105
+ "@vitest/coverage-v8": "^4.1.10",
93
106
  "babel-plugin-react-compiler": "1.0.0",
107
+ "embla-carousel": "^8.6.0",
108
+ "embla-carousel-react": "^8.6.0",
109
+ "embla-carousel-wheel-gestures": "^8.1.0",
94
110
  "jsdom": "^29.1.1",
111
+ "maplibre-gl": "^5.24.0",
112
+ "motion": "^12.42.2",
113
+ "next": "16.2.10",
114
+ "next-intl": "^4.13.1",
95
115
  "prettier": "^3.9.5",
116
+ "prismjs": "^1.30.0",
117
+ "react": "19.2.7",
118
+ "react-dom": "19.2.7",
96
119
  "sass": "^1.101.0",
120
+ "sonner": "^2.0.7",
97
121
  "stylelint": "^17.14.0",
98
122
  "stylelint-config-standard-scss": "^17.0.0",
99
123
  "stylelint-declaration-strict-value": "^1.11.1",
100
124
  "stylelint-scss": "^7.2.0",
101
125
  "ts-morph": "^28.0.0",
102
126
  "typescript": "^6",
103
- "vitest": "^4.1.10",
104
- "@vitest/coverage-v8": "^4.1.10"
127
+ "vitest": "^4.1.10"
105
128
  }
106
129
  }
@@ -3,13 +3,13 @@ import type {
3
3
  BoxContentProps,
4
4
  BoxFooterProps,
5
5
  BoxProps,
6
- } from "@/packages/Components/Box/Box.types";
7
- import Divider from "@/packages/Components/Divider/Divider";
8
- import Icon from "@/packages/Components/Icon/Icon";
9
- import Spinner from "@/packages/Components/Spinner/Spinner";
10
- import Text from "@/packages/Components/Text/Text";
11
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
12
- import View from "@/packages/Frameworks/View/View";
6
+ } from "./Box.types";
7
+ import Divider from "../Divider/Divider";
8
+ import Icon from "../Icon/Icon";
9
+ import Spinner from "../Spinner/Spinner";
10
+ import Text from "../Text/Text";
11
+ import Pressable from "../../Frameworks/Pressable/Pressable";
12
+ import View from "../../Frameworks/View/View";
13
13
 
14
14
  const BoxContentContext = createContext(false);
15
15
 
@@ -1,13 +1,13 @@
1
- import type { DividerProps } from "@/packages/Components/Divider/Divider.types";
2
- import type { IconProps } from "@/packages/Components/Icon/Icon.types";
3
- import type { TitleProps } from "@/packages/Components/Title/Title.types";
4
- import type { UIKitSizeValue } from "@/packages/Frameworks/_shared/sizing";
5
- import type { PressableProps } from "@/packages/Frameworks/Pressable/Pressable.types";
6
- import type { RadiusProps } from "@/packages/Frameworks/Theme/Radius.types";
1
+ import type { DividerProps } from "../Divider/Divider.types";
2
+ import type { IconProps } from "../Icon/Icon.types";
3
+ import type { TitleProps } from "../Title/Title.types";
4
+ import type { UIKitSizeValue } from "../../Frameworks/_shared/sizing";
5
+ import type { PressableProps } from "../../Frameworks/Pressable/Pressable.types";
6
+ import type { RadiusProps } from "../../Frameworks/Theme/Radius.types";
7
7
  import type {
8
8
  BorderProps,
9
9
  ThemeSystemProps,
10
- } from "@/packages/Frameworks/Theme/Theme.types";
10
+ } from "../../Frameworks/Theme/Theme.types";
11
11
 
12
12
  export interface BoxProps extends ThemeSystemProps, RadiusProps, BorderProps {
13
13
  "data-color-mode"?: string;
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
 
3
3
  import clsx from "clsx";
4
- import type { ButtonProps } from "@/packages/Components/Button/Button.types";
5
- import Divider from "@/packages/Components/Divider/Divider";
6
- import Icon from "@/packages/Components/Icon/Icon";
7
- import Text from "@/packages/Components/Text/Text";
8
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
9
- import View from "@/packages/Frameworks/View/View";
4
+ import type { ButtonProps } from "./Button.types";
5
+ import Divider from "../Divider/Divider";
6
+ import Icon from "../Icon/Icon";
7
+ import Text from "../Text/Text";
8
+ import Pressable from "../../Frameworks/Pressable/Pressable";
9
+ import View from "../../Frameworks/View/View";
10
10
 
11
11
  function resolveButtonEndIcon(iconEnd: ButtonProps["iconEnd"]) {
12
12
  if (!iconEnd?.pressable?.popover) {
@@ -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 type ButtonIconEndProps = Pick<
12
12
  IconProps,
@@ -1,15 +1,15 @@
1
1
  import clsx from "clsx";
2
- import { useInBoxContent } from "@/packages/Components/Box/Box";
3
- import styles from "@/packages/Components/Card/Card.module.scss";
4
- import type { CardDefaultProps } from "@/packages/Components/Card/Card.types";
5
- import { buildRenderKeys } from "@/packages/Components/Card/Card.utils";
6
- import Icon from "@/packages/Components/Icon/Icon";
7
- import Pill from "@/packages/Components/Pill/Pill";
8
- import Text from "@/packages/Components/Text/Text";
9
- import { normalizeCardIcon } from "@/packages/Components/Card/Card.utils";
10
- import StopParentInteraction from "@/packages/Frameworks/_shared/StopParentInteraction";
11
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
12
- import View from "@/packages/Frameworks/View/View";
2
+ import { useInBoxContent } from "../Box/Box";
3
+ import styles from "./Card.module.scss";
4
+ import type { CardDefaultProps } from "./Card.types";
5
+ import { buildRenderKeys } from "./Card.utils";
6
+ import Icon from "../Icon/Icon";
7
+ import Pill from "../Pill/Pill";
8
+ import Text from "../Text/Text";
9
+ import { normalizeCardIcon } from "./Card.utils";
10
+ import StopParentInteraction from "../../Frameworks/_shared/StopParentInteraction";
11
+ import Pressable from "../../Frameworks/Pressable/Pressable";
12
+ import View from "../../Frameworks/View/View";
13
13
 
14
14
  export default function CardDefault({
15
15
  themePreset,
@@ -3,24 +3,24 @@
3
3
  import clsx from "clsx";
4
4
  import { animate, useMotionValue } from "motion/react";
5
5
  import { useEffect, useLayoutEffect, useRef, useState } from "react";
6
- import { useInBoxContent } from "@/packages/Components/Box/Box";
7
- import styles from "@/packages/Components/Card/Card.module.scss";
8
- import type { CardFoldableProps } from "@/packages/Components/Card/Card.types";
9
- import { resolveState } from "@/packages/Components/Card/Card.types";
10
- import { buildRenderKeys } from "@/packages/Components/Card/Card.utils";
11
- import Icon from "@/packages/Components/Icon/Icon";
12
- import Pill from "@/packages/Components/Pill/Pill";
13
- import Text from "@/packages/Components/Text/Text";
14
- import { normalizeCardIcon } from "@/packages/Components/Card/Card.utils";
15
- import StopParentInteraction from "@/packages/Frameworks/_shared/StopParentInteraction";
6
+ import { useInBoxContent } from "../Box/Box";
7
+ import styles from "./Card.module.scss";
8
+ import type { CardFoldableProps } from "./Card.types";
9
+ import { resolveState } from "./Card.types";
10
+ import { buildRenderKeys } from "./Card.utils";
11
+ import Icon from "../Icon/Icon";
12
+ import Pill from "../Pill/Pill";
13
+ import Text from "../Text/Text";
14
+ import { normalizeCardIcon } from "./Card.utils";
15
+ import StopParentInteraction from "../../Frameworks/_shared/StopParentInteraction";
16
16
  import {
17
17
  getComputedPixelValue,
18
18
  SizePX,
19
19
  type UIKitSizeValue,
20
- } from "@/packages/Frameworks/_shared/sizing";
21
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
22
- import type { RadiusValue } from "@/packages/Frameworks/Theme/Radius.types";
23
- import View from "@/packages/Frameworks/View/View";
20
+ } from "../../Frameworks/_shared/sizing";
21
+ import Pressable from "../../Frameworks/Pressable/Pressable";
22
+ import type { RadiusValue } from "../../Frameworks/Theme/Radius.types";
23
+ import View from "../../Frameworks/View/View";
24
24
 
25
25
  function useFoldProgress(
26
26
  activated: boolean,
@@ -1,6 +1,6 @@
1
- import type { CardProps } from "@/packages/Components/Card/Card.types";
2
- import CardDefault from "@/packages/Components/Card/Card.default";
3
- import CardFoldable from "@/packages/Components/Card/Card.foldable";
1
+ import type { CardProps } from "./Card.types";
2
+ import CardDefault from "./Card.default";
3
+ import CardFoldable from "./Card.foldable";
4
4
 
5
5
  export default function Card(props: CardProps) {
6
6
  if (props.accordion) return <CardFoldable {...props} />;
@@ -1,14 +1,14 @@
1
- import type { IconProps } from "@/packages/Components/Icon/Icon.types";
2
- import type { PillProps } from "@/packages/Components/Pill/Pill.types";
3
- import type { PressableProps } from "@/packages/Frameworks/Pressable/Pressable.types";
4
- import type { RadiusProps } from "@/packages/Frameworks/Theme/Radius.types";
1
+ import type { IconProps } from "../Icon/Icon.types";
2
+ import type { PillProps } from "../Pill/Pill.types";
3
+ import type { PressableProps } from "../../Frameworks/Pressable/Pressable.types";
4
+ import type { RadiusProps } from "../../Frameworks/Theme/Radius.types";
5
5
  import type {
6
6
  BorderProps,
7
7
  ThemeBackgroundPaint,
8
8
  ThemePaint,
9
9
  ThemePreset,
10
10
  ThemeSystemProps,
11
- } from "@/packages/Frameworks/Theme/Theme.types";
11
+ } from "../../Frameworks/Theme/Theme.types";
12
12
 
13
13
  export type Stateful<T> = T | { normal?: T; activated?: T };
14
14
 
@@ -1,4 +1,4 @@
1
- import type { IconProps } from "@/packages/Components/Icon/Icon.types";
1
+ import type { IconProps } from "../Icon/Icon.types";
2
2
 
3
3
  const DEFAULT_CARD_BOX_ICON_OUTER_SIZE = 40;
4
4
 
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
 
3
3
  import { useEffect, useState } from "react";
4
- import styles from "@/packages/Components/Checkbox/Checkbox.module.scss";
5
- import type { CheckboxProps } from "@/packages/Components/Checkbox/Checkbox.types";
6
- import Icon from "@/packages/Components/Icon/Icon";
7
- import Text from "@/packages/Components/Text/Text";
8
- import { Size } from "@/packages/Frameworks/_shared/sizing";
9
- import View from "@/packages/Frameworks/View/View";
4
+ import styles from "./Checkbox.module.scss";
5
+ import type { CheckboxProps } from "./Checkbox.types";
6
+ import Icon from "../Icon/Icon";
7
+ import Text from "../Text/Text";
8
+ import { Size } from "../../Frameworks/_shared/sizing";
9
+ import View from "../../Frameworks/View/View";
10
10
 
11
11
  export default function Checkbox({
12
12
  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 CheckboxProps
10
10
  extends Omit<
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
 
3
3
  import { NavigatorClipboard } from "@musecat/functionkit";
4
- import Icon from "@/packages/Components/Icon/Icon";
5
- import Text from "@/packages/Components/Text/Text";
6
- import View from "@/packages/Frameworks/View/View";
4
+ import Icon from "../Icon/Icon";
5
+ import Text from "../Text/Text";
6
+ import View from "../../Frameworks/View/View";
7
7
 
8
8
  export default function CodeBox_Copy({
9
9
  language,
@@ -1,9 +1,9 @@
1
1
  import Prism from "prismjs";
2
- import CodeBox_Copy from "@/packages/Components/CodeBox/CodeBox.copy";
3
- import styles from "@/packages/Components/CodeBox/CodeBox.module.scss";
4
- import type { CodeBoxProps } from "@/packages/Components/CodeBox/CodeBox.types";
5
- import { normalizeLang } from "@/packages/Frameworks/_shared/normalize";
6
- import View from "@/packages/Frameworks/View/View";
2
+ import CodeBox_Copy from "./CodeBox.copy";
3
+ import styles from "./CodeBox.module.scss";
4
+ import type { CodeBoxProps } from "./CodeBox.types";
5
+ import { normalizeLang } from "../../Frameworks/_shared/normalize";
6
+ import View from "../../Frameworks/View/View";
7
7
  import "prismjs/components/prism-bash";
8
8
  import "prismjs/components/prism-css";
9
9
  import "prismjs/components/prism-javascript";
@@ -1,8 +1,8 @@
1
- import type { RadiusProps } from "@/packages/Frameworks/Theme/Radius.types";
1
+ import type { RadiusProps } from "../../Frameworks/Theme/Radius.types";
2
2
  import type {
3
3
  BorderProps,
4
4
  ThemeSystemProps,
5
- } from "@/packages/Frameworks/Theme/Theme.types";
5
+ } from "../../Frameworks/Theme/Theme.types";
6
6
 
7
7
  export interface CodeBoxProps
8
8
  extends ThemeSystemProps,
@@ -6,12 +6,12 @@ import {
6
6
  memo,
7
7
  type ReactElement,
8
8
  } from "react";
9
- import styles from "@/packages/Components/ContextMenu/ContextMenu.module.scss";
10
- import type { ContentItem } from "@/packages/Components/ContextMenu/ContextMenu.types";
11
- import Icon from "@/packages/Components/Icon/Icon";
12
- import Text from "@/packages/Components/Text/Text";
13
- import Pressable from "@/packages/Frameworks/Pressable/Pressable";
14
- import View from "@/packages/Frameworks/View/View";
9
+ import styles from "./ContextMenu.module.scss";
10
+ import type { ContentItem } from "./ContextMenu.types";
11
+ import Icon from "../Icon/Icon";
12
+ import Text from "../Text/Text";
13
+ import Pressable from "../../Frameworks/Pressable/Pressable";
14
+ import View from "../../Frameworks/View/View";
15
15
 
16
16
  export interface ContextMenuOptionProps {
17
17
  item: ContentItem;
@@ -9,19 +9,19 @@ import {
9
9
  useRef,
10
10
  useState,
11
11
  } from "react";
12
- import { Word } from "@/i18n/shared";
13
- import ContextMenuOption from "@/packages/Components/ContextMenu/ContextMenu.options";
12
+ import { Word } from "../../../i18n/shared";
13
+ import ContextMenuOption from "./ContextMenu.options";
14
14
  import type {
15
15
  ContentItem,
16
16
  ContextMenuProps,
17
- } from "@/packages/Components/ContextMenu/ContextMenu.types";
17
+ } from "./ContextMenu.types";
18
18
  import {
19
19
  handleEndKey,
20
20
  handleHomeKey,
21
- } from "@/packages/Components/Select/Select.keyboard";
22
- import Text from "@/packages/Components/Text/Text";
23
- import Dialog from "@/packages/Frameworks/Dialog/Dialog";
24
- import View from "@/packages/Frameworks/View/View";
21
+ } from "../Select/Select.keyboard";
22
+ import Text from "../Text/Text";
23
+ import Dialog from "../../Frameworks/Dialog/Dialog";
24
+ import View from "../../Frameworks/View/View";
25
25
 
26
26
  const clampScrollTop = (element: HTMLElement, nextScrollTop: number) => {
27
27
  const maxScrollTop = Math.max(0, element.scrollHeight - element.clientHeight);
@@ -4,7 +4,7 @@ import type {
4
4
  ExitConfig,
5
5
  PopoverConfig,
6
6
  SheetConfig,
7
- } from "@/packages/Frameworks/Dialog/Dialog.types";
7
+ } from "../../Frameworks/Dialog/Dialog.types";
8
8
 
9
9
  export interface ContentItem {
10
10
  type: "option";