boltdocs 1.7.1 → 1.8.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.
@@ -48,7 +48,7 @@
48
48
  --ld-code-bg: #f3f4f6;
49
49
  --ld-code-header: #e5e7eb;
50
50
  --ld-code-text: #1f2937;
51
- --ld-navbar-bg: rgba(255, 255, 255, 0.82);
51
+ --ld-navbar-bg: #ffffff;
52
52
  --ld-navbar-blur: 12px;
53
53
  --ld-sidebar-bg: transparent;
54
54
  --ld-sidebar-blur: 0px;
@@ -1932,6 +1932,89 @@ a {
1932
1932
  opacity: 0.4;
1933
1933
  cursor: not-allowed;
1934
1934
  }
1935
+ .ld-field {
1936
+ margin: 1.5rem 0;
1937
+ padding: 1.25rem;
1938
+ border-radius: var(--ld-radius-lg);
1939
+ border: 1px solid var(--ld-border-subtle);
1940
+ background: var(--ld-bg-soft);
1941
+ position: relative;
1942
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1943
+ }
1944
+ .ld-field:hover {
1945
+ border-color: var(--ld-color-primary);
1946
+ box-shadow: 0 4px 20px -8px rgba(127, 19, 236, 0.15);
1947
+ }
1948
+ .ld-field__header {
1949
+ display: flex;
1950
+ flex-wrap: wrap;
1951
+ align-items: center;
1952
+ justify-content: space-between;
1953
+ gap: 1rem;
1954
+ margin-bottom: 0.85rem;
1955
+ padding-bottom: 0.85rem;
1956
+ border-bottom: 1px solid var(--ld-border-subtle);
1957
+ }
1958
+ .ld-field__signature {
1959
+ display: flex;
1960
+ align-items: center;
1961
+ gap: 0.75rem;
1962
+ }
1963
+ .ld-field__name {
1964
+ font-family: var(--ld-font-mono);
1965
+ font-size: 0.95rem;
1966
+ font-weight: 700;
1967
+ color: var(--ld-text-main);
1968
+ background: rgba(127, 19, 236, 0.08);
1969
+ padding: 0.2rem 0.6rem;
1970
+ border-radius: var(--ld-radius-sm);
1971
+ letter-spacing: -0.01em;
1972
+ }
1973
+ .ld-field__type-badge {
1974
+ font-family: var(--ld-font-mono);
1975
+ font-size: 0.75rem;
1976
+ font-weight: 500;
1977
+ color: var(--ld-color-primary);
1978
+ background: var(--ld-color-primary-muted);
1979
+ padding: 0.15rem 0.5rem;
1980
+ border-radius: var(--ld-radius-full);
1981
+ border: 1px solid rgba(127, 19, 236, 0.2);
1982
+ }
1983
+ .ld-field__required-badge {
1984
+ font-size: 0.7rem;
1985
+ font-weight: 700;
1986
+ text-transform: uppercase;
1987
+ color: var(--ld-ui-danger-text);
1988
+ background: var(--ld-ui-danger-bg);
1989
+ padding: 0.1rem 0.4rem;
1990
+ border-radius: var(--ld-radius-sm);
1991
+ letter-spacing: 0.05em;
1992
+ }
1993
+ .ld-field__default {
1994
+ display: flex;
1995
+ align-items: center;
1996
+ gap: 0.5rem;
1997
+ font-size: 0.8rem;
1998
+ }
1999
+ .ld-field__default-label {
2000
+ color: var(--ld-text-dim);
2001
+ font-weight: 500;
2002
+ }
2003
+ .ld-field__default-value {
2004
+ font-family: var(--ld-font-mono);
2005
+ color: var(--ld-text-main);
2006
+ background: var(--ld-bg-mute);
2007
+ padding: 0.15rem 0.4rem;
2008
+ border-radius: var(--ld-radius-sm);
2009
+ }
2010
+ .ld-field__content {
2011
+ font-size: 0.875rem;
2012
+ line-height: 1.6;
2013
+ color: var(--ld-text-muted);
2014
+ }
2015
+ .ld-field__content p {
2016
+ margin: 0;
2017
+ }
1935
2018
 
