@jbpark/ui-kit 7.0.0 → 8.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 (39) hide show
  1. package/dist/Button.d.mts +7 -2
  2. package/dist/Button.d.mts.map +1 -1
  3. package/dist/Button.mjs.map +1 -1
  4. package/dist/CodeEditor.d.mts +51 -0
  5. package/dist/CodeEditor.d.mts.map +1 -0
  6. package/dist/CodeEditor.mjs +87 -0
  7. package/dist/CodeEditor.mjs.map +1 -0
  8. package/dist/Tag.d.mts +8 -3
  9. package/dist/Tag.d.mts.map +1 -1
  10. package/dist/Tag.mjs.map +1 -1
  11. package/dist/components/atoms/index.d.mts +3 -1
  12. package/dist/components/atoms/rich-text-editor/content-classes.mjs +7 -0
  13. package/dist/components/atoms/rich-text-editor/content-classes.mjs.map +1 -0
  14. package/dist/components/atoms/rich-text-editor/index.d.mts +3 -0
  15. package/dist/components/atoms/rich-text-editor/rich-text-editor.d.mts +24 -0
  16. package/dist/components/atoms/rich-text-editor/rich-text-editor.d.mts.map +1 -0
  17. package/dist/components/atoms/rich-text-editor/rich-text-editor.mjs +55 -0
  18. package/dist/components/atoms/rich-text-editor/rich-text-editor.mjs.map +1 -0
  19. package/dist/components/atoms/rich-text-editor/toolbar-button.mjs +16 -0
  20. package/dist/components/atoms/rich-text-editor/toolbar-button.mjs.map +1 -0
  21. package/dist/components/atoms/rich-text-editor/toolbar-presets.mjs +209 -0
  22. package/dist/components/atoms/rich-text-editor/toolbar-presets.mjs.map +1 -0
  23. package/dist/components/atoms/rich-text-editor/toolbar.mjs +21 -0
  24. package/dist/components/atoms/rich-text-editor/toolbar.mjs.map +1 -0
  25. package/dist/components/atoms/rich-text-editor/types.d.mts +14 -0
  26. package/dist/components/atoms/rich-text-editor/types.d.mts.map +1 -0
  27. package/dist/index.d.mts +2 -1
  28. package/dist/index.mjs +2 -1
  29. package/dist/lib/colors.d.mts +36 -3
  30. package/dist/lib/colors.d.mts.map +1 -1
  31. package/dist/providers/config/config.d.mts.map +1 -1
  32. package/dist/providers/config/config.mjs +5 -32
  33. package/dist/providers/config/config.mjs.map +1 -1
  34. package/dist/providers/config/dark-mode.mjs +39 -0
  35. package/dist/providers/config/dark-mode.mjs.map +1 -0
  36. package/dist/providers/config/types.d.mts +25 -18
  37. package/dist/providers/config/types.d.mts.map +1 -1
  38. package/dist/style.css +300 -88
  39. package/package.json +38 -1
package/dist/style.css CHANGED
@@ -2,12 +2,35 @@
2
2
  @layer properties;
