retail-design-system 1.0.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 (110) hide show
  1. package/.github/workflows/release.yml +46 -0
  2. package/.oxfmtrc.json +17 -0
  3. package/.oxlintrc.json +132 -0
  4. package/.vscode/extensions.json +3 -0
  5. package/.vscode/settings.json +13 -0
  6. package/README.md +56 -0
  7. package/apps/storybook/.storybook/main.ts +8 -0
  8. package/apps/storybook/.storybook/preview.css +9 -0
  9. package/apps/storybook/.storybook/preview.ts +6 -0
  10. package/apps/storybook/package.json +24 -0
  11. package/apps/storybook/stories/button.stories.ts +118 -0
  12. package/apps/storybook/stories/input.stories.ts +127 -0
  13. package/apps/storybook/stories/label.stories.ts +98 -0
  14. package/apps/storybook/tsconfig.app.json +24 -0
  15. package/apps/storybook/tsconfig.json +4 -0
  16. package/apps/storybook/tsconfig.node.json +22 -0
  17. package/apps/storybook/vite.config.ts +15 -0
  18. package/apps/web/app/(sidebar)/components/[...slugs]/get-child-block.ts +17 -0
  19. package/apps/web/app/(sidebar)/components/[...slugs]/get-component-page-match.ts +56 -0
  20. package/apps/web/app/(sidebar)/components/[...slugs]/get-direct-child-block.ts +22 -0
  21. package/apps/web/app/(sidebar)/components/[...slugs]/layout.tsx +25 -0
  22. package/apps/web/app/(sidebar)/components/[...slugs]/page.tsx +32 -0
  23. package/apps/web/app/(sidebar)/components/[...slugs]/pascal-to-kebab-case.ts +9 -0
  24. package/apps/web/app/(sidebar)/components/button2/page.tsx +154 -0
  25. package/apps/web/app/(sidebar)/components/input/page.tsx +98 -0
  26. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-card-badge.tsx +9 -0
  27. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-coin-active-badge.tsx +14 -0
  28. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-coin-inactive-badge.tsx +12 -0
  29. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-create-coin.tsx +44 -0
  30. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-dialog-icon.tsx +47 -0
  31. package/apps/web/app/(sidebar)/experiments/2025-10-22/page.tsx +167 -0
  32. package/apps/web/app/(sidebar)/experiments/2025-11-04/filters.tsx +90 -0
  33. package/apps/web/app/(sidebar)/experiments/2025-11-04/page.tsx +18 -0
  34. package/apps/web/app/(sidebar)/layout.tsx +17 -0
  35. package/apps/web/app/(sidebar)/primitives/colors/page.tsx +49 -0
  36. package/apps/web/app/favicon.ico +0 -0
  37. package/apps/web/app/layout.tsx +39 -0
  38. package/apps/web/app/page.tsx +14 -0
  39. package/apps/web/app/providers.tsx +15 -0
  40. package/apps/web/components/dialog.tsx +21 -0
  41. package/apps/web/components/logo.tsx +11 -0
  42. package/apps/web/components/logomark.tsx +21 -0
  43. package/apps/web/components/logotype.tsx +25 -0
  44. package/apps/web/components/notion/notion-block-content.tsx +401 -0
  45. package/apps/web/components/notion/notion-docs-blocks.tsx +18 -0
  46. package/apps/web/components/notion/notion-docs-code-page.tsx +20 -0
  47. package/apps/web/components/notion/notion-docs-layout.tsx +52 -0
  48. package/apps/web/components/notion/notion-revalidate-button-client.tsx +14 -0
  49. package/apps/web/components/notion/notion-revalidate-button.tsx +20 -0
  50. package/apps/web/components/notion/notion-rich-text-segments.tsx +55 -0
  51. package/apps/web/components/notion/notion-tabs.tsx +38 -0
  52. package/apps/web/components/notion/notion.ts +223 -0
  53. package/apps/web/components/sidebar-client.tsx +60 -0
  54. package/apps/web/components/sidebar-server.tsx +185 -0
  55. package/apps/web/components/tooltip.tsx +53 -0
  56. package/apps/web/components/topbar.tsx +14 -0
  57. package/apps/web/next.config.ts +10 -0
  58. package/apps/web/package.json +42 -0
  59. package/apps/web/postcss.config.mjs +5 -0
  60. package/apps/web/public/2025-10-22-dialog-banner.png +0 -0
  61. package/apps/web/public/pump-logomark.svg +7 -0
  62. package/apps/web/styles/custom.css +31 -0
  63. package/apps/web/styles/font.css +8 -0
  64. package/apps/web/styles/global.css +5 -0
  65. package/apps/web/styles/tailwind-reset.css +102 -0
  66. package/apps/web/styles/tailwind.css +140 -0
  67. package/apps/web/tsconfig.json +34 -0
  68. package/bun.lock +1249 -0
  69. package/bunfig.toml +2 -0
  70. package/package.json +41 -0
  71. package/packages/ui/global.d.ts +4 -0
  72. package/packages/ui/package.json +49 -0
  73. package/packages/ui/src/components/button/button-spinner.module.css +95 -0
  74. package/packages/ui/src/components/button/button-spinner.tsx +18 -0
  75. package/packages/ui/src/components/button/button.module.css +144 -0
  76. package/packages/ui/src/components/button/button.tsx +102 -0
  77. package/packages/ui/src/components/button-link/button-link.tsx +46 -0
  78. package/packages/ui/src/components/column/column.module.css +4 -0
  79. package/packages/ui/src/components/column/column.tsx +65 -0
  80. package/packages/ui/src/components/row/row.module.css +4 -0
  81. package/packages/ui/src/components/row/row.tsx +65 -0
  82. package/packages/ui/src/components/spacer/spacer.module.css +3 -0
  83. package/packages/ui/src/components/spacer/spacer.tsx +30 -0
  84. package/packages/ui/src/components/switch/switch.module.css +62 -0
  85. package/packages/ui/src/components/switch/switch.tsx +58 -0
  86. package/packages/ui/src/components/tabs/tabs-panel.module.css +4 -0
  87. package/packages/ui/src/components/tabs/tabs-panel.tsx +21 -0
  88. package/packages/ui/src/components/tabs/tabs.module.css +5 -0
  89. package/packages/ui/src/components/tabs/tabs.tsx +21 -0
  90. package/packages/ui/src/components/tabs-underline/tabs-underline-indicator.module.css +10 -0
  91. package/packages/ui/src/components/tabs-underline/tabs-underline-indicator.tsx +33 -0
  92. package/packages/ui/src/components/tabs-underline/tabs-underline-list.module.css +8 -0
  93. package/packages/ui/src/components/tabs-underline/tabs-underline-list.tsx +27 -0
  94. package/packages/ui/src/components/tabs-underline/tabs-underline-tab.module.css +24 -0
  95. package/packages/ui/src/components/tabs-underline/tabs-underline-tab.tsx +30 -0
  96. package/packages/ui/src/foundations/colors/colors.ts +475 -0
  97. package/packages/ui/src/foundations/colors/generate-css.ts +34 -0
  98. package/packages/ui/src/foundations/colors/retail-design-system.css +116 -0
  99. package/packages/ui/src/foundations/colors/tailwind-v3.ts +18 -0
  100. package/packages/ui/src/foundations/colors/tailwind-v4.css +116 -0
  101. package/packages/ui/src/index.ts +34 -0
  102. package/packages/ui/src/input.module.css +57 -0
  103. package/packages/ui/src/input.tsx +49 -0
  104. package/packages/ui/src/label.module.css +8 -0
  105. package/packages/ui/src/label.tsx +23 -0
  106. package/packages/ui/tsconfig.json +14 -0
  107. package/packages/ui/tsup.config.ts +31 -0
  108. package/scripts/clean.sh +69 -0
  109. package/scripts/sort-package-json.sh +30 -0
  110. package/turbo.json +15 -0