1936
2019
  /* src/client/theme/components/PackageManagerTabs/pkg-tabs.css */
1937
2020
  .pkg-tabs-wrapper {
@@ -2454,8 +2537,6 @@ a.not-found-link:hover {
2454
2537
  .boltdocs-link-preview-content {
2455
2538
  padding: 0.85rem 1rem;
2456
2539
  background-color: var(--ld-navbar-bg);
2457
- backdrop-filter: blur(20px);
2458
- -webkit-backdrop-filter: blur(20px);
2459
2540
  border: 1px solid var(--ld-border-subtle);
2460
2541
  border-radius: var(--ld-radius-lg);
2461
2542
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.2), 0 4px 10px -5px rgba(0, 0, 0, 0.1);
@@ -2479,14 +2560,3 @@ a.not-found-link:hover {
2479
2560
  -webkit-box-orient: vertical;
2480
2561
  overflow: hidden;
2481
2562
  }
2482
- [data-theme=dark] .boltdocs-link-preview-content {
2483
- background-color: rgba(15, 15, 20, 0.8);
2484
- border-color: rgba(255, 255, 255, 0.08);
2485
- box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.5), 0 8px 16px -8px rgba(0, 0, 0, 0.3);
2486
- }
2487
- [data-theme=dark] .boltdocs-link-preview-title {
2488
- color: #fff;
2489
- }
2490
- [data-theme=dark] .boltdocs-link-preview-summary {
2491
- color: #94a3b8;
2492
- }
@@ -18,8 +18,6 @@
18
18
  .boltdocs-link-preview-content {
19
19
  padding: 0.85rem 1rem;
20
20
  background-color: var(--ld-navbar-bg);
21
- backdrop-filter: blur(20px);
22
- -webkit-backdrop-filter: blur(20px);
23
21
  border: 1px solid var(--ld-border-subtle);
24
22
  border-radius: var(--ld-radius-lg);
25
23
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.2), 0 4px 10px -5px rgba(0, 0, 0, 0.1);
@@ -43,17 +41,6 @@
43
41
  -webkit-box-orient: vertical;
44
42
  overflow: hidden;
45
43
  }
46
- [data-theme=dark] .boltdocs-link-preview-content {
47
- background-color: rgba(15, 15, 20, 0.8);
48
- border-color: rgba(255, 255, 255, 0.08);
49
- box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.5), 0 8px 16px -8px rgba(0, 0, 0, 0.3);
50
- }
51
- [data-theme=dark] .boltdocs-link-preview-title {
52
- color: #fff;
53
- }
54
- [data-theme=dark] .boltdocs-link-preview-summary {
55
- color: #94a3b8;
56
- }
57
44
 
58
45
  /* src/client/theme/ui/ProgressBar/ProgressBar.css */
