@lablup/ui-common 0.1.0-alpha.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 (148) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +10 -0
  3. package/README.md +145 -0
  4. package/dist/assets/components/Badge/Badge.css +1 -0
  5. package/dist/assets/components/BaseCard/BaseCard.css +1 -0
  6. package/dist/assets/components/Button/Button.css +1 -0
  7. package/dist/assets/components/DataTable/DataTable.css +1 -0
  8. package/dist/assets/components/Drawer/Drawer.css +1 -0
  9. package/dist/assets/components/EmptyState/EmptyState.css +1 -0
  10. package/dist/assets/components/ErrorState/ErrorState.css +1 -0
  11. package/dist/assets/components/PageHeader/PageHeader.css +1 -0
  12. package/dist/assets/components/PageLayout/PageLayout.css +1 -0
  13. package/dist/assets/components/ProgressBar/ProgressBar.css +1 -0
  14. package/dist/assets/components/Skeleton/Skeleton.css +1 -0
  15. package/dist/assets/components/Skeleton/SkeletonCard.css +1 -0
  16. package/dist/assets/components/Skeleton/SkeletonChart.css +1 -0
  17. package/dist/assets/components/Skeleton/SkeletonRow.css +1 -0
  18. package/dist/assets/components/Skeleton/SkeletonText.css +1 -0
  19. package/dist/assets/components/SmoothHeight/SmoothHeight.css +1 -0
  20. package/dist/assets/components/StatCard/StatCard.css +1 -0
  21. package/dist/assets/components/StatusTag/StatusTag.css +1 -0
  22. package/dist/assets/components/Tabs/Tabs.css +1 -0
  23. package/dist/assets/components/Tooltip/Tooltip.css +1 -0
  24. package/dist/components/Badge/Badge.d.ts +7 -0
  25. package/dist/components/Badge/Badge2.js +19 -0
  26. package/dist/components/Badge/Badge2.js.map +1 -0
  27. package/dist/components/Badge/index.d.ts +2 -0
  28. package/dist/components/Badge/index.js +2 -0
  29. package/dist/components/BaseCard/BaseCard.d.ts +57 -0
  30. package/dist/components/BaseCard/BaseCard2.js +36 -0
  31. package/dist/components/BaseCard/BaseCard2.js.map +1 -0
  32. package/dist/components/BaseCard/index.d.ts +2 -0
  33. package/dist/components/BaseCard/index.js +2 -0
  34. package/dist/components/Button/Button.d.ts +54 -0
  35. package/dist/components/Button/Button2.js +74 -0
  36. package/dist/components/Button/Button2.js.map +1 -0
  37. package/dist/components/Button/index.d.ts +5 -0
  38. package/dist/components/Button/index.js +2 -0
  39. package/dist/components/DataTable/DataTable.d.ts +133 -0
  40. package/dist/components/DataTable/DataTable2.js +276 -0
  41. package/dist/components/DataTable/DataTable2.js.map +1 -0
  42. package/dist/components/DataTable/index.d.ts +2 -0
  43. package/dist/components/DataTable/index.js +2 -0
  44. package/dist/components/Drawer/Drawer.d.ts +25 -0
  45. package/dist/components/Drawer/Drawer2.js +106 -0
  46. package/dist/components/Drawer/Drawer2.js.map +1 -0
  47. package/dist/components/Drawer/index.d.ts +2 -0
  48. package/dist/components/Drawer/index.js +2 -0
  49. package/dist/components/EmptyState/EmptyState.d.ts +45 -0
  50. package/dist/components/EmptyState/EmptyState.example.d.ts +8 -0
  51. package/dist/components/EmptyState/EmptyState2.js +78 -0
  52. package/dist/components/EmptyState/EmptyState2.js.map +1 -0
  53. package/dist/components/EmptyState/illustrations.d.ts +51 -0
  54. package/dist/components/EmptyState/illustrations.js +571 -0
  55. package/dist/components/EmptyState/illustrations.js.map +1 -0
  56. package/dist/components/EmptyState/index.d.ts +5 -0
  57. package/dist/components/EmptyState/index.js +2 -0
  58. package/dist/components/ErrorState/ErrorState.d.ts +25 -0
  59. package/dist/components/ErrorState/ErrorState.example.d.ts +46 -0
  60. package/dist/components/ErrorState/ErrorState2.js +58 -0
  61. package/dist/components/ErrorState/ErrorState2.js.map +1 -0
  62. package/dist/components/ErrorState/index.d.ts +5 -0
  63. package/dist/components/ErrorState/index.js +2 -0
  64. package/dist/components/PageHeader/PageHeader.d.ts +18 -0
  65. package/dist/components/PageHeader/PageHeader2.js +42 -0
  66. package/dist/components/PageHeader/PageHeader2.js.map +1 -0
  67. package/dist/components/PageHeader/index.d.ts +2 -0
  68. package/dist/components/PageHeader/index.js +2 -0
  69. package/dist/components/PageLayout/PageLayout.d.ts +11 -0
  70. package/dist/components/PageLayout/PageLayout2.js +19 -0
  71. package/dist/components/PageLayout/PageLayout2.js.map +1 -0
  72. package/dist/components/PageLayout/index.d.ts +2 -0
  73. package/dist/components/PageLayout/index.js +2 -0
  74. package/dist/components/ProgressBar/ProgressBar.d.ts +22 -0
  75. package/dist/components/ProgressBar/ProgressBar2.js +36 -0
  76. package/dist/components/ProgressBar/ProgressBar2.js.map +1 -0
  77. package/dist/components/ProgressBar/index.d.ts +2 -0
  78. package/dist/components/ProgressBar/index.js +2 -0
  79. package/dist/components/Skeleton/Skeleton.d.ts +25 -0
  80. package/dist/components/Skeleton/Skeleton2.js +26 -0
  81. package/dist/components/Skeleton/Skeleton2.js.map +1 -0
  82. package/dist/components/Skeleton/SkeletonCard.d.ts +18 -0
  83. package/dist/components/Skeleton/SkeletonCard2.js +73 -0
  84. package/dist/components/Skeleton/SkeletonCard2.js.map +1 -0
  85. package/dist/components/Skeleton/SkeletonChart.d.ts +23 -0
  86. package/dist/components/Skeleton/SkeletonChart2.js +66 -0
  87. package/dist/components/Skeleton/SkeletonChart2.js.map +1 -0
  88. package/dist/components/Skeleton/SkeletonRow.d.ts +22 -0
  89. package/dist/components/Skeleton/SkeletonRow2.js +47 -0
  90. package/dist/components/Skeleton/SkeletonRow2.js.map +1 -0
  91. package/dist/components/Skeleton/SkeletonText.d.ts +20 -0
  92. package/dist/components/Skeleton/SkeletonText2.js +26 -0
  93. package/dist/components/Skeleton/SkeletonText2.js.map +1 -0
  94. package/dist/components/Skeleton/index.d.ts +15 -0
  95. package/dist/components/Skeleton/index.js +6 -0
  96. package/dist/components/SmoothHeight/SmoothHeight.d.ts +9 -0
  97. package/dist/components/SmoothHeight/SmoothHeight2.js +38 -0
  98. package/dist/components/SmoothHeight/SmoothHeight2.js.map +1 -0
  99. package/dist/components/SmoothHeight/index.d.ts +2 -0
  100. package/dist/components/SmoothHeight/index.js +2 -0
  101. package/dist/components/StatCard/StatCard.d.ts +59 -0
  102. package/dist/components/StatCard/StatCard2.js +111 -0
  103. package/dist/components/StatCard/StatCard2.js.map +1 -0
  104. package/dist/components/StatCard/formatters.d.ts +12 -0
  105. package/dist/components/StatCard/formatters.js +8 -0
  106. package/dist/components/StatCard/formatters.js.map +1 -0
  107. package/dist/components/StatCard/index.d.ts +3 -0
  108. package/dist/components/StatCard/index.js +3 -0
  109. package/dist/components/StatusTag/StatusTag.d.ts +38 -0
  110. package/dist/components/StatusTag/StatusTag2.js +44 -0
  111. package/dist/components/StatusTag/StatusTag2.js.map +1 -0
  112. package/dist/components/StatusTag/index.d.ts +2 -0
  113. package/dist/components/StatusTag/index.js +2 -0
  114. package/dist/components/Tabs/Tabs.d.ts +107 -0
  115. package/dist/components/Tabs/Tabs2.js +430 -0
  116. package/dist/components/Tabs/Tabs2.js.map +1 -0
  117. package/dist/components/Tabs/index.d.ts +2 -0
  118. package/dist/components/Tabs/index.js +3 -0
  119. package/dist/components/Tabs/tabTags.d.ts +9 -0
  120. package/dist/components/Tabs/tabTags.js +11 -0
  121. package/dist/components/Tabs/tabTags.js.map +1 -0
  122. package/dist/components/Tooltip/Tooltip.d.ts +16 -0
  123. package/dist/components/Tooltip/Tooltip2.js +67 -0
  124. package/dist/components/Tooltip/Tooltip2.js.map +1 -0
  125. package/dist/components/Tooltip/index.d.ts +2 -0
  126. package/dist/components/Tooltip/index.js +2 -0
  127. package/dist/hooks/index.d.ts +1 -0
  128. package/dist/hooks/index.js +2 -0
  129. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  130. package/dist/hooks/usePrefersReducedMotion.js +22 -0
  131. package/dist/hooks/usePrefersReducedMotion.js.map +1 -0
  132. package/dist/icons/AlertCircleIcon.d.ts +11 -0
  133. package/dist/icons/AlertCircleIcon.js +26 -0
  134. package/dist/icons/AlertCircleIcon.js.map +1 -0
  135. package/dist/index.d.ts +29 -0
  136. package/dist/index.js +24 -0
  137. package/dist/styles/base.css +169 -0
  138. package/dist/styles/themes/bliss-dark.css +123 -0
  139. package/dist/styles/themes/bliss-light.css +123 -0
  140. package/dist/styles/themes/glass-dark.css +124 -0
  141. package/dist/styles/themes/glass-light.css +125 -0
  142. package/dist/styles/themes/orange-dark.css +70 -0
  143. package/dist/styles/themes/orange-light.css +70 -0
  144. package/dist/styles/themes/reverie-dark.css +104 -0
  145. package/dist/styles/themes/reverie-light.css +104 -0
  146. package/dist/styles/themes/stained-dark.css +80 -0
  147. package/dist/styles/themes/stained-light.css +80 -0
  148. package/package.json +87 -0
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @lablup/ui-common theme tokens: reverie-light
3
+ *
4
+ * Overrides for the subset of the 104-token contract (see
5
+ * ../base.css) that this theme customizes. Import at most one
6
+ * theme file alongside base.css; components never import a
7
+ * theme file themselves.
8
+ */
9
+
10
+ [data-theme="reverie-light"] {
11
+ --token-boxShadow:
12
+ 0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02),
13
+ 0 2px 4px 0 rgba(0, 0, 0, 0.02);
14
+ --token-boxShadowSecondary:
15
+ 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12),
16
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05);
17
+ --token-buttonGhostBackdrop: none;
18
+ --token-buttonGhostBg: rgba(251, 113, 133, 0.03);
19
+ --token-buttonGhostBgHover: rgba(251, 113, 133, 0.08);
20
+ --token-buttonGhostBorder: 1px solid transparent;
21
+ --token-buttonGhostShadow: none;
22
+ --token-buttonGhostShadowHover: 0 0 12px rgba(251, 113, 133, 0.08);
23
+ --token-buttonPrimaryBg:
24
+ linear-gradient(
25
+ 180deg,
26
+ rgba(255, 255, 255, 0.3) 0%,
27
+ rgba(255, 255, 255, 0.05) 50%,
28
+ transparent 100%
29
+ ),
30
+ var(--token-colorPrimary);
31
+ --token-buttonPrimaryBgHover:
32
+ linear-gradient(
33
+ 180deg,
34
+ rgba(255, 255, 255, 0.4) 0%,
35
+ rgba(255, 255, 255, 0.1) 50%,
36
+ transparent 100%
37
+ ),
38
+ #f43f5e;
39
+ --token-buttonPrimaryBorder: 1px solid rgba(255, 255, 255, 0.25);
40
+ --token-buttonPrimaryShadow:
41
+ 0 2px 8px rgba(251, 113, 133, 0.3), 0 0 16px rgba(251, 113, 133, 0.1),
42
+ inset 0 1px 1px rgba(255, 255, 255, 0.3);
43
+ --token-buttonPrimaryShadowHover:
44
+ 0 4px 12px rgba(251, 113, 133, 0.4), 0 0 20px rgba(251, 113, 133, 0.15),
45
+ inset 0 1px 1px rgba(255, 255, 255, 0.4);
46
+ --token-buttonSecondaryBackdrop: blur(4px);
47
+ --token-buttonSecondaryBg: rgba(251, 113, 133, 0.06);
48
+ --token-buttonSecondaryBgHover: rgba(251, 113, 133, 0.1);
49
+ --token-buttonSecondaryBorder: 1px solid rgba(251, 113, 133, 0.2);
50
+ --token-buttonSecondaryBorderHover: 1px solid rgba(251, 113, 133, 0.35);
51
+ --token-buttonSecondaryShadow:
52
+ 0 1px 4px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.7);
53
+ --token-buttonSuccessBg:
54
+ linear-gradient(
55
+ 180deg,
56
+ rgba(255, 255, 255, 0.3) 0%,
57
+ rgba(255, 255, 255, 0.05) 50%,
58
+ transparent 100%
59
+ ),
60
+ var(--token-colorSuccess);
61
+ --token-buttonSuccessBgHover:
62
+ linear-gradient(
63
+ 180deg,
64
+ rgba(255, 255, 255, 0.4) 0%,
65
+ rgba(255, 255, 255, 0.1) 50%,
66
+ transparent 100%
67
+ ),
68
+ #006654;
69
+ --token-buttonSuccessBorder: 1px solid rgba(255, 255, 255, 0.25);
70
+ --token-buttonSuccessShadow:
71
+ 0 2px 8px rgba(0, 189, 155, 0.25), inset 0 1px 1px rgba(255, 255, 255, 0.3);
72
+ --token-colorBgContainer: #ffffff;
73
+ --token-colorBgElevated: #ffffff;
74
+ --token-colorBgLayout: #f5f5f5;
75
+ --token-colorBorder: #d9d9d9;
76
+ --token-colorBorderSecondary: #e5e7eb;
77
+ --token-colorError: #c82333;
78
+ --token-colorFillQuaternary: #fafafa;
79
+ --token-colorFillSecondary: #f3f4f6;
80
+ --token-colorFillTertiary: #f9fafb;
81
+ --token-colorInfo: #0066cc;
82
+ --token-colorLink: #fb7185;
83
+ --token-colorPrimary: #fb7185;
84
+ --token-colorPrimaryActive: #e11d48;
85
+ --token-colorPrimaryBg: rgba(251, 113, 133, 0.1);
86
+ --token-colorPrimaryBorder: rgba(251, 113, 133, 0.2);
87
+ --token-colorSuccess: #007a63;
88
+ --token-colorSuccessActive: #005244;
89
+ --token-colorSuccessBg: rgba(0, 189, 155, 0.05);
90
+ --token-colorSuccessBorder: rgba(0, 189, 155, 0.4);
91
+ --token-colorSuccessBorderHover: rgba(0, 189, 155, 0.6);
92
+ --token-colorSuccessBoxShadow: 0 4px 12px rgba(0, 189, 155, 0.15);
93
+ --token-colorText: #141414;
94
+ --token-colorTextSecondary: #595959;
95
+ --token-colorTextTertiary: #737373;
96
+ --token-colorWarning: #9a5d00;
97
+ --token-focusRingColor: #fb7185;
98
+ --token-focusRingOffset: 2px;
99
+ --token-focusRingStyle: solid;
100
+ --token-focusRingWidth: 2px;
101
+ --token-tabActiveBg: rgba(251, 113, 133, 0.1);
102
+ --token-tabFocusShadow: 0 0 0 3px rgba(251, 113, 133, 0.15);
103
+ --token-tabHoverBg: var(--token-colorFillSecondary);
104
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @lablup/ui-common theme tokens: stained-dark
3
+ *
4
+ * Overrides for the subset of the 104-token contract (see
5
+ * ../base.css) that this theme customizes. Import at most one
6
+ * theme file alongside base.css; components never import a
7
+ * theme file themselves.
8
+ */
9
+
10
+ [data-theme="stained-dark"] {
11
+ --token-boxShadow:
12
+ 0 1px 2px 0 rgba(0, 0, 0, 0.15), 0 1px 6px -1px rgba(0, 0, 0, 0.1),
13
+ 0 2px 4px 0 rgba(0, 0, 0, 0.1);
14
+ --token-boxShadowSecondary:
15
+ 0 6px 16px 0 rgba(0, 0, 0, 0.2), 0 3px 6px -4px rgba(0, 0, 0, 0.24),
16
+ 0 9px 28px 8px rgba(0, 0, 0, 0.15);
17
+ --token-buttonGhostBackdrop: none;
18
+ --token-buttonGhostBg: transparent;
19
+ --token-buttonGhostBgHover: rgba(167, 139, 250, 0.1);
20
+ --token-buttonGhostBorder: 1px solid transparent;
21
+ --token-buttonGhostShadow: none;
22
+ --token-buttonGhostShadowHover: none;
23
+ --token-buttonPrimaryBg:
24
+ linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, transparent 50%),
25
+ var(--token-colorPrimary);
26
+ --token-buttonPrimaryBgHover:
27
+ linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, transparent 50%), #9575fa;
28
+ --token-buttonPrimaryBorder: none;
29
+ --token-buttonPrimaryShadow:
30
+ 0 2px 8px rgba(167, 139, 250, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.15);
31
+ --token-buttonPrimaryShadowHover:
32
+ 0 4px 12px rgba(167, 139, 250, 0.4), inset 0 1px 1px rgba(255, 255, 255, 0.2);
33
+ --token-buttonSecondaryBackdrop: none;
34
+ --token-buttonSecondaryBg: rgba(167, 139, 250, 0.08);
35
+ --token-buttonSecondaryBgHover: rgba(167, 139, 250, 0.12);
36
+ --token-buttonSecondaryBorder: 1px solid rgba(167, 139, 250, 0.2);
37
+ --token-buttonSecondaryBorderHover: 1px solid rgba(167, 139, 250, 0.3);
38
+ --token-buttonSecondaryShadow:
39
+ 0 1px 3px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.05);
40
+ --token-buttonSuccessBg:
41
+ linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, transparent 50%),
42
+ var(--token-colorSuccess);
43
+ --token-buttonSuccessBgHover:
44
+ linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, transparent 50%), #04b898;
45
+ --token-buttonSuccessBorder: none;
46
+ --token-buttonSuccessShadow:
47
+ 0 2px 8px rgba(3, 164, 135, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.15);
48
+ --token-colorBgContainer: #1f1f1f;
49
+ --token-colorBgElevated: #262626;
50
+ --token-colorBgLayout: #121212;
51
+ --token-colorBorder: #424242;
52
+ --token-colorBorderSecondary: #303030;
53
+ --token-colorError: #dc4446;
54
+ --token-colorFillQuaternary: rgba(255, 255, 255, 0.04);
55
+ --token-colorFillSecondary: #262626;
56
+ --token-colorFillTertiary: #1a1a1a;
57
+ --token-colorInfo: #009bdd;
58
+ --token-colorLink: #a78bfa;
59
+ --token-colorPrimary: #a78bfa;
60
+ --token-colorPrimaryActive: #8b5cf6;
61
+ --token-colorPrimaryBg: rgba(167, 139, 250, 0.12);
62
+ --token-colorPrimaryBorder: rgba(167, 139, 250, 0.25);
63
+ --token-colorSuccess: #03a487;
64
+ --token-colorSuccessActive: #05cca8;
65
+ --token-colorSuccessBg: rgba(3, 164, 135, 0.15);
66
+ --token-colorSuccessBorder: rgba(3, 164, 135, 0.4);
67
+ --token-colorSuccessBorderHover: rgba(3, 164, 135, 0.6);
68
+ --token-colorSuccessBoxShadow: 0 4px 12px rgba(3, 164, 135, 0.2);
69
+ --token-colorText: #ffffff;
70
+ --token-colorTextSecondary: #b3b3b3;
71
+ --token-colorTextTertiary: #8c8c8c;
72
+ --token-colorWarning: #d89614;
73
+ --token-focusRingColor: #a78bfa;
74
+ --token-focusRingOffset: 2px;
75
+ --token-focusRingStyle: solid;
76
+ --token-focusRingWidth: 2px;
77
+ --token-tabActiveBg: rgba(167, 139, 250, 0.1);
78
+ --token-tabFocusShadow: 0 0 0 3px rgba(167, 139, 250, 0.2);
79
+ --token-tabHoverBg: rgba(255, 255, 255, 0.05);
80
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @lablup/ui-common theme tokens: stained-light
3
+ *
4
+ * Overrides for the subset of the 104-token contract (see
5
+ * ../base.css) that this theme customizes. Import at most one
6
+ * theme file alongside base.css; components never import a
7
+ * theme file themselves.
8
+ */
9
+
10
+ [data-theme="stained-light"] {
11
+ --token-boxShadow:
12
+ 0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02),
13
+ 0 2px 4px 0 rgba(0, 0, 0, 0.02);
14
+ --token-boxShadowSecondary:
15
+ 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12),
16
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05);
17
+ --token-buttonGhostBackdrop: none;
18
+ --token-buttonGhostBg: transparent;
19
+ --token-buttonGhostBgHover: rgba(139, 92, 246, 0.06);
20
+ --token-buttonGhostBorder: 1px solid transparent;
21
+ --token-buttonGhostShadow: none;
22
+ --token-buttonGhostShadowHover: none;
23
+ --token-buttonPrimaryBg:
24
+ linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, transparent 50%),
25
+ var(--token-colorPrimary);
26
+ --token-buttonPrimaryBgHover:
27
+ linear-gradient(180deg, rgba(255, 255, 255, 0.25) 0%, transparent 50%), #7c3aed;
28
+ --token-buttonPrimaryBorder: none;
29
+ --token-buttonPrimaryShadow:
30
+ 0 2px 6px rgba(139, 92, 246, 0.25), inset 0 1px 1px rgba(255, 255, 255, 0.2);
31
+ --token-buttonPrimaryShadowHover:
32
+ 0 4px 10px rgba(139, 92, 246, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.25);
33
+ --token-buttonSecondaryBackdrop: none;
34
+ --token-buttonSecondaryBg: rgba(139, 92, 246, 0.04);
35
+ --token-buttonSecondaryBgHover: rgba(139, 92, 246, 0.08);
36
+ --token-buttonSecondaryBorder: 1px solid rgba(139, 92, 246, 0.2);
37
+ --token-buttonSecondaryBorderHover: 1px solid rgba(139, 92, 246, 0.3);
38
+ --token-buttonSecondaryShadow:
39
+ 0 1px 3px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.8);
40
+ --token-buttonSuccessBg:
41
+ linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, transparent 50%),
42
+ var(--token-colorSuccess);
43
+ --token-buttonSuccessBgHover:
44
+ linear-gradient(180deg, rgba(255, 255, 255, 0.25) 0%, transparent 50%), #006654;
45
+ --token-buttonSuccessBorder: none;
46
+ --token-buttonSuccessShadow:
47
+ 0 2px 6px rgba(0, 189, 155, 0.25), inset 0 1px 1px rgba(255, 255, 255, 0.2);
48
+ --token-colorBgContainer: #ffffff;
49
+ --token-colorBgElevated: #ffffff;
50
+ --token-colorBgLayout: #f5f5f5;
51
+ --token-colorBorder: #d9d9d9;
52
+ --token-colorBorderSecondary: #e5e7eb;
53
+ --token-colorError: #c82333;
54
+ --token-colorFillQuaternary: #fafafa;
55
+ --token-colorFillSecondary: #f3f4f6;
56
+ --token-colorFillTertiary: #f9fafb;
57
+ --token-colorInfo: #0066cc;
58
+ --token-colorLink: #8b5cf6;
59
+ --token-colorPrimary: #8b5cf6;
60
+ --token-colorPrimaryActive: #6d28d9;
61
+ --token-colorPrimaryBg: rgba(139, 92, 246, 0.1);
62
+ --token-colorPrimaryBorder: rgba(139, 92, 246, 0.2);
63
+ --token-colorSuccess: #007a63;
64
+ --token-colorSuccessActive: #005244;
65
+ --token-colorSuccessBg: rgba(0, 189, 155, 0.05);
66
+ --token-colorSuccessBorder: rgba(0, 189, 155, 0.4);
67
+ --token-colorSuccessBorderHover: rgba(0, 189, 155, 0.6);
68
+ --token-colorSuccessBoxShadow: 0 4px 12px rgba(0, 189, 155, 0.15);
69
+ --token-colorText: #141414;
70
+ --token-colorTextSecondary: #595959;
71
+ --token-colorTextTertiary: #737373;
72
+ --token-colorWarning: #9a5d00;
73
+ --token-focusRingColor: #8b5cf6;
74
+ --token-focusRingOffset: 2px;
75
+ --token-focusRingStyle: solid;
76
+ --token-focusRingWidth: 2px;
77
+ --token-tabActiveBg: rgba(139, 92, 246, 0.1);
78
+ --token-tabFocusShadow: 0 0 0 3px rgba(139, 92, 246, 0.15);
79
+ --token-tabHoverBg: var(--token-colorFillSecondary);
80
+ }
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "@lablup/ui-common",
3
+ "version": "0.1.0-alpha.0",
4
+ "description": "Shared, product-neutral UI components and design tokens for Lablup products",
5
+ "license": "Apache-2.0",
6
+ "author": "Lablup Inc.",
7
+ "type": "module",
8
+ "sideEffects": [
9
+ "**/*.css"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/lablup/ui-common.git"
14
+ },
15
+ "homepage": "https://github.com/lablup/ui-common#readme",
16
+ "bugs": {
17
+ "url": "https://github.com/lablup/ui-common/issues"
18
+ },
19
+ "publishConfig": {
20
+ "access": "public",
21
+ "provenance": false
22
+ },
23
+ "engines": {
24
+ "node": ">=20"
25
+ },
26
+ "packageManager": "pnpm@11.19.0",
27
+ "files": [
28
+ "dist",
29
+ "NOTICE"
30
+ ],
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/index.d.ts",
34
+ "import": "./dist/index.js"
35
+ },
36
+ "./components/*": {
37
+ "types": "./dist/components/*/index.d.ts",
38
+ "import": "./dist/components/*/index.js"
39
+ },
40
+ "./hooks": {
41
+ "types": "./dist/hooks/index.d.ts",
42
+ "import": "./dist/hooks/index.js"
43
+ },
44
+ "./styles/base.css": "./dist/styles/base.css",
45
+ "./styles/themes/*.css": "./dist/styles/themes/*.css",
46
+ "./package.json": "./package.json"
47
+ },
48
+ "scripts": {
49
+ "build": "vite build",
50
+ "typecheck": "tsc --noEmit",
51
+ "lint": "eslint .",
52
+ "format": "prettier --write .",
53
+ "format:check": "prettier --check .",
54
+ "test": "vitest run",
55
+ "test:watch": "vitest",
56
+ "check:pack": "node scripts/check-pack.mjs",
57
+ "check:boundary": "node scripts/check-boundary.mjs",
58
+ "verify": "pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm run check:boundary && pnpm run test && pnpm run build && pnpm run check:pack"
59
+ },
60
+ "peerDependencies": {
61
+ "react": "^18.2.0 || ^19.0.0",
62
+ "react-dom": "^18.2.0 || ^19.0.0"
63
+ },
64
+ "devDependencies": {
65
+ "@eslint/js": "^9.39.0",
66
+ "@testing-library/jest-dom": "6.9.1",
67
+ "@testing-library/react": "^16.3.2",
68
+ "@testing-library/user-event": "^14.6.1",
69
+ "@types/node": "^22.0.0",
70
+ "@types/react": "^19.2.0",
71
+ "@types/react-dom": "^19.2.0",
72
+ "@vitejs/plugin-react": "^6.0.2",
73
+ "eslint": "^9.39.0",
74
+ "eslint-plugin-react-hooks": "6.0.0-rc.1",
75
+ "globals": "^16.5.0",
76
+ "jsdom": "^29.1.1",
77
+ "prettier": "^3.8.4",
78
+ "react": "^19.2.7",
79
+ "react-dom": "^19.2.7",
80
+ "tinyglobby": "^0.2.15",
81
+ "typescript": "^5.9.3",
82
+ "typescript-eslint": "^8.47.0",
83
+ "vite": "^8.0.16",
84
+ "vite-plugin-dts": "^4.5.4",
85
+ "vitest": "^4.1.8"
86
+ }
87
+ }