@@ -0,0 +1,102 @@
1
+ /* ====================================================== /
2
+ Natt Nguyen's CSS Reset
3
+ Last updated: 2025.01.26
4
+
5
+ The goal of a reset stylesheet is to reduce browser
6
+ inconsistencies, improve the user experience, and
7
+ improve the CSS authoring experience. Assumes
8
+ the use of Tailwind CSS Preflight.
9
+
10
+ Reference:
11
+ - https://www.joshwcomeau.com/css/custom-css-reset
12
+ - https://piccalil.li/blog/a-more-modern-css-reset/
13
+ // ===================================================== */
14
+
15
+ /*
16
+ Adapt to color schemes (scrollbar color)
17
+ */
18
+ :root {
19
+ color-scheme: light dark;
20
+ }
21
+
22
+ /*
23
+ Typographic tweaks
24
+ - Improve text rendering
25
+ - Add accessible line height
26
+ */
27
+ body {
28
+ position: relative;
29
+ -webkit-font-smoothing: antialiased;
30
+ -moz-osx-font-smoothing: grayscale;
31
+ line-height: 1.5;
32
+ isolation: isolate;
33
+ }
34
+
35
+ /*
36
+ (Mobile) Disables additional non-standard gestures such as double-tap to zoom
37
+ */
38
+ html {
39
+ touch-action: manipulation;
40
+ }
41
+
42
+ /*
43
+ (Mobile) Disable automatic text size increase
44
+ */
45
+ html {
46
+ -moz-text-size-adjust: none;
47
+ -webkit-text-size-adjust: none;
48
+ text-size-adjust: none;
49
+ }
50
+
51
+ /*
52
+ (Safari mobile) Disable tap highlight
53
+ */
54
+ body {
55
+ /* Disables tap highlight */
56
+ -webkit-tap-highlight-color: transparent;
57
+ }
58
+
59
+ /*
60
+ (Safari mobile) Remove top inner shadow
61
+ */
62
+ input,
63
+ textarea {
64
+ -webkit-appearance: none;
65
+ appearance: none;
66
+ }
67
+
68
+ /*
69
+ Remove input arrows
70
+ Chrome, Safari, Edge, Opera
71
+ */
72
+ input::-webkit-outer-spin-button,
73
+ input::-webkit-inner-spin-button {
74
+ margin: 0;
75
+ -webkit-appearance: none;
76
+ }
77
+
78
+ /*
79
+ Remove input number arrows
80
+ */
81
+ input[type="number"] {
82
+ -moz-appearance: textfield;
83
+ appearance: textfield;
84
+ }
85
+
86
+ /*
87
+ Respecting motion preferences
88
+ Reference: https://web.dev/articles/prefers-reduced-motion#bonus_forcing_reduced_motion_on_all_websites
89
+ */
90
+ @media (prefers-reduced-motion: reduce) {
91
+ *,
92
+ ::before,
93
+ ::after {
94
+ animation-delay: -1ms !important;
95
+ animation-duration: 1ms !important;
96
+ animation-iteration-count: 1 !important;
97
+ background-attachment: initial !important;
98
+ scroll-behavior: auto !important;
99
+ transition-delay: -1ms !important;
100
+ transition-duration: 1ms !important;
101
+ }
102
+ }
@@ -0,0 +1,140 @@
1
+ /* Order matters */
2
+ @import "tailwindcss";
3
+ @import "@nattui/tailwind-exact";
4
+ @import "@pump-fun/retail-design-system/tailwind-v4/colors.css";
5
+ @import "@pump-fun/retail-design-system/retail-design-system.css";
6
+
7
+ @layer base {
8
+ .d {
9
+ border: 1px dashed red;
10
+ }
11
+
12
+ html {
13
+ min-height: 100%;
14
+ font-size: 10px;
15
+ }
16
+
17
+ body {
18
+ display: flex;
19
+ flex-direction: column;
20
+ height: 100%;
21
+ font-family: var(--font-sans);
22
+ font-size: 16px;
23
+ -webkit-font-smoothing: antialiased;
24
+ -moz-osx-font-smoothing: grayscale;
25
+ line-height: 1.5;
26
+ color: var(--color-text-secondary);
27
+ background-color: var(--color-bg-primary);
28
+ }
29
+
30
+ h1 {
31
+ font-size: 5.6rem;
32
+ }
33
+
34
+ h2 {
35
+ font-size: 3.6rem;
36
+ }
37
+
38
+ h3 {
39
+ font-size: 3rem;
40
+ }
41
+
42
+ h4 {
43
+ font-size: 2rem;
44
+ }
45
+
46
+ h1,
47
+ h2,
48
+ h3,
49
+ h4,
50
+ h5,
51
+ h6 {
52
+ font-family: var(--font-display);
53
+ font-weight: 500;
54
+ font-feature-settings: "ss04";
55
+ color: var(--color-text-primary);
56
+ }
57
+
58
+ p {
59
+ font-size: 1.6rem;
60
+ hyphens: auto;
61
+ word-break: break-word;
62
+ }
63
+
64
+ button {
65
+ font-weight: 500;
66
+ outline-width: 0;
67
+ outline-style: solid;
68
+ outline-color: var(--color-bg-accent);
69
+ outline-offset: 2px;
70
+
71
+ &:focus-visible {
72
+ outline-width: 2px;
73
+ }
74
+ }
75
+
76
+ b,
77
+ strong {
78
+ font-weight: 500;
79
+ }
80
+
81
+ a {
82
+ font-family: var(--font-sans);
83
+ outline-width: 0;
84
+ outline-style: solid;
85
+ outline-color: var(--color-bg-accent);
86
+ outline-offset: 2px;
87
+
88
+ &:focus-visible {
89
+ outline-width: 2px;
90
+ }
91
+ }
92
+
93
+ code {
94
+ font-family: var(--font-mono);
95
+ }
96
+
97
+ /*
98
+ Enhance heading quality and legibility
99
+ */
100
+ h1,
101
+ h2,
102
+ h3,
103
+ h4,
104
+ h5,
105
+ h6 {
106
+ text-wrap: balance;
107
+ }
108
+
109
+ /*
110
+ Avoid a short single word on the last line
111
+ */
112
+ p {
113
+ text-wrap: pretty;
114
+ }
115
+
116
+ /*
117
+ Avoid text overflows
118
+ */
119
+ h1,
120
+ h2,
121
+ h3,
122
+ h4,
123
+ h5,
124
+ h6,
125
+ p {
126
+ overflow-wrap: break-word;
127
+ }
128
+ }
129
+
130
+ :root {
131
+ --sh-class: white;
132
+ --sh-comment: #5e6a6a;
133
+ --sh-entity: #8aebf3;
134
+ --sh-identifier: #c37ba3;
135
+ --sh-jsxliterals: white;
136
+ --sh-keyword: #0b8f98;
137
+ --sh-property: #15ccdc;
138
+ --sh-sign: white;
139
+ --sh-string: #69d9e0;
140
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "compilerOptions": {
3
+ "allowJs": true,
4
+ "esModuleInterop": true,
5
+ "incremental": true,
6
+ "isolatedModules": true,
7
+ "jsx": "react-jsx",
8
+ "lib": ["dom", "dom.iterable", "esnext"],
9
+ "module": "esnext",
10
+ "moduleResolution": "bundler",
11
+ "noEmit": true,
12
+ "paths": {
13
+ "@/*": ["./*"]
14
+ },
15
+ "plugins": [
16
+ {
17
+ "name": "next"
18
+ }
19
+ ],
20
+ "resolveJsonModule": true,
21
+ "skipLibCheck": true,
22
+ "strict": true,
23
+ "target": "ES2017"
24
+ },
25
+ "exclude": ["node_modules"],
26
+ "include": [
27
+ "**/*.mts",
28
+ "**/*.ts",
29
+ "**/*.tsx",
30
+ ".next/dev/types/**/*.ts",
31
+ ".next/types/**/*.ts",
32
+ "next-env.d.ts"
33
+ ]
34
+ }