59
46
  .boltdocs-progress-container {
@@ -103,7 +90,7 @@
103
90
  --ld-code-bg: #f3f4f6;
104
91
  --ld-code-header: #e5e7eb;
105
92
  --ld-code-text: #1f2937;
106
- --ld-navbar-bg: rgba(255, 255, 255, 0.82);
93
+ --ld-navbar-bg: #ffffff;
107
94
  --ld-navbar-blur: 12px;
108
95
  --ld-sidebar-bg: transparent;
109
96
  --ld-sidebar-blur: 0px;
@@ -1987,6 +1974,89 @@ a {
1987
1974
  opacity: 0.4;
1988
1975
  cursor: not-allowed;
1989
1976
  }
1977
+ .ld-field {
1978
+ margin: 1.5rem 0;
1979
+ padding: 1.25rem;
1980
+ border-radius: var(--ld-radius-lg);
1981
+ border: 1px solid var(--ld-border-subtle);
1982
+ background: var(--ld-bg-soft);
1983
+ position: relative;
1984
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1985
+ }
1986
+ .ld-field:hover {
1987
+ border-color: var(--ld-color-primary);
1988
+ box-shadow: 0 4px 20px -8px rgba(127, 19, 236, 0.15);
1989
+ }
1990
+ .ld-field__header {
1991
+ display: flex;
1992
+ flex-wrap: wrap;
1993
+ align-items: center;
1994
+ justify-content: space-between;
1995
+ gap: 1rem;
1996
+ margin-bottom: 0.85rem;
1997
+ padding-bottom: 0.85rem;
1998
+ border-bottom: 1px solid var(--ld-border-subtle);
1999
+ }
2000
+ .ld-field__signature {
2001
+ display: flex;
2002
+ align-items: center;
2003
+ gap: 0.75rem;
2004
+ }
2005
+ .ld-field__name {
2006
+ font-family: var(--ld-font-mono);
2007
+ font-size: 0.95rem;
2008
+ font-weight: 700;
2009
+ color: var(--ld-text-main);
2010
+ background: rgba(127, 19, 236, 0.08);
2011
+ padding: 0.2rem 0.6rem;
2012
+ border-radius: var(--ld-radius-sm);
2013
+ letter-spacing: -0.01em;
2014
+ }
2015
+ .ld-field__type-badge {
2016
+ font-family: var(--ld-font-mono);
2017
+ font-size: 0.75rem;
2018
+ font-weight: 500;
2019
+ color: var(--ld-color-primary);
2020
+ background: var(--ld-color-primary-muted);
2021
+ padding: 0.15rem 0.5rem;
2022
+ border-radius: var(--ld-radius-full);
2023
+ border: 1px solid rgba(127, 19, 236, 0.2);
2024
+ }
2025
+ .ld-field__required-badge {
2026
+ font-size: 0.7rem;
2027
+ font-weight: 700;
2028
+ text-transform: uppercase;
2029
+ color: var(--ld-ui-danger-text);
2030
+ background: var(--ld-ui-danger-bg);
2031
+ padding: 0.1rem 0.4rem;
2032
+ border-radius: var(--ld-radius-sm);
2033
+ letter-spacing: 0.05em;
2034
+ }
2035
+ .ld-field__default {
2036
+ display: flex;
2037
+ align-items: center;
2038
+ gap: 0.5rem;
2039
+ font-size: 0.8rem;
2040
+ }
2041
+ .ld-field__default-label {
2042
+ color: var(--ld-text-dim);
2043
+ font-weight: 500;
2044
+ }
2045
+ .ld-field__default-value {
2046
+ font-family: var(--ld-font-mono);
2047
+ color: var(--ld-text-main);
2048
+ background: var(--ld-bg-mute);
2049
+ padding: 0.15rem 0.4rem;
2050
+ border-radius: var(--ld-radius-sm);
2051
+ }
2052
+ .ld-field__content {
2053
+ font-size: 0.875rem;
2054
+ line-height: 1.6;
2055
+ color: var(--ld-text-muted);
2056
+ }
2057
+ .ld-field__content p {
2058
+ margin: 0;
2059
+ }
1990
2060
 
1991
2061
  /* src/client/theme/components/PackageManagerTabs/pkg-tabs.css */
1992
2062
  .pkg-tabs-wrapper {
@@ -355,4 +355,25 @@ interface TableProps {
355
355
  }
356
356
  declare function Table({ headers, data, children, className, sortable, paginated, pageSize, }: TableProps): react_jsx_runtime.JSX.Element;
357
357
 
358
- export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Table, type TableProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };
358
+ interface FieldProps {
359
+ /** The name of the property or field */
360
+ name: string;
361
+ /** The data type of the field (e.g., "string", "number", "boolean") */
362
+ type?: string;
363
+ /** The default value if not provided */
364
+ defaultValue?: string;
365
+ /** Whether the field is required */
366
+ required?: boolean;
367
+ /** Description or additional content */
368
+ children: React.ReactNode;
369
+ /** Optional anchor ID for linking */
370
+ id?: string;
371
+ /** Optional extra class name */
372
+ className?: string;
373
+ }
374
+ /**
375
+ * A highly aesthetic and readable component for documenting API fields/properties.
376
+ */
377
+ declare function Field({ name, type, defaultValue, required, children, id, className, }: FieldProps): react_jsx_runtime.JSX.Element;
378
+
379
+ export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, Field, type FieldProps, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Table, type TableProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };
@@ -355,4 +355,25 @@ interface TableProps {
355
355
  }
