@cystackapp/ui 1.5.0 → 2.0.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 (170) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -47
  3. package/dist/assets/background-pattern-grid.svg.js +7 -0
  4. package/dist/assets/empty-cloud.svg.js +5 -0
  5. package/dist/components/accordion/Accordion.d.ts +20 -0
  6. package/dist/components/accordion/Accordion.js +36 -0
  7. package/dist/components/accordion/AccordionTestStory.d.ts +3 -0
  8. package/dist/components/alert/Alert.d.ts +15 -0
  9. package/dist/components/alert/Alert.js +54 -0
  10. package/dist/components/avatar/Avatar.d.ts +13 -0
  11. package/dist/components/avatar/Avatar.js +64 -0
  12. package/dist/components/background-pattern/BackgroundPatternGrid.d.ts +1 -0
  13. package/dist/components/background-pattern/BackgroundPatternGrid.js +6 -0
  14. package/dist/components/badge/Badge.d.ts +1 -1
  15. package/dist/components/badge/BadgeTestStory.d.ts +1 -1
  16. package/dist/components/badge/variants/BadgeMore.d.ts +1 -1
  17. package/dist/components/badge/variants/BadgeMoreTestStory.d.ts +1 -1
  18. package/dist/components/badge/variants/BadgeTag.d.ts +1 -1
  19. package/dist/components/banner/Banner.d.ts +9 -0
  20. package/dist/components/banner/Banner.js +21 -0
  21. package/dist/components/breadcrumb/Breadcrumb.d.ts +13 -0
  22. package/dist/components/breadcrumb/Breadcrumb.js +36 -0
  23. package/dist/components/button/ButtonLoader.d.ts +1 -1
  24. package/dist/components/button/ButtonTestStory.d.ts +5 -5
  25. package/dist/components/card/Card.d.ts +1 -1
  26. package/dist/components/card/Card.stories-ct.d.ts +1 -1
  27. package/dist/components/card/CardBody.d.ts +1 -1
  28. package/dist/components/card/CardHeader.d.ts +1 -1
  29. package/dist/components/chart/chart-legend/ChartLegend.d.ts +38 -0
  30. package/dist/components/chart/chart-legend/ChartLegend.js +57 -0
  31. package/dist/components/chart/chart-legend/ChartLegendItem.d.ts +19 -0
  32. package/dist/components/chart/chart-legend/ChartLegendItem.js +30 -0
  33. package/dist/components/chart/chart-legend/types.d.ts +49 -0
  34. package/dist/components/chart/donut-chart/DonutChart.d.ts +55 -0
  35. package/dist/components/chart/donut-chart/DonutChart.js +110 -0
  36. package/dist/components/chart/donut-chart/DonutSegments.d.ts +25 -0
  37. package/dist/components/chart/donut-chart/DonutSegments.js +51 -0
  38. package/dist/components/chart/donut-chart/donut-tooltip.d.ts +20 -0
  39. package/dist/components/chart/donut-chart/donut-tooltip.js +37 -0
  40. package/dist/components/chart/types.d.ts +8 -0
  41. package/dist/components/checkbox/CheckboxTestStory.d.ts +7 -7
  42. package/dist/components/collapsible/Collapsible.d.ts +1 -1
  43. package/dist/components/combobox/Combobox.d.ts +1 -1
  44. package/dist/components/divider/Divider.d.ts +9 -0
  45. package/dist/components/divider/Divider.js +28 -0
  46. package/dist/components/drawer/Drawer.d.ts +8 -0
  47. package/dist/components/drawer/Drawer.js +68 -0
  48. package/dist/components/dropdown/Dropdown.d.ts +45 -0
  49. package/dist/components/dropdown/Dropdown.js +133 -0
  50. package/dist/components/dropdown/DropdownMenu.d.ts +20 -0
  51. package/dist/components/dropdown/DropdownMenu.js +78 -0
  52. package/dist/components/dropdown/DropdownMenuItem.d.ts +13 -0
  53. package/dist/components/dropdown/DropdownMenuItem.js +49 -0
  54. package/dist/components/dropdown/DropdownTestStory.d.ts +5 -0
  55. package/dist/components/dropdown/dropdown-utils.d.ts +4 -0
  56. package/dist/components/dropdown/dropdown-utils.js +14 -0
  57. package/dist/components/dropdown/types.d.ts +48 -0
  58. package/dist/components/dropdown/use-dropdown-keyboard.d.ts +12 -0
  59. package/dist/components/dropdown/use-dropdown-keyboard.js +49 -0
  60. package/dist/components/empty-state/EmptyState.d.ts +26 -0
  61. package/dist/components/empty-state/EmptyState.js +36 -0
  62. package/dist/components/error-state/ErrorState.d.ts +1 -1
  63. package/dist/components/featured-icon/FeaturedIcon.d.ts +12 -0
  64. package/dist/components/featured-icon/FeaturedIcon.js +44 -0
  65. package/dist/components/form-field/FormField.d.ts +13 -0
  66. package/dist/components/form-field/FormField.js +21 -0
  67. package/dist/components/keyboard-shortcut-label/KeyboardShortcutLabel.d.ts +8 -0
  68. package/dist/components/keyboard-shortcut-label/KeyboardShortcutLabel.js +18 -0
  69. package/dist/components/loading-state/Loader.d.ts +20 -0
  70. package/dist/components/loading-state/Loader.js +38 -0
  71. package/dist/components/loading-state/LoadingState.d.ts +15 -0
  72. package/dist/components/loading-state/LoadingState.js +47 -0
  73. package/dist/components/loading-state/locale/en.json.d.ts +6 -0
  74. package/dist/components/loading-state/locale/en.json.js +7 -0
  75. package/dist/components/loading-state/locale/vi.json.d.ts +6 -0
  76. package/dist/components/loading-state/locale/vi.json.js +7 -0
  77. package/dist/components/media/Media.d.ts +7 -0
  78. package/dist/components/media/Media.js +25 -0
  79. package/dist/components/modal/helpers/HeaderIcon.d.ts +1 -1
  80. package/dist/components/modal/helpers/Title.d.ts +1 -1
  81. package/dist/components/notification/NotificationBanner.d.ts +9 -0
  82. package/dist/components/notification/NotificationBanner.js +97 -0
  83. package/dist/components/notification/icons.d.ts +5 -0
  84. package/dist/components/notification/icons.js +29 -0
  85. package/dist/components/notification/index.d.ts +4 -0
  86. package/dist/components/notification/index.js +26 -0
  87. package/dist/components/notification/locale/en.json.d.ts +8 -0
  88. package/dist/components/notification/locale/en.json.js +7 -0
  89. package/dist/components/notification/locale/vi.json.d.ts +8 -0
  90. package/dist/components/notification/locale/vi.json.js +7 -0
  91. package/dist/components/operating-system-icon/OperatingSystemIcon.d.ts +6 -0
  92. package/dist/components/operating-system-icon/OperatingSystemIcon.js +19 -0
  93. package/dist/components/operating-system-icon/assets/logo-android.svg.js +5 -0
  94. package/dist/components/operating-system-icon/assets/logo-apple.svg.js +5 -0
  95. package/dist/components/operating-system-icon/assets/logo-ubuntu.svg.js +5 -0
  96. package/dist/components/operating-system-icon/assets/logo-windows-10.svg.js +5 -0
  97. package/dist/components/page-title/PageTitle.d.ts +1 -1
  98. package/dist/components/popover/Popover.d.ts +1 -1
  99. package/dist/components/progress-bar/ProgressBar.d.ts +9 -0
  100. package/dist/components/progress-bar/ProgressBar.js +31 -0
  101. package/dist/components/radio/Radio.d.ts +4 -0
  102. package/dist/components/radio/Radio.js +55 -0
  103. package/dist/components/searchbox/Searchbox.d.ts +7 -0
  104. package/dist/components/searchbox/Searchbox.js +15 -0
  105. package/dist/components/select/Select.d.ts +11 -0
  106. package/dist/components/select/Select.js +44 -0
  107. package/dist/components/sidebar/SidebarSecondMenu.d.ts +38 -0
  108. package/dist/components/sidebar/SidebarSecondMenu.js +50 -0
  109. package/dist/components/skeleton/Skeleton.d.ts +14 -0
  110. package/dist/components/skeleton/Skeleton.js +12 -0
  111. package/dist/components/stat-banner-card/StatBannerCard.d.ts +24 -0
  112. package/dist/components/stat-banner-card/StatBannerCard.js +49 -0
  113. package/dist/components/switch/Switch.d.ts +1 -1
  114. package/dist/components/table/Table.d.ts +32 -0
  115. package/dist/components/table/Table.js +128 -0
  116. package/dist/components/table/TableActionButton.d.ts +15 -0
  117. package/dist/components/table/TableActionButton.js +50 -0
  118. package/dist/components/table/TableCell.d.ts +8 -0
  119. package/dist/components/table/TableCell.js +26 -0
  120. package/dist/components/table/TableHeader.d.ts +15 -0
  121. package/dist/components/table/TableHeader.js +36 -0
  122. package/dist/components/table/TableHeaderCell.d.ts +10 -0
  123. package/dist/components/table/TableHeaderCell.js +35 -0
  124. package/dist/components/table/TablePagination.d.ts +6 -0
  125. package/dist/components/table/TablePagination.js +69 -0
  126. package/dist/components/table/TableRow.d.ts +12 -0
  127. package/dist/components/table/TableRow.js +9 -0
  128. package/dist/components/table/expandable/ExpandableTable.d.ts +30 -0
  129. package/dist/components/table/expandable/ExpandableTable.js +156 -0
  130. package/dist/components/table/hooks/use-fit-page-height.d.ts +14 -0
  131. package/dist/components/table/hooks/use-fit-page-height.js +21 -0
  132. package/dist/components/table/hooks/use-row-selection.d.ts +27 -0
  133. package/dist/components/table/hooks/use-row-selection.js +35 -0
  134. package/dist/components/table/locale/en.json.d.ts +13 -0
  135. package/dist/components/table/locale/en.json.js +21 -0
  136. package/dist/components/table/locale/vi.json.d.ts +13 -0
  137. package/dist/components/table/locale/vi.json.js +21 -0
  138. package/dist/components/table/table-utils.d.ts +10 -0
  139. package/dist/components/table/table-utils.js +10 -0
  140. package/dist/components/table/types.d.ts +84 -0
  141. package/dist/components/tabs/Tabs.d.ts +27 -0
  142. package/dist/components/tabs/Tabs.js +75 -0
  143. package/dist/components/tabs/TabsTestStory.d.ts +4 -0
  144. package/dist/components/tags-input/TagsInput.d.ts +18 -0
  145. package/dist/components/tags-input/TagsInput.js +78 -0
  146. package/dist/components/tags-input/TagsInputTestStory.d.ts +3 -0
  147. package/dist/components/textarea/Textarea.d.ts +7 -0
  148. package/dist/components/textarea/Textarea.js +36 -0
  149. package/dist/components/toast/ToastSlice.d.ts +1 -1
  150. package/dist/components/toast/index.d.ts +1 -1
  151. package/dist/components/tooltip/Tooltip.d.ts +1 -1
  152. package/dist/filters/FilterDropdown.d.ts +9 -0
  153. package/dist/filters/FilterDropdown.js +57 -0
  154. package/dist/filters/types.d.ts +11 -0
  155. package/dist/filters/url-params.d.ts +5 -0
  156. package/dist/filters/url-params.js +20 -0
  157. package/dist/filters/use-filters.d.ts +13 -0
  158. package/dist/filters/use-filters.js +63 -0
  159. package/dist/hooks/use-countdown.d.ts +4 -0
  160. package/dist/hooks/use-countdown.js +18 -0
  161. package/dist/i18n/resources.js +23 -0
  162. package/dist/index.d.ts +56 -0
  163. package/dist/index.js +126 -40
  164. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +421 -350
  165. package/dist/utils/key-typeguard.d.ts +5 -0
  166. package/dist/utils/key-typeguard.js +6 -0
  167. package/dist/utils/use-debounce.d.ts +1 -0
  168. package/dist/utils/use-debounce.js +11 -0
  169. package/package.json +32 -10
  170. package/theme.css +4 -1
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type guard that narrows a string to a key of the given object.
3
+ * Counterpart to `enumTypeguard` (which checks values).
4
+ */
5
+ export declare function keyTypeguard<T extends Record<PropertyKey, unknown>>(value: PropertyKey, obj: T): value is keyof T;
@@ -0,0 +1,6 @@
1
+ function r(e, n) {
2
+ return e in n;
3
+ }
4
+ export {
5
+ r as keyTypeguard
6
+ };
@@ -0,0 +1 @@
1
+ export declare function useDebounce<T>(value: T, delayMs: number): T;
@@ -0,0 +1,11 @@
1
+ import { useState as u, useEffect as c } from "react";
2
+ function i(e, t) {
3
+ const [o, n] = u(e);
4
+ return c(() => {
5
+ const r = setTimeout(() => n(e), t);
6
+ return () => clearTimeout(r);
7
+ }, [e, t]), o;
8
+ }
9
+ export {
10
+ i as useDebounce
11
+ };
package/package.json CHANGED
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "name": "@cystackapp/ui",
3
- "version": "1.5.0",
3
+ "version": "2.0.1",
4
+ "description": "CyStack design system — reusable React UI components built with Tailwind CSS v4",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/cystack/ui.git"
9
+ },
4
10
  "type": "module",