3
3
  @layer theme {
4
4
  :root, :host {
5
- --font-sans: var(--font-geist-sans);
6
- --font-mono: var(--font-geist-mono);
5
+ --font-sans: var(--ui-font-sans, var(--font-geist-sans));
6
+ --font-mono: var(--ui-font-mono, var(--font-geist-mono));
7
7
  --color-red-400: oklch(70.4% .191 22.216);
8
+ --color-red-500: oklch(63.7% .237 25.331);
9
+ --color-orange-500: oklch(70.5% .213 47.604);
10
+ --color-orange-600: oklch(64.6% .222 41.116);
11
+ --color-amber-500: oklch(76.9% .188 70.08);
8
12
  --color-yellow-400: oklch(85.2% .199 91.936);
13
+ --color-yellow-500: oklch(79.5% .184 86.047);
14
+ --color-yellow-600: oklch(68.1% .162 75.834);
15
+ --color-lime-500: oklch(76.8% .233 130.85);
9
16
  --color-green-400: oklch(79.2% .209 151.711);
17
+ --color-green-500: oklch(72.3% .219 149.579);
18
+ --color-green-600: oklch(62.7% .194 149.214);
19
+ --color-cyan-500: oklch(71.5% .143 215.221);
10
20
  --color-blue-400: oklch(70.7% .165 254.624);
21
+ --color-blue-500: oklch(62.3% .214 259.815);
22
+ --color-blue-600: oklch(54.6% .245 262.881);
23
+ --color-indigo-500: oklch(58.5% .233 277.117);
24
+ --color-purple-500: oklch(62.7% .265 303.9);
25
+ --color-fuchsia-500: oklch(66.7% .295 322.15);
26
+ --color-pink-500: oklch(65.6% .241 354.308);
27
+ --color-gray-100: oklch(96.7% .003 264.542);
28
+ --color-gray-200: oklch(92.8% .006 264.531);
29
+ --color-gray-300: oklch(87.2% .01 258.338);
30
+ --color-gray-400: oklch(70.7% .022 261.325);
31
+ --color-gray-600: oklch(44.6% .03 256.802);
32
+ --color-gray-800: oklch(27.8% .033 256.848);
33
+ --color-gray-900: oklch(21% .034 264.665);
11
34
  --color-black: #000;
12
35
  --color-white: #fff;
13
36
  --spacing: .25rem;
@@ -80,7 +103,56 @@
80
103
  }
81
104
  }
82
105
  @layer components {
106
+ :is([data-slot="button"], [data-slot="badge"])[data-color="blue"] {
107
+ --preset-color: var(--color-blue-500);
108
+ }
109
+ :is([data-slot="button"], [data-slot="badge"])[data-color="purple"] {
110
+ --preset-color: var(--color-purple-500);
111
+ }
112
+ :is([data-slot="button"], [data-slot="badge"])[data-color="cyan"] {
113
+ --preset-color: var(--color-cyan-500);
114
+ }
115
+ :is([data-slot="button"], [data-slot="badge"])[data-color="green"] {
116
+ --preset-color: var(--color-green-500);
117
+ }
118
+ :is([data-slot="button"], [data-slot="badge"])[data-color="fuchsia"] {
119
+ --preset-color: var(--color-fuchsia-500);
120
+ }
121
+ :is([data-slot="button"], [data-slot="badge"])[data-color="pink"] {
122
+ --preset-color: var(--color-pink-500);
123
+ }
124
+ :is([data-slot="button"], [data-slot="badge"])[data-color="red"] {
125
+ --preset-color: var(--color-red-500);
126
+ }
127
+ :is([data-slot="button"], [data-slot="badge"])[data-color="orange"] {
128
+ --preset-color: var(--color-orange-500);
129
+ }
130
+ :is([data-slot="button"], [data-slot="badge"])[data-color="yellow"] {
131
+ --preset-color: var(--color-yellow-500);
132
+ }
133
+ :is([data-slot="button"], [data-slot="badge"])[data-color="indigo"] {
134
+ --preset-color: var(--color-indigo-500);
135
+ }
136
+ :is([data-slot="button"], [data-slot="badge"])[data-color="lime"] {
137
+ --preset-color: var(--color-lime-500);
138
+ }
139
+ :is([data-slot="button"], [data-slot="badge"])[data-color="amber"] {
140
+ --preset-color: var(--color-amber-500);
141
+ }
142
+ :is([data-slot="button"], [data-slot="badge"])[data-color="magenta"] {
143
+ --preset-color: var(--color-fuchsia-500);
144
+ }
145
+ :is([data-slot="button"], [data-slot="badge"])[data-color="geekblue"] {
146
+ --preset-color: var(--color-indigo-500);
147
+ }
148
+ :is([data-slot="button"], [data-slot="badge"])[data-color="gold"] {
149
+ --preset-color: var(--color-amber-500);
150
+ }
151
+ :is([data-slot="button"], [data-slot="badge"])[data-color="volcano"] {
152
+ --preset-color: var(--color-orange-600);
153
+ }
83
154
  [data-slot="button"][data-color] {
155
+ --btn-bg: var(--preset-color);
84
156
  --btn-fg: white;
85
157
  --btn-border: var(--btn-bg);
86
158
  --btn-bg-hover: var(--btn-bg);
@@ -92,7 +164,7 @@
92
164
  --btn-bg-active: color-mix(in oklch, var(--btn-bg), black 22%);
93
165
  }
94
166
  }