356
356
  declare function Table({ headers, data, children, className, sortable, paginated, pageSize, }: TableProps): react_jsx_runtime.JSX.Element;
357
357
 
358
- export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Table, type TableProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };
358
+ interface FieldProps {
359
+ /** The name of the property or field */
360
+ name: string;
361
+ /** The data type of the field (e.g., "string", "number", "boolean") */
362
+ type?: string;
363
+ /** The default value if not provided */
364
+ defaultValue?: string;
365
+ /** Whether the field is required */
366
+ required?: boolean;
367
+ /** Description or additional content */
368
+ children: React.ReactNode;
369
+ /** Optional anchor ID for linking */
370
+ id?: string;
371
+ /** Optional extra class name */
372
+ className?: string;
373
+ }
374
+ /**
375
+ * A highly aesthetic and readable component for documenting API fields/properties.
376
+ */
377
+ declare function Field({ name, type, defaultValue, required, children, id, className, }: FieldProps): react_jsx_runtime.JSX.Element;
378
+
379
+ export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, Field, type FieldProps, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Table, type TableProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };
@@ -2827,6 +2827,7 @@ __export(client_exports, {
2827
2827
  Cards: () => Cards,
2828
2828
  CodeBlock: () => CodeBlock,
2829
2829
  Danger: () => Danger,
2830
+ Field: () => Field,
2830
2831
  FileTree: () => FileTree,
2831
2832
  Head: () => Head,
2832
2833
  InfoBox: () => InfoBox,
@@ -3431,6 +3432,33 @@ function Table({
3431
3432
  ] })
3432
3433
  ] });
3433
3434
  }
3435
+
3436
+ // src/client/theme/components/mdx/Field.tsx
3437
+ var import_jsx_runtime41 = require("react/jsx-runtime");
3438
+ function Field({
3439
+ name,
3440
+ type,
3441
+ defaultValue,
3442
+ required = false,
3443
+ children,
3444
+ id,
3445
+ className = ""
3446
+ }) {
3447
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: `ld-field ${className}`.trim(), id, children: [
3448
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "ld-field__header", children: [
3449
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "ld-field__signature", children: [
3450
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("code", { className: "ld-field__name", children: name }),
3451
+ type && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "ld-field__type-badge", children: type }),
3452
+ required && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "ld-field__required-badge", children: "required" })
3453
+ ] }),
3454
+ defaultValue && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "ld-field__default", children: [
3455
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "ld-field__default-label", children: "Default:" }),
3456
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("code", { className: "ld-field__default-value", children: defaultValue })
3457
+ ] })
3458
+ ] }),
3459
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "ld-field__content", children })
3460
+ ] });
3461
+ }
3434
3462
  // Annotate the CommonJS export names for ESM import in node:
3435
3463
  0 && (module.exports = {
3436
3464
  Admonition,
@@ -3442,6 +3470,7 @@ function Table({
3442
3470
  Cards,
3443
3471
  CodeBlock,
3444
3472
  Danger,
3473
+ Field,
3445
3474
  FileTree,
3446
3475
  Head,
3447
3476
  InfoBox,
@@ -598,6 +598,33 @@ function Table({
598
598
  ] })
599
599
  ] });