5
11
  "main": "./dist/index.js",
6
12
  "types": "./dist/index.d.ts",
@@ -22,29 +28,30 @@
22
28
  "build": "vite build",
23
29
  "dev": "vite build --watch",
24
30
  "typecheck": "tsc --noEmit --pretty",
31
+ "lint": "eslint src",
25
32
  "storybook": "storybook dev -p 6007",
26
33
  "test": "vitest run --passWithNoTests && playwright test -c playwright-ct.config.ts",
27
34
  "test:component": "playwright test -c playwright-ct.config.ts",
28
35
  "test:unit": "vitest run",
29
36
  "test:unit:watch": "vitest",
30
- "i18n": "node ../../scripts/generate-i18n.mjs",
31
- "i18n:check": "node ../../scripts/check-i18n-keys.mjs"
37
+ "i18n": "node scripts/generate-i18n.mjs --scan src --output src/i18n/resources.ts",
38
+ "i18n:check": "node scripts/check-i18n-keys.mjs"
32
39
  },
33
40
  "peerDependencies": {
34
41
  "@untitled-ui/icons-react": "^0.1.4",
35
- "i18next": "23.7.7",
36
- "react": "^18.0.0",
37
- "react-dom": "^18.0.0",
38
- "react-i18next": "^15.0.0",
39
- "react-router-dom": "^6.0.0"
42
+ "i18next": ">=23.0.0",
43
+ "react": "^18.0.0 || ^19.0.0",
44
+ "react-dom": "^18.0.0 || ^19.0.0",
45
+ "react-i18next": "^15.0.0 || ^16.0.0 || ^17.0.0",
46
+ "react-router-dom": "^6.0.0 || ^7.0.0"
40
47
  },
