@haroonwaves/blog-kit-react 0.0.7 → 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.
- package/dist/index.cjs +6 -6
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -6
- package/dist/style.css +2 -0
- package/package.json +11 -4
package/dist/index.cjs
CHANGED
|
@@ -214,12 +214,12 @@ function BlogPlaceholder({ count = 3, className = "" }) {
|
|
|
214
214
|
|
|
215
215
|
// src/hooks/useBlogs.ts
|
|
216
216
|
var import_react = require("react");
|
|
217
|
-
function useBlogs(
|
|
218
|
-
const [filteredBlogs, setFilteredBlogs] = (0, import_react.useState)(
|
|
217
|
+
function useBlogs(blogsMeta) {
|
|
218
|
+
const [filteredBlogs, setFilteredBlogs] = (0, import_react.useState)(blogsMeta);
|
|
219
219
|
const [searchTerm, setSearchTerm] = (0, import_react.useState)("");
|
|
220
220
|
const [selectedCategory, setSelectedCategory] = (0, import_react.useState)(null);
|
|
221
221
|
(0, import_react.useEffect)(() => {
|
|
222
|
-
let filtered =
|
|
222
|
+
let filtered = blogsMeta;
|
|
223
223
|
if (searchTerm) {
|
|
224
224
|
filtered = filtered.filter(
|
|
225
225
|
(blog) => blog.title.toLowerCase().includes(searchTerm.toLowerCase()) || blog.description.toLowerCase().includes(searchTerm.toLowerCase())
|
|
@@ -229,12 +229,12 @@ function useBlogs(blogs) {
|
|
|
229
229
|
filtered = filtered.filter((blog) => blog.category === selectedCategory);
|
|
230
230
|
}
|
|
231
231
|
setFilteredBlogs(filtered);
|
|
232
|
-
}, [
|
|
232
|
+
}, [blogsMeta, searchTerm, selectedCategory]);
|
|
233
233
|
const categories = Array.from(
|
|
234
|
-
new Set(
|
|
234
|
+
new Set(blogsMeta.map((blog) => blog.category).filter(Boolean))
|
|
235
235
|
);
|
|
236
236
|
return {
|
|
237
|
-
|
|
237
|
+
metadata: filteredBlogs,
|
|
238
238
|
searchTerm,
|
|
239
239
|
setSearchTerm,
|
|
240
240
|
selectedCategory,
|
package/dist/index.d.cts
CHANGED
|
@@ -54,8 +54,8 @@ interface BlogPlaceholderProps {
|
|
|
54
54
|
}
|
|
55
55
|
declare function BlogPlaceholder({ count, className }: BlogPlaceholderProps): react_jsx_runtime.JSX.Element;
|
|
56
56
|
|
|
57
|
-
declare function useBlogs(
|
|
58
|
-
|
|
57
|
+
declare function useBlogs(blogsMeta: BlogMeta[]): {
|
|
58
|
+
metadata: BlogMeta[];
|
|
59
59
|
searchTerm: string;
|
|
60
60
|
setSearchTerm: react.Dispatch<react.SetStateAction<string>>;
|
|
61
61
|
selectedCategory: string | null;
|
package/dist/index.d.ts
CHANGED
|
@@ -54,8 +54,8 @@ interface BlogPlaceholderProps {
|
|
|
54
54
|
}
|
|
55
55
|
declare function BlogPlaceholder({ count, className }: BlogPlaceholderProps): react_jsx_runtime.JSX.Element;
|
|
56
56
|
|
|
57
|
-
declare function useBlogs(
|
|
58
|
-
|
|
57
|
+
declare function useBlogs(blogsMeta: BlogMeta[]): {
|
|
58
|
+
metadata: BlogMeta[];
|
|
59
59
|
searchTerm: string;
|
|
60
60
|
setSearchTerm: react.Dispatch<react.SetStateAction<string>>;
|
|
61
61
|
selectedCategory: string | null;
|
package/dist/index.js
CHANGED
|
@@ -174,12 +174,12 @@ function BlogPlaceholder({ count = 3, className = "" }) {
|
|
|
174
174
|
|
|
175
175
|
// src/hooks/useBlogs.ts
|
|
176
176
|
import { useState, useEffect } from "react";
|
|
177
|
-
function useBlogs(
|
|
178
|
-
const [filteredBlogs, setFilteredBlogs] = useState(
|
|
177
|
+
function useBlogs(blogsMeta) {
|
|
178
|
+
const [filteredBlogs, setFilteredBlogs] = useState(blogsMeta);
|
|
179
179
|
const [searchTerm, setSearchTerm] = useState("");
|
|
180
180
|
const [selectedCategory, setSelectedCategory] = useState(null);
|
|
181
181
|
useEffect(() => {
|
|
182
|
-
let filtered =
|
|
182
|
+
let filtered = blogsMeta;
|
|
183
183
|
if (searchTerm) {
|
|
184
184
|
filtered = filtered.filter(
|
|
185
185
|
(blog) => blog.title.toLowerCase().includes(searchTerm.toLowerCase()) || blog.description.toLowerCase().includes(searchTerm.toLowerCase())
|
|
@@ -189,12 +189,12 @@ function useBlogs(blogs) {
|
|
|
189
189
|
filtered = filtered.filter((blog) => blog.category === selectedCategory);
|
|
190
190
|
}
|
|
191
191
|
setFilteredBlogs(filtered);
|
|
192
|
-
}, [
|
|
192
|
+
}, [blogsMeta, searchTerm, selectedCategory]);
|
|
193
193
|
const categories = Array.from(
|
|
194
|
-
new Set(
|
|
194
|
+
new Set(blogsMeta.map((blog) => blog.category).filter(Boolean))
|
|
195
195
|
);
|
|
196
196
|
return {
|
|
197
|
-
|
|
197
|
+
metadata: filteredBlogs,
|
|
198
198
|
searchTerm,
|
|
199
199
|
setSearchTerm,
|
|
200
200
|
selectedCategory,
|
package/dist/style.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-500:oklch(70.5% .213 47.604);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.my-4{margin-block:calc(var(--spacing)*4)}.my-8{margin-block:calc(var(--spacing)*8)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-6{margin-left:calc(var(--spacing)*6)}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-auto{height:auto}.w-3\/4{width:75%}.max-w-full{max-width:100%}.max-w-none{max-width:none}.min-w-full{min-width:100%}.animate-pulse{animation:var(--animate-pulse)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-blue-500{border-color:var(--color-blue-500)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-transparent{border-color:#0000}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-white{background-color:var(--color-white)}.p-6{padding:calc(var(--spacing)*6)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-12{padding-block:calc(var(--spacing)*12)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-blue-600{color:var(--color-blue-600)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-orange-500{color:var(--color-orange-500)}.text-red-600{color:var(--color-red-600)}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:underline:hover{text-decoration-line:underline}}.\[\&\>code\]\:block>code{display:block}.\[\&\>code\]\:p-4>code{padding:calc(var(--spacing)*4)}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haroonwaves/blog-kit-react",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
+
"style": "dist/styles.css",
|
|
7
8
|
"type": "module",
|
|
8
9
|
"files": [
|
|
9
10
|
"dist"
|
|
@@ -13,18 +14,24 @@
|
|
|
13
14
|
"react-dom": ">=18"
|
|
14
15
|
},
|
|
15
16
|
"dependencies": {
|
|
17
|
+
"prismjs": "^1.30.0",
|
|
16
18
|
"react-markdown": "^10.1.0",
|
|
17
|
-
"remark-gfm": "^4.0.1",
|
|
18
19
|
"rehype-prism-plus": "^2.0.1",
|
|
19
20
|
"rehype-raw": "^7.0.0",
|
|
20
|
-
"
|
|
21
|
+
"remark-gfm": "^4.0.1"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
24
|
+
"@tailwindcss/cli": "^4.1.17",
|
|
25
|
+
"@tailwindcss/postcss": "^4.1.17",
|
|
26
|
+
"autoprefixer": "^10.4.22",
|
|
27
|
+
"postcss": "^8.5.6",
|
|
28
|
+
"tailwindcss": "^4.1.17",
|
|
23
29
|
"tsup": "^7.2.0",
|
|
24
30
|
"typescript": "^5.5.0"
|
|
25
31
|
},
|
|
26
32
|
"scripts": {
|
|
27
|
-
"build": "
|
|
33
|
+
"build:css": "pnpm exec tailwindcss -i ./src/tailwind.css -o ./dist/style.css --minify",
|
|
34
|
+
"build": "pnpm build:css && tsup src/index.ts --format cjs,esm --dts --external react --external react-dom",
|
|
28
35
|
"type-check": "tsc --noEmit"
|
|
29
36
|
}
|
|
30
37
|
}
|