600
600
  }
601
+
602
+ // src/client/theme/components/mdx/Field.tsx
603
+ import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
604
+ function Field({
605
+ name,
606
+ type,
607
+ defaultValue,
608
+ required = false,
609
+ children,
610
+ id,
611
+ className = ""
612
+ }) {
613
+ return /* @__PURE__ */ jsxs8("div", { className: `ld-field ${className}`.trim(), id, children: [
614
+ /* @__PURE__ */ jsxs8("div", { className: "ld-field__header", children: [
615
+ /* @__PURE__ */ jsxs8("div", { className: "ld-field__signature", children: [
616
+ /* @__PURE__ */ jsx10("code", { className: "ld-field__name", children: name }),
617
+ type && /* @__PURE__ */ jsx10("span", { className: "ld-field__type-badge", children: type }),
618
+ required && /* @__PURE__ */ jsx10("span", { className: "ld-field__required-badge", children: "required" })
619
+ ] }),
620
+ defaultValue && /* @__PURE__ */ jsxs8("div", { className: "ld-field__default", children: [
621
+ /* @__PURE__ */ jsx10("span", { className: "ld-field__default-label", children: "Default:" }),
622
+ /* @__PURE__ */ jsx10("code", { className: "ld-field__default-value", children: defaultValue })
623
+ ] })
624
+ ] }),
625
+ /* @__PURE__ */ jsx10("div", { className: "ld-field__content", children })
626
+ ] });
627
+ }
601
628
  export {
602
629
  Admonition,
603
630
  BackgroundGradient,
@@ -608,6 +635,7 @@ export {
608
635
  Cards,
609
636
  CodeBlock,
610
637
  Danger,
638
+ Field,
611
639
  FileTree,
612
640
  Head,
613
641
  InfoBox,
@@ -18,8 +18,6 @@
18
18
  .boltdocs-link-preview-content {
19
19
  padding: 0.85rem 1rem;
20
20
  background-color: var(--ld-navbar-bg);
21
- backdrop-filter: blur(20px);
22
- -webkit-backdrop-filter: blur(20px);
23
21
  border: 1px solid var(--ld-border-subtle);
24
22
  border-radius: var(--ld-radius-lg);
25
23
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.2), 0 4px 10px -5px rgba(0, 0, 0, 0.1);
@@ -43,17 +41,6 @@
43
41
  -webkit-box-orient: vertical;
44
42
  overflow: hidden;
45
43
  }
46
- [data-theme=dark] .boltdocs-link-preview-content {
47
- background-color: rgba(15, 15, 20, 0.8);
48
- border-color: rgba(255, 255, 255, 0.08);
49
- box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.5), 0 8px 16px -8px rgba(0, 0, 0, 0.3);
50
- }
51
- [data-theme=dark] .boltdocs-link-preview-title {
52
- color: #fff;
53
- }
54
- [data-theme=dark] .boltdocs-link-preview-summary {
55
- color: #94a3b8;
56
- }
57
44
 
58
45
  /* src/client/theme/ui/ProgressBar/ProgressBar.css */