41
48
  "dependencies": {
42
49
  "clsx": "^2.1.1",
43
50
  "tailwind-merge": "^3.5.0"
44
51
  },
45
52
  "devDependencies": {
46
- "@platform-dash/eslint-config": "*",
47
- "eslint": "^10.0.3",
53
+ "@eslint/compat": "^2.0.3",
54
+ "@eslint/js": "^10",
48
55
  "@playwright/experimental-ct-react": "1.60.0",
49
56
  "@playwright/test": "1.60.0",
50
57
  "@storybook/addon-essentials": "^8.6.18",
@@ -52,13 +59,28 @@
52
59
  "@storybook/react-vite": "^8.6.18",
53
60
  "@storybook/test": "^8.6.18",
54
61
  "@tailwindcss/vite": "~4.1",
62
+ "@types/node": "^25.9.2",
55
63
  "@types/react": "^18.2.34",
56
64
  "@types/react-dom": "^18.2.14",
65
+ "@untitled-ui/icons-react": "^0.1.4",
57
66
  "@vitejs/plugin-react": "^5",
67
+ "ajv": "^8.20.0",
68
+ "eslint": "^10.0.3",
69
+ "eslint-config-prettier": "^10.0.1",
70
+ "eslint-plugin-react": "^7.37.5",
71
+ "eslint-plugin-react-hooks": "^7.0.1",
72
+ "globals": "^16",
73
+ "i18next": "^23.7.7",
58
74
  "picocolors": "^1.1.1",
75
+ "prettier": "^3.8.4",
76
+ "react": "^18.2.0",
77
+ "react-dom": "^18.2.0",
78
+ "react-i18next": "^15.0.0",
79
+ "react-router-dom": "^6.20.0",
59
80
  "storybook": "^8.6.18",
60
81
  "tailwindcss": "~4.1",
61
82
  "typescript": "~5.9",
83
+ "typescript-eslint": "^8",
62
84
  "vite": "^6",
63
85
  "vite-plugin-dts": "^4",
64
86
  "vite-plugin-svgr": "^4",
package/theme.css CHANGED
@@ -1,4 +1,7 @@
1
- @source "./src";
1
+ /* The published package ships dist/ (not src/), so consumers' Tailwind must
2
+ scan the built output for class names. Local dev tooling (storybook,
3
+ playwright) adds its own `@source` for src/. */
4
+ @source "./dist";
2
5
 
3
6
  @layer base {
4
7
  button {