95
- [data-slot="button"][data-color="yellow"], [data-slot="button"][data-color="lime"], [data-slot="button"][data-color="gold"] {
167
+ [data-slot="button"][data-color="yellow"], [data-slot="button"][data-color="lime"], [data-slot="button"][data-color="amber"], [data-slot="button"][data-color="gold"] {
96
168
  --btn-fg: black;
97
169
  }
98
170
  [data-slot="button"][data-color="default"] {
@@ -106,46 +178,8 @@
106
178
  [data-slot="button"][data-color="danger"] {
107
179
  --btn-bg: var(--destructive);
108
180
  }
109
- [data-slot="button"][data-color="blue"] {
110
- --btn-bg: #3b82f6;
111
- }
112
- [data-slot="button"][data-color="purple"] {
113
- --btn-bg: #a855f7;
114
- }
115
- [data-slot="button"][data-color="cyan"] {
116
- --btn-bg: #06b6d4;
117
- }
118
- [data-slot="button"][data-color="green"] {
119
- --btn-bg: #22c55e;
120
- }
121
- [data-slot="button"][data-color="magenta"] {
122
- --btn-bg: #d946ef;
123
- }
124
- [data-slot="button"][data-color="pink"] {
125
- --btn-bg: #ec4899;
126
- }
127
- [data-slot="button"][data-color="red"] {
128
- --btn-bg: #ef4444;
129
- }
130
- [data-slot="button"][data-color="orange"] {
131
- --btn-bg: #f97316;
132
- }
133
- [data-slot="button"][data-color="yellow"] {
134
- --btn-bg: #eab308;
135
- }
136
- [data-slot="button"][data-color="volcano"] {
137
- --btn-bg: #ea580c;
138
- }
139
- [data-slot="button"][data-color="geekblue"] {
140
- --btn-bg: #6366f1;
141
- }
142
- [data-slot="button"][data-color="lime"] {
143
- --btn-bg: #84cc16;
144
- }
145
- [data-slot="button"][data-color="gold"] {
146
- --btn-bg: #f59e0b;
147
- }
148
181
  [data-slot="badge"][data-color] {
182
+ --tag-bg: var(--preset-color);
149
183
  --tag-fg: var(--tag-bg);
150
184
  --tag-tint: var(--tag-bg);
151
185
  @supports (color: color-mix(in lab, red, red)) {
@@ -167,57 +201,18 @@
167
201
  --tag-bg: var(--destructive);
168
202
  }
169
203
  [data-slot="badge"][data-color="success"] {
170
- --tag-bg: oklch(72.3% .219 149.579);
171
- --tag-fg: oklch(62.7% .194 149.214);
204
+ --tag-bg: var(--color-green-500);
205
+ --tag-fg: var(--color-green-600);
172
206
  }
173
207
  [data-slot="badge"][data-color="warning"] {
174
- --tag-bg: oklch(79.5% .184 86.047);
175
- --tag-fg: oklch(68.1% .162 75.834);
208
+ --tag-bg: var(--color-yellow-500);
209
+ --tag-fg: var(--color-yellow-600);
176
210
  }
177
211
  :is(.dark, [data-theme="dark"]) [data-slot="badge"][data-color="success"] {
178
- --tag-fg: oklch(79.2% .209 151.711);
212
+ --tag-fg: var(--color-green-400);
179
213
  }
180
214
  :is(.dark, [data-theme="dark"]) [data-slot="badge"][data-color="warning"] {
181
- --tag-fg: oklch(85.2% .199 91.936);
182
- }
183
- [data-slot="badge"][data-color="blue"] {
184
- --tag-bg: #3b82f6;
185
- }
186
- [data-slot="badge"][data-color="purple"] {
187
- --tag-bg: #a855f7;
188
- }
189
- [data-slot="badge"][data-color="cyan"] {
190
- --tag-bg: #06b6d4;
191
- }
192
- [data-slot="badge"][data-color="green"] {
193
- --tag-bg: #22c55e;
194
- }
195
- [data-slot="badge"][data-color="magenta"] {
196
- --tag-bg: #d946ef;
197
- }
198
- [data-slot="badge"][data-color="pink"] {
199
- --tag-bg: #ec4899;
200
- }
201
- [data-slot="badge"][data-color="red"] {
202
- --tag-bg: #ef4444;
203
- }
204
- [data-slot="badge"][data-color="orange"] {
205
- --tag-bg: #f97316;
206
- }
207
- [data-slot="badge"][data-color="yellow"] {
208
- --tag-bg: #eab308;
209
- }
210
- [data-slot="badge"][data-color="volcano"] {
211
- --tag-bg: #ea580c;
212
- }
213
- [data-slot="badge"][data-color="geekblue"] {
214
- --tag-bg: #6366f1;
215
- }
216
- [data-slot="badge"][data-color="lime"] {
217
- --tag-bg: #84cc16;
218
- }
219
- [data-slot="badge"][data-color="gold"] {
220
- --tag-bg: #f59e0b;
215
+ --tag-fg: var(--color-yellow-400);
221
216
  }
222
217
  [data-slot="col"] {
223
218
  flex-basis: calc(var(--col-span-xs) / 24 * 100%);
@@ -629,6 +624,9 @@
629
624
  .min-h-16 {
630
625
  min-height: calc(var(--spacing) * 16);
631
626
  }
627
+ .min-h-20 {
628
+ min-height: calc(var(--spacing) * 20);
629
+ }
632
630
  .min-h-screen {
633
631
  min-height: 100vh;
634
632
  }
@@ -653,9 +651,15 @@
653
651
  .w-15 {
654
652
  width: calc(var(--spacing) * 15);
655
653
  }
654
+ .w-20 {
655
+ width: calc(var(--spacing) * 20);
656
+ }
656
657
  .w-25 {
657
658
  width: calc(var(--spacing) * 25);
658
659
  }
660
+ .w-28 {
661
+ width: calc(var(--spacing) * 28);
662
+ }
659
663
  .w-48 {
660
664
  width: calc(var(--spacing) * 48);
661
665
  }
@@ -1127,6 +1131,9 @@
1127
1131
  .border-current {
1128
1132
  border-color: currentcolor;
1129
1133
  }
1134
+ .border-gray-200 {
1135
+ border-color: var(--color-gray-200);
1136
+ }
1130
1137
  .border-input {
1131
1138
  border-color: var(--input);
1132
1139
  }
@@ -1172,6 +1179,9 @@
1172
1179
  .bg-card {
1173
1180
  background-color: var(--card);
1174
1181
  }
1182
+ .bg-chart-1 {
1183
+ background-color: var(--chart-1);
1184
+ }
1175
1185
  .bg-destructive {
1176
1186
  background-color: var(--destructive);
1177
1187
  }
@@ -1199,9 +1209,15 @@
1199
1209
  .bg-secondary {
1200
1210
  background-color: var(--secondary);
1201
1211
  }
1212
+ .bg-sidebar {
1213
+ background-color: var(--sidebar);
1214
+ }
1202
1215
  .bg-transparent {
1203
1216
  background-color: transparent;
1204
1217
  }
1218
+ .bg-white {
1219
+ background-color: var(--color-white);
1220
+ }
1205
1221
  .fill-primary {
1206
1222
  fill: var(--primary);
1207
1223
  }
@@ -1323,7 +1339,7 @@
1323
1339
  text-align: start;
1324
1340
  }
1325
1341
  .font-mono {
1326
- font-family: var(--font-geist-mono);
1342
+ font-family: var(--ui-font-mono, var(--font-geist-mono));
1327
1343
  }
1328
1344
  .text-2xl {
1329
1345
  font-size: var(--text-2xl);
@@ -1431,6 +1447,9 @@
1431
1447
  .text-foreground {
1432
1448
  color: var(--foreground);
1433
1449
  }
1450
+ .text-gray-800 {
1451
+ color: var(--color-gray-800);
1452
+ }
1434
1453
  .text-green-400 {
1435
1454
  color: var(--color-green-400);
1436
1455
  }
@@ -1461,6 +1480,9 @@
1461
1480
  .lowercase {
1462
1481
  text-transform: lowercase;
1463
1482
  }
1483
+ .italic {
1484
+ font-style: italic;
1485
+ }
1464
1486
  .underline {
1465
1487
  text-decoration-line: underline;
1466
1488
  }
@@ -1534,6 +1556,10 @@
1534
1556
  outline-style: var(--tw-outline-style);
1535
1557
  outline-width: 1px;
1536
1558
  }
1559
+ .blur {
1560
+ --tw-blur: blur(8px);
1561
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
1562
+ }
1537
1563
  .filter {
1538
1564
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
1539
1565
  }
@@ -2644,6 +2670,192 @@
2644
2670
  background-color: color-mix(in oklab, var(--input) 80%, transparent);
2645
2671
  }
2646
2672
  }
2673
+ .\[\&_\.tiptap\]\:outline-none .tiptap {
2674
+ --tw-outline-style: none;
2675
+ outline-style: none;
2676
+ }
2677
+ .\[\&_\.tiptap_a\]\:text-blue-600 .tiptap a {
2678
+ color: var(--color-blue-600);
2679
+ }
2680
+ .\[\&_\.tiptap_a\]\:underline .tiptap a {
2681
+ text-decoration-line: underline;
2682
+ }
2683
+ .\[\&_\.tiptap_a\]\:underline-offset-2 .tiptap a {
2684
+ text-underline-offset: 2px;
2685
+ }
2686
+ .\[\&_\.tiptap_blockquote\]\:my-2 .tiptap blockquote {
2687
+ margin-block: calc(var(--spacing) * 2);
2688
+ }
2689
+ .\[\&_\.tiptap_blockquote\]\:border-l-2 .tiptap blockquote {
2690
+ border-left-style: var(--tw-border-style);
2691
+ border-left-width: 2px;
2692
+ }
2693
+ .\[\&_\.tiptap_blockquote\]\:border-gray-300 .tiptap blockquote {
2694
+ border-color: var(--color-gray-300);
2695
+ }
2696
+ .\[\&_\.tiptap_blockquote\]\:pl-3 .tiptap blockquote {
2697
+ padding-left: calc(var(--spacing) * 3);
2698
+ }
2699
+ .\[\&_\.tiptap_blockquote\]\:text-gray-600 .tiptap blockquote {
2700
+ color: var(--color-gray-600);
2701
+ }
2702
+ .\[\&_\.tiptap_blockquote\]\:italic .tiptap blockquote {
2703
+ font-style: italic;
2704
+ }
2705
+ .\[\&_\.tiptap_code\]\:rounded .tiptap code {
2706
+ border-radius: .25rem;
2707
+ }
2708
+ .\[\&_\.tiptap_code\]\:bg-gray-100 .tiptap code {
2709
+ background-color: var(--color-gray-100);
2710
+ }
2711
+ .\[\&_\.tiptap_code\]\:px-1 .tiptap code {
2712
+ padding-inline: var(--spacing);
2713
+ }
2714
+ .\[\&_\.tiptap_code\]\:py-0\.5 .tiptap code {
2715
+ padding-block: calc(var(--spacing) * 0.5);
2716
+ }
2717
+ .\[\&_\.tiptap_code\]\:font-mono .tiptap code {
2718
+ font-family: var(--ui-font-mono, var(--font-geist-mono));
2719
+ }
2720
+ .\[\&_\.tiptap_code\]\:text-\[0\.85em\] .tiptap code {
2721
+ font-size: 0.85em;
2722
+ }
2723
+ .\[\&_\.tiptap_h1\]\:mt-6 .tiptap h1 {
2724
+ margin-top: calc(var(--spacing) * 6);
2725
+ }
2726
+ .\[\&_\.tiptap_h1\]\:mb-2 .tiptap h1 {
2727
+ margin-bottom: calc(var(--spacing) * 2);
2728
+ }
2729
+ .\[\&_\.tiptap_h1\]\:text-2xl .tiptap h1 {
2730
+ font-size: var(--text-2xl);
2731
+ line-height: var(--tw-leading, var(--text-2xl--line-height));
2732
+ }
2733
+ .\[\&_\.tiptap_h1\]\:font-bold .tiptap h1 {
2734
+ --tw-font-weight: var(--font-weight-bold);
2735
+ font-weight: var(--font-weight-bold);
2736
+ }
2737
+ .\[\&_\.tiptap_h2\]\:mt-5 .tiptap h2 {
2738
+ margin-top: calc(var(--spacing) * 5);
2739
+ }
2740
+ .\[\&_\.tiptap_h2\]\:mb-2 .tiptap h2 {
2741
+ margin-bottom: calc(var(--spacing) * 2);
2742
+ }
2743
+ .\[\&_\.tiptap_h2\]\:text-xl .tiptap h2 {
2744
+ font-size: var(--text-xl);
2745
+ line-height: var(--tw-leading, var(--text-xl--line-height));
2746
+ }
2747
+ .\[\&_\.tiptap_h2\]\:font-bold .tiptap h2 {
2748
+ --tw-font-weight: var(--font-weight-bold);
2749
+ font-weight: var(--font-weight-bold);
2750
+ }
2751
+ .\[\&_\.tiptap_h3\]\:mt-4 .tiptap h3 {
2752
+ margin-top: calc(var(--spacing) * 4);
2753
+ }
2754
+ .\[\&_\.tiptap_h3\]\:mb-2 .tiptap h3 {
2755
+ margin-bottom: calc(var(--spacing) * 2);
2756
+ }
2757
+ .\[\&_\.tiptap_h3\]\:text-lg .tiptap h3 {
2758
+ font-size: var(--text-lg);
2759
+ line-height: var(--tw-leading, var(--text-lg--line-height));
2760
+ }
2761
+ .\[\&_\.tiptap_h3\]\:font-semibold .tiptap h3 {
2762
+ --tw-font-weight: var(--font-weight-semibold);
2763
+ font-weight: var(--font-weight-semibold);
2764
+ }
2765
+ .\[\&_\.tiptap_h4\]\:mt-3 .tiptap h4 {
2766
+ margin-top: calc(var(--spacing) * 3);
2767
+ }
2768
+ .\[\&_\.tiptap_h4\]\:mb-1 .tiptap h4 {
2769
+ margin-bottom: var(--spacing);
2770
+ }
2771
+ .\[\&_\.tiptap_h4\]\:text-base .tiptap h4 {
2772
+ font-size: var(--text-base);
2773
+ line-height: var(--tw-leading, var(--text-base--line-height));
2774
+ }
2775
+ .\[\&_\.tiptap_h4\]\:font-semibold .tiptap h4 {
2776
+ --tw-font-weight: var(--font-weight-semibold);
2777
+ font-weight: var(--font-weight-semibold);
2778
+ }
2779
+ .\[\&_\.tiptap_hr\]\:my-4 .tiptap hr {
2780
+ margin-block: calc(var(--spacing) * 4);
2781
+ }
2782
+ .\[\&_\.tiptap_hr\]\:border-gray-200 .tiptap hr {
2783
+ border-color: var(--color-gray-200);
2784
+ }
2785
+ .\[\&_\.tiptap_li\]\:my-1 .tiptap li {
2786
+ margin-block: var(--spacing);
2787
+ }
2788
+ .\[\&_\.tiptap_ol\]\:my-2 .tiptap ol {
2789
+ margin-block: calc(var(--spacing) * 2);
2790
+ }
2791
+ .\[\&_\.tiptap_ol\]\:list-decimal .tiptap ol {
2792
+ list-style-type: decimal;
2793
+ }
2794
+ .\[\&_\.tiptap_ol\]\:pl-5 .tiptap ol {
2795
+ padding-left: calc(var(--spacing) * 5);
2796
+ }
2797
+ .\[\&_\.tiptap_p\.is-editor-empty\:first-child\:\:before\]\:pointer-events-none .tiptap p.is-editor-empty:first-child::before {
2798
+ pointer-events: none;
2799
+ }
2800
+ .\[\&_\.tiptap_p\.is-editor-empty\:first-child\:\:before\]\:float-left .tiptap p.is-editor-empty:first-child::before {
2801
+ float: left;
2802
+ }
2803
+ .\[\&_\.tiptap_p\.is-editor-empty\:first-child\:\:before\]\:h-0 .tiptap p.is-editor-empty:first-child::before {
2804
+ height: 0px;
2805
+ }
2806
+ .\[\&_\.tiptap_p\.is-editor-empty\:first-child\:\:before\]\:text-gray-400 .tiptap p.is-editor-empty:first-child::before {
2807
+ color: var(--color-gray-400);
2808
+ }
2809
+ .\[\&_\.tiptap_p\.is-editor-empty\:first-child\:\:before\]\:content-\[attr\(data-placeholder\)\] .tiptap p.is-editor-empty:first-child::before {
2810
+ --tw-content: attr(data-placeholder);
2811
+ content: var(--tw-content);
2812
+ }
2813
+ .\[\&_\.tiptap_pre\]\:my-2 .tiptap pre {
2814
+ margin-block: calc(var(--spacing) * 2);
2815
+ }
2816
+ .\[\&_\.tiptap_pre\]\:overflow-x-auto .tiptap pre {
2817
+ overflow-x: auto;
2818
+ }
2819
+ .\[\&_\.tiptap_pre\]\:rounded .tiptap pre {
2820
+ border-radius: .25rem;
2821
+ }
2822
+ .\[\&_\.tiptap_pre\]\:bg-gray-900 .tiptap pre {
2823
+ background-color: var(--color-gray-900);
2824
+ }
2825
+ .\[\&_\.tiptap_pre\]\:p-3 .tiptap pre {
2826
+ padding: calc(var(--spacing) * 3);
2827
+ }
2828
+ .\[\&_\.tiptap_pre\]\:font-mono .tiptap pre {
2829
+ font-family: var(--ui-font-mono, var(--font-geist-mono));
2830
+ }
2831
+ .\[\&_\.tiptap_pre\]\:text-sm .tiptap pre {
2832
+ font-size: var(--text-sm);
2833
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2834
+ }
2835
+ .\[\&_\.tiptap_pre\]\:text-gray-100 .tiptap pre {
2836
+ color: var(--color-gray-100);
2837
+ }
2838
+ .\[\&_\.tiptap_pre_code\]\:bg-transparent .tiptap pre code {
2839
+ background-color: transparent;
2840
+ }
2841
+ .\[\&_\.tiptap_pre_code\]\:p-0 .tiptap pre code {
2842
+ padding: 0px;
2843
+ }
2844
+ .\[\&_\.tiptap_pre_code\]\:text-inherit .tiptap pre code {
2845
+ color: inherit;
2846
+ }
2847
+ .\[\&_\.tiptap_ul\]\:my-2 .tiptap ul {
2848
+ margin-block: calc(var(--spacing) * 2);
2849
+ }
2850
+ .\[\&_\.tiptap_ul\]\:list-disc .tiptap ul {
2851
+ list-style-type: disc;
2852
+ }
2853
+ .\[\&_\.tiptap_ul\]\:pl-5 .tiptap ul {
2854
+ padding-left: calc(var(--spacing) * 5);
2855
+ }
2856
+ .\[\&_\.tiptap\>\*\:first-child\]\:mt-0 .tiptap > :first-child {
2857
+ margin-top: 0px;
2858
+ }
2647
2859
  .\[\&_svg\]\:pointer-events-none svg {
2648
2860
  pointer-events: none;
2649
2861
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbpark/ui-kit",
3
- "version": "7.0.0",
3
+ "version": "8.0.0",
4
4
  "description": "Modern React UI component library built with TypeScript, Tailwind CSS, and Radix UI. Featuring atoms, molecules, organisms and layout templates for building beautiful interfaces.",
5
5
  "keywords": [
6
6
  "react",
@@ -54,6 +54,11 @@
54
54
  "import": "./dist/Button.mjs",
55
55
  "default": "./dist/Button.mjs"
56
56
  },
57
+ "./CodeEditor": {
58
+ "types": "./dist/CodeEditor.d.mts",
59
+ "import": "./dist/CodeEditor.mjs",
60
+ "default": "./dist/CodeEditor.mjs"
61
+ },
57
62
  "./Tag": {
58
63
  "types": "./dist/Tag.d.mts",
59
64
  "import": "./dist/Tag.mjs",
@@ -113,6 +118,8 @@
113
118
  "postpublish": "node scripts/restore-package.mjs"
114
119
  },
115
120
  "devDependencies": {
121
+ "@codemirror/lang-javascript": "^6.2.5",
122
+ "@codemirror/merge": "^6.12.2",
116
123
  "@repo/eslint-config": "workspace:*",
117
124
  "@repo/typescript-config": "workspace:*",
118
125
  "@tailwindcss/postcss": "^4.3.3",
@@ -120,6 +127,9 @@
120
127
  "@types/node": "^26.2.0",
121
128
  "@types/react": "19.2.18",
122
129
  "@types/react-dom": "19.2.4",
130
+ "@uiw/codemirror-theme-vscode": "^4.25.11",
131
+ "@uiw/react-codemirror": "^4.25.11",
132
+ "codemirror": "^6.0.0",
123
133
  "eslint": "^9.39.5",
124
134
  "postcss": "^8.5.26",
125
135
  "rollup-plugin-postcss": "^4.0.2",
@@ -143,6 +153,11 @@
143
153
  "@radix-ui/react-slider": "^1.4.7",
144
154
  "@radix-ui/react-slot": "^1.3.3",
145
155
  "@radix-ui/react-switch": "^1.3.7",
156
+ "@tiptap/core": "^3.30.1",
157
+ "@tiptap/extension-placeholder": "^3.30.1",
158
+ "@tiptap/extension-text-style": "^3.30.1",
159
+ "@tiptap/react": "^3.30.1",
160
+ "@tiptap/starter-kit": "^3.30.1",
146
161
  "class-variance-authority": "^0.7.1",
147
162
  "clsx": "^2.1.1",
148
163
  "date-fns": "^4.4.0",
@@ -157,7 +172,29 @@
157
172
  "vaul": "^1.1.2"
158
173
  },
159
174
  "peerDependencies": {
175
+ "@codemirror/lang-javascript": "^6.2.5",
176
+ "@codemirror/merge": "^6.12.2",
177
+ "@uiw/codemirror-theme-vscode": "^4.25.11",
178
+ "@uiw/react-codemirror": "^4.25.11",
179
+ "codemirror": "^6.0.0",
160
180
  "react": "^19.0.0",
161
181
  "react-dom": "^19.0.0"
182
+ },
183
+ "peerDependenciesMeta": {
184
+ "@codemirror/lang-javascript": {
185
+ "optional": true
186
+ },
187
+ "@codemirror/merge": {
188
+ "optional": true
189
+ },
190
+ "@uiw/codemirror-theme-vscode": {
191
+ "optional": true
192
+ },
193
+ "@uiw/react-codemirror": {
194
+ "optional": true
195
+ },
196
+ "codemirror": {
197
+ "optional": true
198
+ }
162
199
  }
163
200
  }