59
46
  .boltdocs-progress-container {
@@ -103,7 +90,7 @@
103
90
  --ld-code-bg: #f3f4f6;
104
91
  --ld-code-header: #e5e7eb;
105
92
  --ld-code-text: #1f2937;
106
- --ld-navbar-bg: rgba(255, 255, 255, 0.82);
93
+ --ld-navbar-bg: #ffffff;
107
94
  --ld-navbar-blur: 12px;
108
95
  --ld-sidebar-bg: transparent;
109
96
  --ld-sidebar-blur: 0px;
@@ -1987,6 +1974,89 @@ a {
1987
1974
  opacity: 0.4;
1988
1975
  cursor: not-allowed;
1989
1976
  }
1977
+ .ld-field {
1978
+ margin: 1.5rem 0;
1979
+ padding: 1.25rem;
1980
+ border-radius: var(--ld-radius-lg);
1981
+ border: 1px solid var(--ld-border-subtle);
1982
+ background: var(--ld-bg-soft);
1983
+ position: relative;
1984
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1985
+ }
1986
+ .ld-field:hover {
1987
+ border-color: var(--ld-color-primary);
1988
+ box-shadow: 0 4px 20px -8px rgba(127, 19, 236, 0.15);
1989
+ }
1990
+ .ld-field__header {
1991
+ display: flex;
1992
+ flex-wrap: wrap;
1993
+ align-items: center;
1994
+ justify-content: space-between;
1995
+ gap: 1rem;
1996
+ margin-bottom: 0.85rem;
1997
+ padding-bottom: 0.85rem;
1998
+ border-bottom: 1px solid var(--ld-border-subtle);
1999
+ }
2000
+ .ld-field__signature {
2001
+ display: flex;
2002
+ align-items: center;
2003
+ gap: 0.75rem;
2004
+ }
2005
+ .ld-field__name {
2006
+ font-family: var(--ld-font-mono);
2007
+ font-size: 0.95rem;
2008
+ font-weight: 700;
2009
+ color: var(--ld-text-main);
2010
+ background: rgba(127, 19, 236, 0.08);
2011
+ padding: 0.2rem 0.6rem;
2012
+ border-radius: var(--ld-radius-sm);
2013
+ letter-spacing: -0.01em;
2014
+ }
2015
+ .ld-field__type-badge {
2016
+ font-family: var(--ld-font-mono);
2017
+ font-size: 0.75rem;
2018
+ font-weight: 500;
2019
+ color: var(--ld-color-primary);
2020
+ background: var(--ld-color-primary-muted);
2021
+ padding: 0.15rem 0.5rem;
2022
+ border-radius: var(--ld-radius-full);
2023
+ border: 1px solid rgba(127, 19, 236, 0.2);
2024
+ }
2025
+ .ld-field__required-badge {
2026
+ font-size: 0.7rem;
2027
+ font-weight: 700;
2028
+ text-transform: uppercase;
2029
+ color: var(--ld-ui-danger-text);
2030
+ background: var(--ld-ui-danger-bg);
2031
+ padding: 0.1rem 0.4rem;
2032
+ border-radius: var(--ld-radius-sm);
2033
+ letter-spacing: 0.05em;
2034
+ }
2035
+ .ld-field__default {
2036
+ display: flex;
2037
+ align-items: center;
2038
+ gap: 0.5rem;
2039
+ font-size: 0.8rem;
2040
+ }
2041
+ .ld-field__default-label {
2042
+ color: var(--ld-text-dim);
2043
+ font-weight: 500;
2044
+ }
2045
+ .ld-field__default-value {
2046
+ font-family: var(--ld-font-mono);
2047
+ color: var(--ld-text-main);
2048
+ background: var(--ld-bg-mute);
2049
+ padding: 0.15rem 0.4rem;
2050
+ border-radius: var(--ld-radius-sm);
2051
+ }
2052
+ .ld-field__content {
2053
+ font-size: 0.875rem;
2054
+ line-height: 1.6;
2055
+ color: var(--ld-text-muted);
2056
+ }
2057
+ .ld-field__content p {
2058
+ margin: 0;
2059
+ }
1990
2060
 
1991
2061
  /* src/client/theme/components/PackageManagerTabs/pkg-tabs.css */
1992
2062
  .pkg-tabs-wrapper {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "boltdocs",
3
- "version": "1.7.1",
3
+ "version": "1.8.0",
4
4
  "description": "A lightweight documentation generator for React projects.",
5
5
  "main": "dist/node/index.js",
6
6
  "module": "dist/node/index.mjs",
@@ -30,6 +30,7 @@ export {
30
30
  List,
31
31
  FileTree,
32
32
  Table,
33
+ Field,
33
34
  } from "./theme/components/mdx";
34
35
  export type {
35
36
  ButtonProps,
@@ -42,4 +43,5 @@ export type {
42
43
  ListProps,
43
44
  FileTreeProps,
44
45
  TableProps,
46
+ FieldProps,
45
47
  } from "./theme/components/mdx";
@@ -0,0 +1,60 @@
1
+ import React from "react";
2
+
3
+ export interface FieldProps {
4
+ /** The name of the property or field */
5
+ name: string;
6
+ /** The data type of the field (e.g., "string", "number", "boolean") */
7
+ type?: string;
8
+ /** The default value if not provided */
9
+ defaultValue?: string;
10
+ /** Whether the field is required */
11
+ required?: boolean;
12
+ /** Description or additional content */
13
+ children: React.ReactNode;
14
+ /** Optional anchor ID for linking */
15
+ id?: string;
16
+ /** Optional extra class name */
17
+ className?: string;
18
+ }
19
+
20
+ /**
21
+ * A highly aesthetic and readable component for documenting API fields/properties.
22
+ */
23
+ export function Field({
24
+ name,
25
+ type,
26
+ defaultValue,
27
+ required = false,
28
+ children,
29
+ id,
30
+ className = "",
31
+ }: FieldProps) {
32
+ return (
33
+ <div className={`ld-field ${className}`.trim()} id={id}>
34
+ <div className="ld-field__header">
35
+ <div className="ld-field__signature">
36
+ <code className="ld-field__name">{name}</code>
37
+ {type && (
38
+ <span className="ld-field__type-badge">
39
+ {type}
40
+ </span>
41
+ )}
42
+ {required && (
43
+ <span className="ld-field__required-badge">required</span>
44
+ )}
45
+ </div>
46
+
47
+ {defaultValue && (
48
+ <div className="ld-field__default">
49
+ <span className="ld-field__default-label">Default:</span>
50
+ <code className="ld-field__default-value">{defaultValue}</code>
51
+ </div>
52
+ )}
53
+ </div>
54
+
55
+ <div className="ld-field__content">
56
+ {children}
57
+ </div>
58
+ </div>
59
+ );
60
+ }
@@ -22,3 +22,6 @@ export type { FileTreeProps } from "./FileTree";
22
22
 
23
23
  export { Table } from "./Table";
24
24
  export type { TableProps } from "./Table";
25
+
26
+ export { Field } from "./Field";
27
+ export type { FieldProps } from "./Field";
@@ -667,3 +667,98 @@
667
667
  opacity: 0.4;
668
668
  cursor: not-allowed;
669
669
  }
670
+ /* ─── Field ───────────────────────────────────────────────── */
671
+ .ld-field {
672
+ margin: 1.5rem 0;
673
+ padding: 1.25rem;
674
+ border-radius: var(--ld-radius-lg);
675
+ border: 1px solid var(--ld-border-subtle);
676
+ background: var(--ld-bg-soft);
677
+ position: relative;
678
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
679
+ }
680
+
681
+ .ld-field:hover {
682
+ border-color: var(--ld-color-primary);
683
+ box-shadow: 0 4px 20px -8px rgba(127, 19, 236, 0.15);
684
+ }
685
+
686
+ .ld-field__header {
687
+ display: flex;
688
+ flex-wrap: wrap;
689
+ align-items: center;
690
+ justify-content: space-between;
691
+ gap: 1rem;
692
+ margin-bottom: 0.85rem;
693
+ padding-bottom: 0.85rem;
694
+ border-bottom: 1px solid var(--ld-border-subtle);
695
+ }
696
+
697
+ .ld-field__signature {
698
+ display: flex;
699
+ align-items: center;
700
+ gap: 0.75rem;
701
+ }
702
+
703
+ .ld-field__name {
704
+ font-family: var(--ld-font-mono);
705
+ font-size: 0.95rem;
706
+ font-weight: 700;
707
+ color: var(--ld-text-main);
708
+ background: rgba(127, 19, 236, 0.08);
709
+ padding: 0.2rem 0.6rem;
710
+ border-radius: var(--ld-radius-sm);
711
+ letter-spacing: -0.01em;
712
+ }
713
+
714
+ .ld-field__type-badge {
715
+ font-family: var(--ld-font-mono);
716
+ font-size: 0.75rem;
717
+ font-weight: 500;
718
+ color: var(--ld-color-primary);
719
+ background: var(--ld-color-primary-muted);
720
+ padding: 0.15rem 0.5rem;
721
+ border-radius: var(--ld-radius-full);
722
+ border: 1px solid rgba(127, 19, 236, 0.2);
723
+ }
724
+
725
+ .ld-field__required-badge {
726
+ font-size: 0.7rem;
727
+ font-weight: 700;
728
+ text-transform: uppercase;
729
+ color: var(--ld-ui-danger-text);
730
+ background: var(--ld-ui-danger-bg);
731
+ padding: 0.1rem 0.4rem;
732
+ border-radius: var(--ld-radius-sm);
733
+ letter-spacing: 0.05em;
734
+ }
735
+
736
+ .ld-field__default {
737
+ display: flex;
738
+ align-items: center;
739
+ gap: 0.5rem;
740
+ font-size: 0.8rem;
741
+ }
742
+
743
+ .ld-field__default-label {
744
+ color: var(--ld-text-dim);
745
+ font-weight: 500;
746
+ }
747
+
748
+ .ld-field__default-value {
749
+ font-family: var(--ld-font-mono);
750
+ color: var(--ld-text-main);
751
+ background: var(--ld-bg-mute);
752
+ padding: 0.15rem 0.4rem;
753
+ border-radius: var(--ld-radius-sm);
754
+ }
755
+
756
+ .ld-field__content {
757
+ font-size: 0.875rem;
758
+ line-height: 1.6;
759
+ color: var(--ld-text-muted);
760
+ }
761
+
762
+ .ld-field__content p {
763
+ margin: 0;
764
+ }
@@ -41,7 +41,7 @@
41
41
  --ld-code-text: #1f2937;
42
42
 
43
43
  /* ─ Customization ─ */
44
- --ld-navbar-bg: rgba(255, 255, 255, 0.82);
44
+ --ld-navbar-bg: #ffffff;
45
45
  --ld-navbar-blur: 12px;
46
46
  --ld-sidebar-bg: transparent;
47
47
  --ld-sidebar-blur: 0px;
@@ -19,11 +19,9 @@
19
19
  .boltdocs-link-preview-content {
20
20
  padding: 0.85rem 1rem;
21
21
  background-color: var(--ld-navbar-bg);
22
- backdrop-filter: blur(20px);
23
- -webkit-backdrop-filter: blur(20px);
24
22
  border: 1px solid var(--ld-border-subtle);
25
23
  border-radius: var(--ld-radius-lg);
26
- box-shadow:
24
+ box-shadow:
27
25
  0 10px 30px -10px rgba(0, 0, 0, 0.2),
28
26
  0 4px 10px -5px rgba(0, 0, 0, 0.1);
29
27
  }
@@ -48,20 +46,3 @@
48
46
  -webkit-box-orient: vertical;
49
47
  overflow: hidden;
50
48
  }
51
-
52
- /* Dark mode refinements */
53
- [data-theme="dark"] .boltdocs-link-preview-content {
54
- background-color: rgba(15, 15, 20, 0.8);
55
- border-color: rgba(255, 255, 255, 0.08);
56
- box-shadow:
57
- 0 20px 40px -15px rgba(0, 0, 0, 0.5),
58
- 0 8px 16px -8px rgba(0, 0, 0, 0.3);
59
- }
60
-
61
- [data-theme="dark"] .boltdocs-link-preview-title {
62
- color: #fff;
63
- }
64
-
65
- [data-theme="dark"] .boltdocs-link-preview-summary {
66
- color: #94a3b8;
67
- }