robindoc 3.6.0 → 3.6.2

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 (134) hide show
  1. package/lib/client.d.ts +2 -0
  2. package/lib/client.d.ts.map +1 -0
  3. package/lib/client.js +2 -0
  4. package/lib/client.js.map +1 -0
  5. package/lib/components/blocks/anchor-heading/index.js +1 -1
  6. package/lib/components/blocks/anchor-heading/index.js.map +1 -1
  7. package/lib/components/blocks/contents/index.js +1 -1
  8. package/lib/components/blocks/contents/index.js.map +1 -1
  9. package/lib/components/blocks/header-menu/index.js +1 -1
  10. package/lib/components/blocks/header-menu/index.js.map +1 -1
  11. package/lib/components/blocks/nav-content-link/index.js +1 -1
  12. package/lib/components/blocks/nav-content-link/index.js.map +1 -1
  13. package/lib/components/blocks/nav-link/index.d.ts +5 -5
  14. package/lib/components/blocks/nav-link/index.d.ts.map +1 -1
  15. package/lib/components/blocks/nav-link/index.js +1 -1
  16. package/lib/components/blocks/nav-link/index.js.map +1 -1
  17. package/lib/components/blocks/no-js/index.d.ts.map +1 -1
  18. package/lib/components/blocks/no-js/index.js +1 -1
  19. package/lib/components/blocks/no-js/index.js.map +1 -1
  20. package/lib/components/blocks/search/index.d.ts +7 -3
  21. package/lib/components/blocks/search/index.d.ts.map +1 -1
  22. package/lib/components/blocks/search/index.js +1 -1
  23. package/lib/components/blocks/search/index.js.map +1 -1
  24. package/lib/components/blocks/theme-switcher/index.d.ts +3 -3
  25. package/lib/components/blocks/theme-switcher/index.d.ts.map +1 -1
  26. package/lib/components/blocks/theme-switcher/index.js +1 -1
  27. package/lib/components/blocks/theme-switcher/index.js.map +1 -1
  28. package/lib/components/elements/article/index.js +1 -1
  29. package/lib/components/elements/article/index.js.map +1 -1
  30. package/lib/components/elements/robin-provider/index.js +1 -1
  31. package/lib/components/elements/robin-provider/index.js.map +1 -1
  32. package/lib/components/elements/sidebar/sidebar-drop/index.js +1 -1
  33. package/lib/components/elements/sidebar/sidebar-drop/index.js.map +1 -1
  34. package/lib/components/elements/sidebar/sidebar-link/index.js +1 -1
  35. package/lib/components/elements/sidebar/sidebar-link/index.js.map +1 -1
  36. package/lib/components/elements/sidebar/sidebar-menu/index.js +1 -1
  37. package/lib/components/elements/sidebar/sidebar-menu/index.js.map +1 -1
  38. package/lib/components/stores/contents/context.d.ts.map +1 -0
  39. package/lib/components/stores/contents/context.js.map +1 -0
  40. package/lib/components/stores/contents/provider.d.ts.map +1 -0
  41. package/lib/components/stores/contents/provider.js.map +1 -0
  42. package/lib/components/stores/contents/use-heading-index.d.ts.map +1 -0
  43. package/lib/components/stores/contents/use-heading-index.js.map +1 -0
  44. package/lib/components/stores/contents/use-heading-register.d.ts.map +1 -0
  45. package/lib/components/stores/contents/use-heading-register.js.map +1 -0
  46. package/lib/components/stores/navigate/context.d.ts.map +1 -0
  47. package/lib/components/stores/navigate/context.js.map +1 -0
  48. package/lib/components/stores/navigate/provider.d.ts.map +1 -0
  49. package/lib/components/stores/navigate/provider.js.map +1 -0
  50. package/lib/components/stores/navigate/types.d.ts.map +1 -0
  51. package/lib/components/stores/navigate/use-navigate.d.ts.map +1 -0
  52. package/lib/components/stores/navigate/use-navigate.js.map +1 -0
  53. package/lib/components/stores/navigation/contexts.d.ts +8 -0
  54. package/lib/components/stores/navigation/contexts.d.ts.map +1 -0
  55. package/lib/components/stores/navigation/contexts.js +3 -0
  56. package/lib/components/stores/navigation/contexts.js.map +1 -0
  57. package/lib/components/stores/navigation/hooks.d.ts +5 -0
  58. package/lib/components/stores/navigation/hooks.d.ts.map +1 -0
  59. package/lib/components/stores/navigation/hooks.js +3 -0
  60. package/lib/components/stores/navigation/hooks.js.map +1 -0
  61. package/lib/components/stores/navigation/stores.d.ts +9 -0
  62. package/lib/components/stores/navigation/stores.d.ts.map +1 -0
  63. package/lib/components/stores/navigation/stores.js +3 -0
  64. package/lib/components/stores/navigation/stores.js.map +1 -0
  65. package/lib/components/stores/reference/context.d.ts.map +1 -0
  66. package/lib/components/stores/reference/context.js.map +1 -0
  67. package/lib/components/stores/reference/provider.d.ts.map +1 -0
  68. package/lib/components/stores/reference/provider.js.map +1 -0
  69. package/lib/components/stores/reference/use-reference.d.ts.map +1 -0
  70. package/lib/components/stores/reference/use-reference.js.map +1 -0
  71. package/lib/components/ui/content-link/index.d.ts +2 -2
  72. package/lib/components/ui/content-link/index.d.ts.map +1 -1
  73. package/lib/components/ui/content-link/index.js +2 -1
  74. package/lib/components/ui/content-link/index.js.map +1 -1
  75. package/lib/styles.css +387 -366
  76. package/package.json +1 -3
  77. package/lib/components/blocks/search/search-modal/index.d.ts +0 -16
  78. package/lib/components/blocks/search/search-modal/index.d.ts.map +0 -1
  79. package/lib/components/blocks/search/search-modal/index.js +0 -3
  80. package/lib/components/blocks/search/search-modal/index.js.map +0 -1
  81. package/lib/components/blocks/theme-styles/index.d.ts +0 -7
  82. package/lib/components/blocks/theme-styles/index.d.ts.map +0 -1
  83. package/lib/components/contexts/contents/context.d.ts.map +0 -1
  84. package/lib/components/contexts/contents/context.js.map +0 -1
  85. package/lib/components/contexts/contents/provider.d.ts.map +0 -1
  86. package/lib/components/contexts/contents/provider.js.map +0 -1
  87. package/lib/components/contexts/contents/use-heading-index.d.ts.map +0 -1
  88. package/lib/components/contexts/contents/use-heading-index.js.map +0 -1
  89. package/lib/components/contexts/contents/use-heading-register.d.ts.map +0 -1
  90. package/lib/components/contexts/contents/use-heading-register.js.map +0 -1
  91. package/lib/components/contexts/navigate/context.d.ts.map +0 -1
  92. package/lib/components/contexts/navigate/context.js.map +0 -1
  93. package/lib/components/contexts/navigate/provider.d.ts.map +0 -1
  94. package/lib/components/contexts/navigate/provider.js.map +0 -1
  95. package/lib/components/contexts/navigate/types.d.ts.map +0 -1
  96. package/lib/components/contexts/navigate/use-navigate.d.ts.map +0 -1
  97. package/lib/components/contexts/navigate/use-navigate.js.map +0 -1
  98. package/lib/components/contexts/reference/context.d.ts.map +0 -1
  99. package/lib/components/contexts/reference/context.js.map +0 -1
  100. package/lib/components/contexts/reference/provider.d.ts.map +0 -1
  101. package/lib/components/contexts/reference/provider.js.map +0 -1
  102. package/lib/components/contexts/reference/use-reference.d.ts.map +0 -1
  103. package/lib/components/contexts/reference/use-reference.js.map +0 -1
  104. package/lib/components/ui/modal/index.d.ts +0 -8
  105. package/lib/components/ui/modal/index.d.ts.map +0 -1
  106. package/lib/components/ui/modal/index.js +0 -2
  107. package/lib/components/ui/modal/index.js.map +0 -1
  108. package/lib/components/ui/modal/use-modal.d.ts +0 -6
  109. package/lib/components/ui/modal/use-modal.d.ts.map +0 -1
  110. package/lib/components/ui/modal/use-modal.js +0 -2
  111. package/lib/components/ui/modal/use-modal.js.map +0 -1
  112. package/lib/core/types/theme.d.ts +0 -49
  113. package/lib/core/types/theme.d.ts.map +0 -1
  114. /package/lib/components/{contexts → stores}/contents/context.d.ts +0 -0
  115. /package/lib/components/{contexts → stores}/contents/context.js +0 -0
  116. /package/lib/components/{contexts → stores}/contents/provider.d.ts +0 -0
  117. /package/lib/components/{contexts → stores}/contents/provider.js +0 -0
  118. /package/lib/components/{contexts → stores}/contents/use-heading-index.d.ts +0 -0
  119. /package/lib/components/{contexts → stores}/contents/use-heading-index.js +0 -0
  120. /package/lib/components/{contexts → stores}/contents/use-heading-register.d.ts +0 -0
  121. /package/lib/components/{contexts → stores}/contents/use-heading-register.js +0 -0
  122. /package/lib/components/{contexts → stores}/navigate/context.d.ts +0 -0
  123. /package/lib/components/{contexts → stores}/navigate/context.js +0 -0
  124. /package/lib/components/{contexts → stores}/navigate/provider.d.ts +0 -0
  125. /package/lib/components/{contexts → stores}/navigate/provider.js +0 -0
  126. /package/lib/components/{contexts → stores}/navigate/types.d.ts +0 -0
  127. /package/lib/components/{contexts → stores}/navigate/use-navigate.d.ts +0 -0
  128. /package/lib/components/{contexts → stores}/navigate/use-navigate.js +0 -0
  129. /package/lib/components/{contexts → stores}/reference/context.d.ts +0 -0
  130. /package/lib/components/{contexts → stores}/reference/context.js +0 -0
  131. /package/lib/components/{contexts → stores}/reference/provider.d.ts +0 -0
  132. /package/lib/components/{contexts → stores}/reference/provider.js +0 -0
  133. /package/lib/components/{contexts → stores}/reference/use-reference.d.ts +0 -0
  134. /package/lib/components/{contexts → stores}/reference/use-reference.js +0 -0
@@ -0,0 +1,2 @@
1
+ export { NavigationContext } from "./components/stores/navigation/contexts";
2
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC"}
package/lib/client.js ADDED
@@ -0,0 +1,2 @@
1
+ export{NavigationContext}from"./components/stores/navigation/contexts.js";
2
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e from"react";import{useHeadingRegister as n}from"../../contexts/contents/use-heading-register.js";import{Heading as r}from"../../ui/heading/index.js";const t=({component:t,id:o,children:a})=>{const c=n();return e.createElement(r,{component:t,id:o,className:"r-anchor-heading",ref:c},a," ",e.createElement("a",{href:`#${o}`,className:"r-anchor-heading-link"}))};export{t as AnchorHeading};
2
+ import e from"react";import{useHeadingRegister as r}from"../../stores/contents/use-heading-register.js";import{Heading as n}from"../../ui/heading/index.js";const t=({component:t,id:o,children:a})=>{const i=r();return e.createElement(n,{component:t,id:o,className:"r-anchor-heading",ref:i},a," ",e.createElement("a",{href:`#${o}`,className:"r-anchor-heading-link"}))};export{t as AnchorHeading};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/anchor-heading/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { useHeadingRegister } from \"@src/components/contexts/contents/use-heading-register\";\nimport { Heading } from \"@src/components/ui/heading\";\n\nimport \"./anchor-heading.scss\";\n\ninterface AnchorHeadingProps extends React.PropsWithChildren {\n id: string;\n component: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\nexport const AnchorHeading: React.FC<AnchorHeadingProps> = ({ component: Component, id, children }) => {\n const register = useHeadingRegister();\n\n return (\n <Heading component={Component} id={id} className=\"r-anchor-heading\" ref={register}>\n {children}&nbsp;\n <a href={`#${id}`} className=\"r-anchor-heading-link\" />\n </Heading>\n );\n};\n"],"names":["AnchorHeading","component","Component","id","children","register","useHeadingRegister","React","createElement","Heading","className","ref","href"],"mappings":";8JAaO,MAAMA,CAAAA,CAA8C,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAWC,KAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAWC,CAAAA,CAAAA,CAAAA,CAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,EAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAAA,EAAQR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,EAAWC,CAAAA,CAAAA,CAAIA,CAAAA,CAAIO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmBC,IAAKN,CAAAA,CAAAA,CACpED,CAAAA,KACDG,CAAAA,CAAAC,cAAA,CAAA,CAAA,CAAA,CAAA,CAAGI,KAAM,CAAA,CAAA,CAAA,CAAIT,CAAAA,CAAAA,CAAAA,CAAMO,UAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/anchor-heading/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { useHeadingRegister } from \"@src/components/stores/contents/use-heading-register\";\nimport { Heading } from \"@src/components/ui/heading\";\n\nimport \"./anchor-heading.scss\";\n\ninterface AnchorHeadingProps extends React.PropsWithChildren {\n id: string;\n component: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\nexport const AnchorHeading: React.FC<AnchorHeadingProps> = ({ component: Component, id, children }) => {\n const register = useHeadingRegister();\n\n return (\n <Heading component={Component} id={id} className=\"r-anchor-heading\" ref={register}>\n {children}&nbsp;\n <a href={`#${id}`} className=\"r-anchor-heading-link\" />\n </Heading>\n );\n};\n"],"names":["AnchorHeading","component","Component","id","children","register","useHeadingRegister","React","createElement","Heading","className","ref","href"],"mappings":";4JAaO,MAAMA,CAAAA,CAA8C,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAWC,KAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAWC,CAAAA,CAAAA,CAAAA,CAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,EAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAAA,EAAQR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,EAAWC,CAAAA,CAAAA,CAAIA,CAAAA,CAAIO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmBC,IAAKN,CAAAA,CAAAA,CACpED,CAAAA,KACDG,CAAAA,CAAAC,cAAA,CAAA,CAAA,CAAA,CAAA,CAAGI,KAAM,CAAA,CAAA,CAAA,CAAIT,CAAAA,CAAAA,CAAAA,CAAMO,UAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e,{useRef as t,useCallback as n,useEffect as r}from"react";import s from"clsx";import{useHeadingIndex as c}from"../../contexts/contents/use-heading-index.js";import{detectGitType as o}from"../../../core/utils/git-tools.js";const a=({headings:a,hideContents:l,editUri:i,translations:m})=>{const d=t(null),h=t(null),p=t(null),{from:f,to:u}=c(),{onThisPage:g="On this page",editOnService:v="Edit on {service}"}=m||{},E=n(()=>{p.current&&h.current&&h.current.style.setProperty("--drop-height",p.current.offsetHeight+"px")},[]);return r(E,[]),e.createElement("div",{className:"r-contents"},e.createElement("div",{className:"r-contents-sticky",ref:d},a.length>0&&!l&&e.createElement(e.Fragment,null,e.createElement("input",{type:"checkbox",className:"r-contents-control",id:"r-contents",onClick:E}),e.createElement("div",{className:"r-contents-details"},e.createElement("label",{className:"r-contents-title",htmlFor:"r-contents"},g,e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"r-contents-chevron"},e.createElement("path",{d:"m6 9 6 6 6-6"}))),e.createElement("div",{className:"r-contents-list",ref:h},e.createElement("div",{className:"r-contents-list-content",ref:p},a.map((t,n)=>e.createElement("a",{href:`#${t.id}`,key:t.id,className:s("r-contents-link",t.nested&&"_nested",n<=f&&"_passed",n<=u&&"_visited",n>=f&&n<=u&&"_active"),ref:e=>{e?.offsetTop&&d.current&&d.current.scrollHeight>d.current.clientHeight&&f===n&&d.current.scrollTo({top:Math.max(e.offsetTop-Math.ceil(window.innerHeight/2),0)})}},t.title)))))),i?.match(/^https?:\/\//)&&e.createElement("div",{className:"r-contents-actions"},e.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"r-contents-git"},v.replace("{service}",o(i).name)))))};export{a as Contents};
2
+ import e,{useRef as t,useCallback as n,useEffect as r}from"react";import s from"clsx";import{useHeadingIndex as c}from"../../stores/contents/use-heading-index.js";import{detectGitType as o}from"../../../core/utils/git-tools.js";const a=({headings:a,hideContents:l,editUri:i,translations:m})=>{const d=t(null),h=t(null),p=t(null),{from:f,to:u}=c(),{onThisPage:g="On this page",editOnService:v="Edit on {service}"}=m||{},E=n(()=>{p.current&&h.current&&h.current.style.setProperty("--drop-height",p.current.offsetHeight+"px")},[]);return r(E,[]),e.createElement("div",{className:"r-contents"},e.createElement("div",{className:"r-contents-sticky",ref:d},a.length>0&&!l&&e.createElement(e.Fragment,null,e.createElement("input",{type:"checkbox",className:"r-contents-control",id:"r-contents",onClick:E}),e.createElement("div",{className:"r-contents-details"},e.createElement("label",{className:"r-contents-title",htmlFor:"r-contents"},g,e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"r-contents-chevron"},e.createElement("path",{d:"m6 9 6 6 6-6"}))),e.createElement("div",{className:"r-contents-list",ref:h},e.createElement("div",{className:"r-contents-list-content",ref:p},a.map((t,n)=>e.createElement("a",{href:`#${t.id}`,key:t.id,className:s("r-contents-link",t.nested&&"_nested",n<=f&&"_passed",n<=u&&"_visited",n>=f&&n<=u&&"_active"),ref:e=>{e?.offsetTop&&d.current&&d.current.scrollHeight>d.current.clientHeight&&f===n&&d.current.scrollTo({top:Math.max(e.offsetTop-Math.ceil(window.innerHeight/2),0)})}},t.title)))))),i?.match(/^https?:\/\//)&&e.createElement("div",{className:"r-contents-actions"},e.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"r-contents-git"},v.replace("{service}",o(i).name)))))};export{a as Contents};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/contents/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useCallback, useEffect, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { useHeadingIndex } from \"@src/components/contexts/contents/use-heading-index\";\nimport { detectGitType } from \"@src/core/utils/git-tools\";\n\nimport \"./contents.scss\";\n\nexport interface ContentsProps extends React.PropsWithChildren {\n headings: { id: string; nested: boolean; title: string | React.ReactNode }[];\n hideContents?: boolean;\n editUri?: string | null;\n translations?: {\n /** On this page */\n onThisPage?: string;\n /** Edit on {service} */\n editOnService?: string;\n };\n}\n\nexport const Contents: React.FC<ContentsProps> = ({ headings, hideContents, editUri, translations }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const dropdownContentRef = useRef<HTMLDivElement>(null);\n const { from, to } = useHeadingIndex();\n const { onThisPage = \"On this page\", editOnService = \"Edit on {service}\" } = translations || {};\n\n const recalculateOffset = useCallback(() => {\n if (dropdownContentRef.current && dropdownRef.current) {\n dropdownRef.current.style.setProperty(\"--drop-height\", dropdownContentRef.current.offsetHeight + \"px\");\n }\n }, []);\n\n useEffect(recalculateOffset, []);\n\n return (\n <div className=\"r-contents\">\n <div className=\"r-contents-sticky\" ref={containerRef}>\n {headings.length > 0 && !hideContents && (\n <>\n <input\n type=\"checkbox\"\n className=\"r-contents-control\"\n id=\"r-contents\"\n onClick={recalculateOffset}\n />\n <div className=\"r-contents-details\">\n <label className=\"r-contents-title\" htmlFor=\"r-contents\">\n {onThisPage}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"r-contents-chevron\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </label>\n <div className=\"r-contents-list\" ref={dropdownRef}>\n <div className=\"r-contents-list-content\" ref={dropdownContentRef}>\n {headings.map((heading, index) => (\n <a\n href={`#${heading.id}`}\n key={heading.id}\n className={clsx(\n \"r-contents-link\",\n heading.nested && \"_nested\",\n index <= from && \"_passed\",\n index <= to && \"_visited\",\n index >= from && index <= to && \"_active\",\n )}\n ref={(node) => {\n if (\n node?.offsetTop &&\n containerRef.current &&\n containerRef.current.scrollHeight >\n containerRef.current.clientHeight &&\n from === index\n ) {\n containerRef.current.scrollTo({\n top: Math.max(\n node.offsetTop - Math.ceil(window.innerHeight / 2),\n 0,\n ),\n });\n }\n }}\n >\n {heading.title}\n </a>\n ))}\n </div>\n </div>\n </div>\n </>\n )}\n {editUri?.match(/^https?:\\/\\//) && (\n <div className=\"r-contents-actions\">\n <a href={editUri} target=\"_blank\" rel=\"noopener noreferrer\" className=\"r-contents-git\">\n {editOnService.replace(\"{service}\", detectGitType(editUri).name)}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["Contents","headings","hideContents","editUri","translations","containerRef","useRef","dropdownRef","dropdownContentRef","from","to","useHeadingIndex","onThisPage","editOnService","recalculateOffset","useCallback","current","style","setProperty","offsetHeight","useEffect","React","createElement","className","ref","length","Fragment","type","id","onClick","htmlFor","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","map","heading","index","href","key","clsx","nested","node","offsetTop","scrollHeight","clientHeight","scrollTo","top","Math","max","ceil","window","innerHeight","title","match","target","rel","replace","detectGitType","name"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/contents/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useCallback, useEffect, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { useHeadingIndex } from \"@src/components/stores/contents/use-heading-index\";\nimport { detectGitType } from \"@src/core/utils/git-tools\";\n\nimport \"./contents.scss\";\n\nexport interface ContentsProps extends React.PropsWithChildren {\n headings: { id: string; nested: boolean; title: string | React.ReactNode }[];\n hideContents?: boolean;\n editUri?: string | null;\n translations?: {\n /** On this page */\n onThisPage?: string;\n /** Edit on {service} */\n editOnService?: string;\n };\n}\n\nexport const Contents: React.FC<ContentsProps> = ({ headings, hideContents, editUri, translations }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const dropdownContentRef = useRef<HTMLDivElement>(null);\n const { from, to } = useHeadingIndex();\n const { onThisPage = \"On this page\", editOnService = \"Edit on {service}\" } = translations || {};\n\n const recalculateOffset = useCallback(() => {\n if (dropdownContentRef.current && dropdownRef.current) {\n dropdownRef.current.style.setProperty(\"--drop-height\", dropdownContentRef.current.offsetHeight + \"px\");\n }\n }, []);\n\n useEffect(recalculateOffset, []);\n\n return (\n <div className=\"r-contents\">\n <div className=\"r-contents-sticky\" ref={containerRef}>\n {headings.length > 0 && !hideContents && (\n <>\n <input\n type=\"checkbox\"\n className=\"r-contents-control\"\n id=\"r-contents\"\n onClick={recalculateOffset}\n />\n <div className=\"r-contents-details\">\n <label className=\"r-contents-title\" htmlFor=\"r-contents\">\n {onThisPage}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"r-contents-chevron\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </label>\n <div className=\"r-contents-list\" ref={dropdownRef}>\n <div className=\"r-contents-list-content\" ref={dropdownContentRef}>\n {headings.map((heading, index) => (\n <a\n href={`#${heading.id}`}\n key={heading.id}\n className={clsx(\n \"r-contents-link\",\n heading.nested && \"_nested\",\n index <= from && \"_passed\",\n index <= to && \"_visited\",\n index >= from && index <= to && \"_active\",\n )}\n ref={(node) => {\n if (\n node?.offsetTop &&\n containerRef.current &&\n containerRef.current.scrollHeight >\n containerRef.current.clientHeight &&\n from === index\n ) {\n containerRef.current.scrollTo({\n top: Math.max(\n node.offsetTop - Math.ceil(window.innerHeight / 2),\n 0,\n ),\n });\n }\n }}\n >\n {heading.title}\n </a>\n ))}\n </div>\n </div>\n </div>\n </>\n )}\n {editUri?.match(/^https?:\\/\\//) && (\n <div className=\"r-contents-actions\">\n <a href={editUri} target=\"_blank\" rel=\"noopener noreferrer\" className=\"r-contents-git\">\n {editOnService.replace(\"{service}\", detectGitType(editUri).name)}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["Contents","headings","hideContents","editUri","translations","containerRef","useRef","dropdownRef","dropdownContentRef","from","to","useHeadingIndex","onThisPage","editOnService","recalculateOffset","useCallback","current","style","setProperty","offsetHeight","useEffect","React","createElement","className","ref","length","Fragment","type","id","onClick","htmlFor","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","map","heading","index","href","key","clsx","nested","node","offsetTop","scrollHeight","clientHeight","scrollTo","top","Math","max","ceil","window","innerHeight","title","match","target","rel","replace","detectGitType","name"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e,{useState as r,useEffect as t}from"react";import{useNavigate as a}from"../../contexts/navigate/use-navigate.js";const n=({children:n,translations:o})=>{const{menu:s="Menu"}=o||{},{addListener:c,removeListener:l}=a(),[m,d]=r(!1),i=()=>{const e=document.querySelector(".r-root");e&&e.classList.remove("r-root-tablet-lock"),d(!1),l("closeHeaderMenu")};return t(()=>()=>{i()},[]),e.createElement("div",{className:"r-header-menu"},e.createElement("input",{onChange:()=>{m?i():(()=>{const e=document.querySelector(".r-root");e&&e.classList.add("r-root-tablet-lock"),d(!0),c("closeHeaderMenu",i)})()},checked:m,id:"header-burger",type:"checkbox",className:"r-header-input",hidden:!0}),e.createElement("label",{className:"r-header-burger",htmlFor:"header-burger","aria-label":s,role:"button",tabIndex:0},e.createElement("span",{className:"r-burger-line _top"}),e.createElement("span",{className:"r-burger-line _bottom"})),e.createElement("div",{className:"r-header-responsive"},n))};export{n as HeaderMenu};
2
+ import e,{useState as r,useEffect as t}from"react";import{useNavigate as a}from"../../stores/navigate/use-navigate.js";const o=({children:o,translations:n})=>{const{menu:s="Menu"}=n||{},{addListener:c,removeListener:l}=a(),[m,d]=r(!1),i=()=>{const e=document.querySelector(".r-root");e&&e.classList.remove("r-root-tablet-lock"),d(!1),l("closeHeaderMenu")};return t(()=>()=>{i()},[]),e.createElement("div",{className:"r-header-menu"},e.createElement("input",{onChange:()=>{m?i():(()=>{const e=document.querySelector(".r-root");e&&e.classList.add("r-root-tablet-lock"),d(!0),c("closeHeaderMenu",i)})()},checked:m,id:"header-burger",type:"checkbox",className:"r-header-input",hidden:!0}),e.createElement("label",{className:"r-header-burger",htmlFor:"header-burger","aria-label":s,role:"button",tabIndex:0},e.createElement("span",{className:"r-burger-line _top"}),e.createElement("span",{className:"r-burger-line _bottom"})),e.createElement("div",{className:"r-header-responsive"},o))};export{o as HeaderMenu};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/header-menu/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { useNavigate } from \"@src/components/contexts/navigate/use-navigate\";\n\nimport \"./header-menu.scss\";\n\nexport type HeaderMenuProps = React.PropsWithChildren<{\n translations?: {\n /** Menu */\n menu?: string;\n };\n}>;\n\nexport const HeaderMenu: React.FC<HeaderMenuProps> = ({ children, translations }) => {\n const { menu = \"Menu\" } = translations || {};\n const { addListener, removeListener } = useNavigate();\n const [opened, setOpened] = useState(false);\n\n const openHandler = () => {\n const root = document.querySelector(\".r-root\");\n if (root) {\n root.classList.add(\"r-root-tablet-lock\");\n }\n setOpened(true);\n addListener(\"closeHeaderMenu\", closeHandler);\n };\n\n const closeHandler = () => {\n const root = document.querySelector(\".r-root\");\n if (root) {\n root.classList.remove(\"r-root-tablet-lock\");\n }\n setOpened(false);\n removeListener(\"closeHeaderMenu\");\n };\n\n const toggleHandler = () => {\n if (opened) {\n closeHandler();\n } else {\n openHandler();\n }\n };\n\n useEffect(\n () => () => {\n closeHandler();\n },\n [],\n );\n\n return (\n <div className=\"r-header-menu\">\n <input\n onChange={toggleHandler}\n checked={opened}\n id=\"header-burger\"\n type=\"checkbox\"\n className=\"r-header-input\"\n hidden\n />\n <label className=\"r-header-burger\" htmlFor=\"header-burger\" aria-label={menu} role=\"button\" tabIndex={0}>\n <span className=\"r-burger-line _top\" />\n <span className=\"r-burger-line _bottom\" />\n </label>\n <div className=\"r-header-responsive\">{children}</div>\n </div>\n );\n};\n"],"names":["HeaderMenu","children","translations","menu","addListener","removeListener","useNavigate","opened","setOpened","useState","closeHandler","root","document","querySelector","classList","remove","useEffect","React","createElement","className","onChange","add","openHandler","checked","id","type","hidden","htmlFor","role","tabIndex"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/header-menu/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { useNavigate } from \"@src/components/stores/navigate/use-navigate\";\n\nimport \"./header-menu.scss\";\n\nexport type HeaderMenuProps = React.PropsWithChildren<{\n translations?: {\n /** Menu */\n menu?: string;\n };\n}>;\n\nexport const HeaderMenu: React.FC<HeaderMenuProps> = ({ children, translations }) => {\n const { menu = \"Menu\" } = translations || {};\n const { addListener, removeListener } = useNavigate();\n const [opened, setOpened] = useState(false);\n\n const openHandler = () => {\n const root = document.querySelector(\".r-root\");\n if (root) {\n root.classList.add(\"r-root-tablet-lock\");\n }\n setOpened(true);\n addListener(\"closeHeaderMenu\", closeHandler);\n };\n\n const closeHandler = () => {\n const root = document.querySelector(\".r-root\");\n if (root) {\n root.classList.remove(\"r-root-tablet-lock\");\n }\n setOpened(false);\n removeListener(\"closeHeaderMenu\");\n };\n\n const toggleHandler = () => {\n if (opened) {\n closeHandler();\n } else {\n openHandler();\n }\n };\n\n useEffect(\n () => () => {\n closeHandler();\n },\n [],\n );\n\n return (\n <div className=\"r-header-menu\">\n <input\n onChange={toggleHandler}\n checked={opened}\n id=\"header-burger\"\n type=\"checkbox\"\n className=\"r-header-input\"\n hidden\n />\n <label className=\"r-header-burger\" htmlFor=\"header-burger\" aria-label={menu} role=\"button\" tabIndex={0}>\n <span className=\"r-burger-line _top\" />\n <span className=\"r-burger-line _bottom\" />\n </label>\n <div className=\"r-header-responsive\">{children}</div>\n </div>\n );\n};\n"],"names":["HeaderMenu","children","translations","menu","addListener","removeListener","useNavigate","opened","setOpened","useState","closeHandler","root","document","querySelector","classList","remove","useEffect","React","createElement","className","onChange","add","openHandler","checked","id","type","hidden","htmlFor","role","tabIndex"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import t from"react";import{useNavigate as e}from"../../contexts/navigate/use-navigate.js";import{ContentLink as n}from"../../ui/content-link/index.js";const o=({onClick:o,...r})=>{const{listeners:i}=e();return t.createElement(n,{onClick:t=>{[...i].forEach(t=>t.listener()),o&&o(t)},...r})};export{o as NavContentLink};
2
+ import e from"react";import{useNavigate as t}from"../../stores/navigate/use-navigate.js";import{ContentLink as r}from"../../ui/content-link/index.js";const n=({onClick:n,...o})=>{const{listeners:i}=t();return e.createElement(r,{onClick:e=>{[...i].forEach(e=>e.listener()),n&&n(e)},...o})};export{n as NavContentLink};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-content-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\nimport { useNavigate } from \"@src/components/contexts/navigate/use-navigate\";\nimport { ContentLink, type ContentLinkProps } from \"@src/components/ui/content-link\";\n\ntype NavContentLinkProps = ContentLinkProps;\n\nexport const NavContentLink: React.FC<NavContentLinkProps> = ({ onClick, ...props }) => {\n const { listeners } = useNavigate();\n\n const clickHandler = (e: React.MouseEvent<HTMLAnchorElement>) => {\n [...listeners].forEach((el) => el.listener());\n if (onClick) onClick(e);\n };\n\n return <ContentLink onClick={clickHandler} {...props} />;\n};\n"],"names":["NavContentLink","onClick","props","listeners","useNavigate","React","createElement","ContentLink","e","forEach","el","listener"],"mappings":";wJASO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAgD,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAcC,CAAAA,CAAAA,CAAAA,CAOtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAAA,CAAW,CAACN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CALEO,CAAAA,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAIL,CAAAA,CAAAA,CAAWM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAOA,CAAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9BV,CAAAA,CAAAA,CAASA,CAAAA,CAAQO,OAGsBN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-content-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\nimport { useNavigate } from \"@src/components/stores/navigate/use-navigate\";\nimport { ContentLink, type ContentLinkProps } from \"@src/components/ui/content-link\";\n\ntype NavContentLinkProps = ContentLinkProps;\n\nexport const NavContentLink: React.FC<NavContentLinkProps> = ({ onClick, ...props }) => {\n const { listeners } = useNavigate();\n\n const clickHandler = (e: React.MouseEvent<HTMLAnchorElement>) => {\n [...listeners].forEach((el) => el.listener());\n if (onClick) onClick(e);\n };\n\n return <ContentLink onClick={clickHandler} {...props} />;\n};\n"],"names":["NavContentLink","onClick","props","listeners","useNavigate","React","createElement","ContentLink","e","forEach","el","listener"],"mappings":";sJASO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAgD,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAcC,CAAAA,CAAAA,CAAAA,CAOtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAAA,CAAW,CAACN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CALEO,CAAAA,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAIL,CAAAA,CAAAA,CAAWM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAOA,CAAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9BV,CAAAA,CAAAA,CAASA,CAAAA,CAAQO,OAGsBN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import { type LinkProps } from "next/link";
3
- export declare const NavLink: React.ForwardRefExoticComponent<React.AnchorHTMLAttributes<HTMLAnchorElement> & LinkProps<any> & {
4
- children?: React.ReactNode | undefined;
5
- } & {
2
+ interface NavLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
6
3
  activeClassName?: string;
7
4
  targetClassName?: string;
8
- } & React.RefAttributes<HTMLAnchorElement>>;
5
+ href: string;
6
+ }
7
+ export declare const NavLink: React.ForwardRefExoticComponent<NavLinkProps & React.RefAttributes<HTMLAnchorElement>>;
8
+ export {};
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAcjD,eAAO,MAAM,OAAO;;;sBAJM,MAAM;sBACN,MAAM;2CAiC/B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAQ1C,UAAU,YAAa,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,OAAO,wFA+BnB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e,{forwardRef as r}from"react";import t from"next/link";import{usePathname as o}from"next/navigation";import a from"clsx";import{useNavigate as n}from"../../contexts/navigate/use-navigate.js";import{ExternalMark as s}from"../../ui/external-mark/index.js";import{checkIsLinkExternal as i}from"../../../core/utils/path-tools.js";const m=r(({onClick:r,className:m,href:l,targetClassName:c,activeClassName:f,children:p,...x},h)=>{const{listeners:g}=n(),k=o(),u=i(l),v=u?{target:"_blank",rel:"noopener noreferrer"}:{};return e.createElement(t,{href:l,className:a(k.startsWith(l)&&c,k===l&&f,m),ref:h,onClick:e=>{[...g].forEach(e=>e.listener()),r&&r(e)},...v,...x},p,u&&e.createElement(s,null))});export{m as NavLink};
2
+ import e,{forwardRef as r}from"react";import t from"clsx";import{useNavigate as o}from"../../stores/navigate/use-navigate.js";import{ExternalMark as s}from"../../ui/external-mark/index.js";import{checkIsLinkExternal as a}from"../../../core/utils/path-tools.js";import{usePathname as n,useLink as i}from"../../stores/navigation/hooks.js";const l=r(({onClick:r,className:l,href:m,targetClassName:c,activeClassName:f,children:p,...h},g)=>{const{listeners:k}=o(),u=n(),j=i(),v=a(m),x=v?{target:"_blank",rel:"noopener noreferrer"}:{};return e.createElement(j,{href:m,className:t(u.startsWith(m)&&c,u===m&&f,l),ref:g,onClick:e=>{[...k].forEach(e=>e.listener()),r&&r(e)},...x,...h},p,v&&e.createElement(s,null))});export{l as NavLink};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef } from \"react\";\nimport Link, { type LinkProps } from \"next/link\";\nimport { usePathname } from \"next/navigation\";\nimport clsx from \"clsx\";\n\nimport { useNavigate } from \"@src/components/contexts/navigate/use-navigate\";\nimport { ExternalMark } from \"@src/components/ui/external-mark\";\nimport { checkIsLinkExternal } from \"@src/core/utils/path-tools\";\n\ntype NavLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement> &\n React.PropsWithChildren<LinkProps> & {\n activeClassName?: string;\n targetClassName?: string;\n };\n\nexport const NavLink = forwardRef<HTMLAnchorElement, NavLinkProps>(\n ({ onClick, className, href, targetClassName, activeClassName, children, ...props }, ref) => {\n const { listeners } = useNavigate();\n const pathname = usePathname();\n\n const clickHandler = (e: React.MouseEvent<HTMLAnchorElement>) => {\n [...listeners].forEach((el) => el.listener());\n if (onClick) onClick(e);\n };\n const isLinkExternal = checkIsLinkExternal(href);\n const additionalProps = isLinkExternal ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {};\n\n return (\n <Link\n href={href}\n className={clsx(\n pathname.startsWith(href) && targetClassName,\n pathname === href && activeClassName,\n className,\n )}\n ref={ref}\n onClick={clickHandler}\n {...additionalProps}\n {...props}\n >\n {children}\n {isLinkExternal && <ExternalMark />}\n </Link>\n );\n },\n);\n"],"names":["NavLink","forwardRef","onClick","className","href","targetClassName","activeClassName","children","props","ref","listeners","useNavigate","pathname","usePathname","isLinkExternal","checkIsLinkExternal","additionalProps","target","rel","React","createElement","Link","clsx","startsWith","e","forEach","el","listener","ExternalMark"],"mappings":";8UAiBO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAUC,EACnB,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,kBAAiBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CACjF,MAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAA,CAAcC,CAAAA,CAAAA,CAAAA,CAChBC,CAAAA,CAAWC,IAMXC,CAAAA,CAAiBC,CAAAA,CAAoBX,GACrCY,CAAAA,CAAkBF,CAAAA,CAAiB,CAAEG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAA,CAE5F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,GACGjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,CACND,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWmB,EACPV,CAAAA,CAASW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWnB,IAASC,CAAAA,CAC7BO,CAAAA,CAAAA,CAAAA,CAAaR,GAAQE,CAAAA,CACrBH,CAAAA,CAAAA,CAEJM,CAAAA,CAAAA,CAAAA,CAAKA,CAAAA,CACLP,QAhBcsB,CAAAA,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAId,GAAWe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAOA,EAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9BzB,CAAAA,CAAAA,CAASA,CAAAA,CAAQsB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAebR,KACAR,CAAAA,CAAAA,CAEHD,CAAAA,CACAO,GAAkBK,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACQ,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef } from \"react\";\nimport clsx from \"clsx\";\n\nimport { useNavigate } from \"@src/components/stores/navigate/use-navigate\";\nimport { ExternalMark } from \"@src/components/ui/external-mark\";\nimport { checkIsLinkExternal } from \"@src/core/utils/path-tools\";\nimport { usePathname, useLink } from \"@src/components/stores/navigation/hooks\";\n\ninterface NavLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n activeClassName?: string;\n targetClassName?: string;\n href: string;\n}\n\nexport const NavLink = forwardRef<HTMLAnchorElement, NavLinkProps>(\n ({ onClick, className, href, targetClassName, activeClassName, children, ...props }, ref) => {\n const { listeners } = useNavigate();\n const pathname = usePathname();\n const Link = useLink();\n\n const clickHandler = (e: React.MouseEvent<HTMLAnchorElement>) => {\n [...listeners].forEach((el) => el.listener());\n if (onClick) onClick(e);\n };\n const isLinkExternal = checkIsLinkExternal(href);\n const additionalProps = isLinkExternal ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {};\n\n return (\n <Link\n href={href}\n className={clsx(\n pathname.startsWith(href) && targetClassName,\n pathname === href && activeClassName,\n className,\n )}\n ref={ref}\n onClick={clickHandler}\n {...additionalProps}\n {...props}\n >\n {children}\n {isLinkExternal && <ExternalMark />}\n </Link>\n );\n },\n);\n"],"names":["NavLink","forwardRef","onClick","className","href","targetClassName","activeClassName","children","props","ref","listeners","useNavigate","pathname","usePathname","Link","useLink","isLinkExternal","checkIsLinkExternal","additionalProps","target","rel","React","createElement","clsx","startsWith","e","forEach","el","listener","ExternalMark"],"mappings":";iVAgBO,MAAMA,CAAAA,CAAUC,CAAAA,CACnB,EAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBC,kBAAiBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,CAAAA,CAAAA,CAASC,KACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAcC,CAAAA,CAAAA,CAAAA,CAChBC,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CACXC,CAAAA,CAAOC,IAMPC,CAAAA,CAAiBC,CAAAA,CAAoBb,GACrCc,CAAAA,CAAkBF,CAAAA,CAAiB,CAAEG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAA,CAE5F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACR,GACGV,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,CACND,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWoB,EACPX,CAAAA,CAASY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWpB,IAASC,CAAAA,CAC7BO,CAAAA,CAAAA,CAAAA,CAAaR,GAAQE,CAAAA,CACrBH,CAAAA,CAAAA,CAEJM,CAAAA,CAAAA,CAAAA,CAAKA,CAAAA,CACLP,QAhBcuB,CAAAA,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAIf,GAAWgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAOA,EAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9B1B,CAAAA,CAAAA,CAASA,CAAAA,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAebP,KACAV,CAAAA,CAAAA,CAEHD,CAAAA,CACAS,GAAkBK,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACO,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/no-js/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,IAAI,yBA2ChB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/no-js/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,IAAI,yBA4ChB,CAAC"}
@@ -1,2 +1,2 @@
1
- import n from"react";const o=()=>n.createElement("noscript",null,n.createElement("style",null,'\n .r-no-js {\n cursor: not-allowed;\n box-sizing: border-box;\n }\n .r-no-js:hover,\n .r-no-js:focus,\n .r-no-js:focus-within {\n z-index: 10;\n }\n .r-no-js::after {\n content: "Please enable JavaScript";\n display: none;\n position: absolute;\n top: 50%;\n right: 0;\n font-family: var(--monospace-font, monospace, monospace);\n font-size: 12px;\n width: 100%;\n min-width: 120px;\n transform: translateY(-50%);\n background-color: var(--r-main-900);\n color: var(--r-main-100);\n border-radius: 4px;\n padding: 4px 12px;\n pointer-events: none;\n box-sizing: border-box;\n }\n .r-no-js._to-right::after {\n right: auto;\n left: 0;\n }\n .r-no-js:hover::after,\n .r-no-js:focus::after,\n .r-no-js:focus-within::after {\n display: block;\n }\n '));export{o as NoJs};
1
+ import n from"react";const o=()=>n.createElement("noscript",null,n.createElement("style",null,'\n .r-no-js {\n cursor: not-allowed;\n box-sizing: border-box;\n text-wrap: wrap;\n }\n .r-no-js:hover,\n .r-no-js:focus,\n .r-no-js:focus-within {\n z-index: 10;\n }\n .r-no-js::after {\n content: "Please enable JavaScript";\n display: none;\n position: absolute;\n top: 50%;\n right: 0;\n font-family: var(--monospace-font, monospace, monospace);\n font-size: 12px;\n width: 100%;\n min-width: 120px;\n transform: translateY(-50%);\n background-color: var(--r-main-900);\n color: var(--r-main-100);\n border-radius: 4px;\n padding: 4px 12px;\n pointer-events: none;\n box-sizing: border-box;\n }\n .r-no-js._to-right::after {\n right: auto;\n left: 0;\n }\n .r-no-js:hover::after,\n .r-no-js:focus::after,\n .r-no-js:focus-within::after {\n display: block;\n }\n '));export{o as NoJs};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/no-js/index.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const NoJs = () => (\n <noscript>\n <style>\n {`\n .r-no-js {\n cursor: not-allowed;\n box-sizing: border-box;\n }\n .r-no-js:hover,\n .r-no-js:focus,\n .r-no-js:focus-within {\n z-index: 10;\n }\n .r-no-js::after {\n content: \"Please enable JavaScript\";\n display: none;\n position: absolute;\n top: 50%;\n right: 0;\n font-family: var(--monospace-font, monospace, monospace);\n font-size: 12px;\n width: 100%;\n min-width: 120px;\n transform: translateY(-50%);\n background-color: var(--r-main-900);\n color: var(--r-main-100);\n border-radius: 4px;\n padding: 4px 12px;\n pointer-events: none;\n box-sizing: border-box;\n }\n .r-no-js._to-right::after {\n right: auto;\n left: 0;\n }\n .r-no-js:hover::after,\n .r-no-js:focus::after,\n .r-no-js:focus-within::after {\n display: block;\n }\n `}\n </style>\n </noscript>\n);\n"],"names":["NoJs","React","createElement"],"mappings":"qBAEO,MAAMA,EAAO,IAChBC,EAAAC,cAAA,WAAA,KACID,EAAAC,cAAA,QAAA,KACK"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/no-js/index.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const NoJs = () => (\n <noscript>\n <style>\n {`\n .r-no-js {\n cursor: not-allowed;\n box-sizing: border-box;\n text-wrap: wrap;\n }\n .r-no-js:hover,\n .r-no-js:focus,\n .r-no-js:focus-within {\n z-index: 10;\n }\n .r-no-js::after {\n content: \"Please enable JavaScript\";\n display: none;\n position: absolute;\n top: 50%;\n right: 0;\n font-family: var(--monospace-font, monospace, monospace);\n font-size: 12px;\n width: 100%;\n min-width: 120px;\n transform: translateY(-50%);\n background-color: var(--r-main-900);\n color: var(--r-main-100);\n border-radius: 4px;\n padding: 4px 12px;\n pointer-events: none;\n box-sizing: border-box;\n }\n .r-no-js._to-right::after {\n right: auto;\n left: 0;\n }\n .r-no-js:hover::after,\n .r-no-js:focus::after,\n .r-no-js:focus-within::after {\n display: block;\n }\n `}\n </style>\n </noscript>\n);\n"],"names":["NoJs","React","createElement"],"mappings":"qBAEO,MAAMA,EAAO,IAChBC,EAAAC,cAAA,WAAA,KACID,EAAAC,cAAA,QAAA,KACK"}
@@ -1,12 +1,16 @@
1
1
  import "./search.scss";
2
2
  import React from "react";
3
- import { type SearchModalProps } from "./search-modal";
3
+ import { Searcher } from "../../../core/types/search";
4
4
  export interface SearchProps {
5
- searcher: SearchModalProps["searcher"];
5
+ searcher: Searcher | string;
6
6
  translations?: {
7
7
  /** Search... */
8
8
  search?: string;
9
- } & SearchModalProps["translations"];
9
+ /** Type something... */
10
+ typeSomething?: string;
11
+ /** Nothing found */
12
+ nothingFound?: string;
13
+ };
10
14
  }
11
15
  export declare const Search: React.FC<SearchProps>;
12
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/search/index.tsx"],"names":[],"mappings":"AAEA,OAAO,eAAe,CAAC;AAEvB,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKpE,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE;QACX,gBAAgB;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAsDxC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/search/index.tsx"],"names":[],"mappings":"AAEA,OAAO,eAAe,CAAC;AAEvB,OAAO,KAA+C,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,QAAQ,EAAiB,mCAA+B;AAIjE,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE;QACX,gBAAgB;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,wBAAwB;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,oBAAoB;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACL;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA+HxC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e,{useRef as r,useEffect as t}from"react";import{SearchModal as n}from"./search-modal/index.js";import{useSystemType as o}from"../../../core/hooks/use-system-type.js";import{KbdContainer as a}from"../../ui/kbd/kbd-container/index.js";import{KbdKey as s}from"../../ui/kbd/kbd-key/index.js";import{useModal as l}from"../../ui/modal/use-modal.js";const c=({searcher:c,translations:m})=>{const{search:i="Search...",...d}=m||{},p=r(null),{opened:u,closeHandler:k,openHandler:y}=l(),h=o();t(()=>{const e=e=>{"k"===e.key.toLowerCase()&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[]);return e.createElement(e.Fragment,null,e.createElement("button",{type:"button",className:"r-search-btn r-no-js",onClick:y,onKeyDown:e=>{1===e.key.length&&"Space"!==e.code&&y()}},e.createElement("span",{className:"r-search-title",ref:p},i),h&&e.createElement(a,{className:"r-search-kbd"},e.createElement(s,null,"apple"===h?"⌘":"CTRL"),e.createElement(s,null,"K"))),e.createElement(n,{open:u,translations:d,searcher:c,onClose:k,onInput:e=>{p.current&&(p.current.innerText=e||i)}}))};export{c as Search};
2
+ import e,{useRef as r,useState as t,useMemo as n,useEffect as o}from"react";import a from"clsx";import{useSystemType as c}from"../../../core/hooks/use-system-type.js";import{KbdContainer as l}from"../../ui/kbd/kbd-container/index.js";import{KbdKey as s}from"../../ui/kbd/kbd-key/index.js";import{createBaseSearcher as m}from"../../../core/utils/create-base-searcher.js";import{useDebouncer as i}from"../../../core/hooks/use-debouncer.js";import{Backdrop as u}from"../../ui/backdrop/index.js";import{NavLink as p}from"../nav-link/index.js";const d=({searcher:d,translations:h={}})=>{const{search:f="Search...",typeSomething:k="Type something...",nothingFound:E="Nothing found"}=h,y=r(null),b=r(null),N=r(null),g=r(null),[v,C]=t(null),w=c(),j=n(()=>"string"==typeof d?m(d):d,[d]),{handler:x}=i(async(e,r)=>{const t=r.target.value;_(t);let n=null;t&&(n=await j(t,e)),C(n)}),L=()=>{const e=document.querySelector(".r-root");e&&e.classList.add("r-root_lock"),b.current?.focus(),N.current?.showModal()},S=()=>{const e=document.querySelector(".r-root");e&&e.classList.remove("r-root_lock"),N.current?.close()};o(()=>{const e=e=>{"k"===e.key.toLowerCase()&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),L())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[]);const _=e=>{y.current&&(y.current.innerText=e||f)};return e.createElement(e.Fragment,null,e.createElement("button",{type:"button",className:"r-search-btn r-no-js",onClick:L},e.createElement("span",{className:"r-search-title",ref:y},f),w&&e.createElement(l,{className:"r-search-kbd"},e.createElement(s,null,"apple"===w?"⌘":"CTRL"),e.createElement(s,null,"K"))),e.createElement("dialog",{onClose:S,className:a("r-search-dialog",Boolean(v?.length)&&"_active"),ref:N},e.createElement(u,{open:!0,onClose:S}),e.createElement("div",{className:"r-search-popup _visible"},e.createElement("form",{className:"r-search-popup-header",onSubmit:e=>{e.preventDefault(),g.current&&g.current.focus()},autoComplete:"off"},e.createElement("input",{type:"text",name:"search",placeholder:k,className:"r-search-input",onChange:x,ref:b}),e.createElement(l,{className:"r-search-kbd r-search-popup-kbd",onClick:S},e.createElement(s,null,"ESC"))),v&&e.createElement("ul",{className:"r-search-results"},v.length>0?v.map((r,t)=>e.createElement("li",{key:r.href},e.createElement(p,{href:r.href,onClick:S,className:"r-search-item",ref:0===t?g:void 0},e.createElement("p",{className:"r-search-item-title"},r.title),r.description&&e.createElement("p",{className:"r-search-item-desc"},r.description)))):e.createElement("p",null,E)))))};export{d as Search};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/search/index.tsx"],"sourcesContent":["\"use client\";\n\nimport \"./search.scss\";\n\nimport React, { useEffect, useRef } from \"react\";\n\nimport { SearchModal, type SearchModalProps } from \"./search-modal\";\nimport { useSystemType } from \"@src/core/hooks/use-system-type\";\nimport { KbdContainer, KbdKey } from \"@src/components/ui/kbd\";\nimport { useModal } from \"@src/components/ui/modal/use-modal\";\n\nexport interface SearchProps {\n searcher: SearchModalProps[\"searcher\"];\n translations?: {\n /** Search... */\n search?: string;\n } & SearchModalProps[\"translations\"];\n}\n\nexport const Search: React.FC<SearchProps> = ({ searcher, translations }) => {\n const { search = \"Search...\", ...modalTranslations } = translations || {};\n const titleRef = useRef<HTMLSpanElement>(null);\n const { opened, closeHandler, openHandler } = useModal();\n const system = useSystemType();\n\n const keyDownHandler = (e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key.length === 1 && e.code !== \"Space\") {\n openHandler();\n }\n };\n\n useEffect(() => {\n const keyDown = (e: KeyboardEvent) => {\n if (e.key.toLowerCase() === \"k\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n openHandler();\n }\n };\n window.addEventListener(\"keydown\", keyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", keyDown);\n };\n }, []);\n\n const inputHandler = (text: string) => {\n if (titleRef.current) {\n titleRef.current.innerText = text || search;\n }\n };\n\n return (\n <>\n <button type=\"button\" className=\"r-search-btn r-no-js\" onClick={openHandler} onKeyDown={keyDownHandler}>\n <span className=\"r-search-title\" ref={titleRef}>\n {search}\n </span>\n {system && (\n <KbdContainer className=\"r-search-kbd\">\n <KbdKey>{system === \"apple\" ? \"⌘\" : \"CTRL\"}</KbdKey>\n <KbdKey>K</KbdKey>\n </KbdContainer>\n )}\n </button>\n <SearchModal\n open={opened}\n translations={modalTranslations}\n searcher={searcher}\n onClose={closeHandler}\n onInput={inputHandler}\n />\n </>\n );\n};\n"],"names":["Search","searcher","translations","search","modalTranslations","titleRef","useRef","opened","closeHandler","openHandler","useModal","system","useSystemType","useEffect","keyDown","e","key","toLowerCase","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","React","createElement","Fragment","type","className","onClick","onKeyDown","length","code","ref","KbdContainer","KbdKey","SearchModal","open","onClose","onInput","text","current","innerText"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/search/index.tsx"],"sourcesContent":["\"use client\";\n\nimport \"./search.scss\";\n\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\n\nimport { useSystemType } from \"@src/core/hooks/use-system-type\";\nimport { KbdContainer, KbdKey } from \"@src/components/ui/kbd\";\nimport { createBaseSearcher } from \"@src/core/utils/create-base-searcher\";\nimport { useDebouncer } from \"@src/core/hooks/use-debouncer\";\nimport { Searcher, SearchResults } from \"@src/core/types/search\";\nimport { Backdrop } from \"@src/components/ui/backdrop\";\nimport { NavLink } from \"@src/components/blocks/nav-link\";\n\nexport interface SearchProps {\n searcher: Searcher | string;\n translations?: {\n /** Search... */\n search?: string;\n /** Type something... */\n typeSomething?: string;\n /** Nothing found */\n nothingFound?: string;\n };\n}\n\nexport const Search: React.FC<SearchProps> = ({ searcher, translations = {} }) => {\n const { search = \"Search...\", typeSomething = \"Type something...\", nothingFound = \"Nothing found\" } = translations;\n const titleRef = useRef<HTMLSpanElement>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const dialogRef = useRef<HTMLDialogElement | null>(null);\n const firstItem = useRef<HTMLAnchorElement | null>(null);\n const [results, setResults] = useState<SearchResults | null>(null);\n const system = useSystemType();\n\n const targetSearcher = useMemo(\n () => (typeof searcher === \"string\" ? createBaseSearcher(searcher) : searcher),\n [searcher],\n );\n\n const { handler } = useDebouncer(async (abortController, e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n inputHandler(value);\n let newResults = null;\n if (value) {\n newResults = await targetSearcher(value, abortController);\n }\n setResults(newResults);\n });\n\n const openHandler = () => {\n const root = document.querySelector(\".r-root\");\n if (root) {\n root.classList.add(\"r-root_lock\");\n }\n inputRef.current?.focus();\n dialogRef.current?.showModal();\n };\n const closeHandler = () => {\n const root = document.querySelector(\".r-root\");\n if (root) {\n root.classList.remove(\"r-root_lock\");\n }\n dialogRef.current?.close();\n };\n\n useEffect(() => {\n const keyDown = (e: KeyboardEvent) => {\n if (e.key.toLowerCase() === \"k\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n openHandler();\n }\n };\n window.addEventListener(\"keydown\", keyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", keyDown);\n };\n }, []);\n\n const inputHandler = (text: string) => {\n if (titleRef.current) {\n titleRef.current.innerText = text || search;\n }\n };\n\n const submitHandler = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n if (firstItem.current) {\n firstItem.current.focus();\n }\n };\n\n return (\n <>\n <button type=\"button\" className=\"r-search-btn r-no-js\" onClick={openHandler}>\n <span className=\"r-search-title\" ref={titleRef}>\n {search}\n </span>\n {system && (\n <KbdContainer className=\"r-search-kbd\">\n <KbdKey>{system === \"apple\" ? \"⌘\" : \"CTRL\"}</KbdKey>\n <KbdKey>K</KbdKey>\n </KbdContainer>\n )}\n </button>\n <dialog\n onClose={closeHandler}\n className={clsx(\"r-search-dialog\", Boolean(results?.length) && \"_active\")}\n ref={dialogRef}\n >\n <Backdrop open onClose={closeHandler} />\n <div className=\"r-search-popup _visible\">\n <form className=\"r-search-popup-header\" onSubmit={submitHandler} autoComplete=\"off\">\n <input\n type=\"text\"\n name=\"search\"\n placeholder={typeSomething}\n className=\"r-search-input\"\n onChange={handler}\n ref={inputRef}\n />\n <KbdContainer className=\"r-search-kbd r-search-popup-kbd\" onClick={closeHandler}>\n <KbdKey>ESC</KbdKey>\n </KbdContainer>\n </form>\n {results && (\n <ul className=\"r-search-results\">\n {results.length > 0 ? (\n results.map((item, index) => (\n <li key={item.href}>\n <NavLink\n href={item.href}\n onClick={closeHandler}\n className=\"r-search-item\"\n ref={index === 0 ? firstItem : undefined}\n >\n <p className=\"r-search-item-title\">{item.title}</p>\n {item.description && (\n <p className=\"r-search-item-desc\">{item.description}</p>\n )}\n </NavLink>\n </li>\n ))\n ) : (\n <p>{nothingFound}</p>\n )}\n </ul>\n )}\n </div>\n </dialog>\n </>\n );\n};\n"],"names":["Search","searcher","translations","search","typeSomething","nothingFound","titleRef","useRef","inputRef","dialogRef","firstItem","results","setResults","useState","system","useSystemType","targetSearcher","useMemo","createBaseSearcher","handler","useDebouncer","async","abortController","e","value","target","inputHandler","newResults","openHandler","root","document","querySelector","classList","add","current","focus","showModal","closeHandler","remove","close","useEffect","keyDown","key","toLowerCase","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","text","innerText","React","createElement","Fragment","type","className","onClick","ref","KbdContainer","KbdKey","onClose","clsx","Boolean","length","Backdrop","open","onSubmit","autoComplete","name","placeholder","onChange","map","item","index","href","NavLink","undefined","title","description"],"mappings":"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"}
@@ -2,11 +2,11 @@ import React from "react";
2
2
  import "./theme-switcher.scss";
3
3
  export type ThemeSwitcherProps = {
4
4
  translations?: {
5
- /** Dark */
5
+ /** Dark Theme */
6
6
  dark?: string;
7
- /** System */
7
+ /** System Theme */
8
8
  system?: string;
9
- /** Light */
9
+ /** Light Theme */
10
10
  light?: string;
11
11
  };
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/theme-switcher/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,uBAAuB,CAAC;AAE/B,MAAM,MAAM,kBAAkB,GAAG;IAC7B,YAAY,CAAC,EAAE;QACX,WAAW;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,aAAa;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoHtD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/theme-switcher/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,uBAAuB,CAAC;AAE/B,MAAM,MAAM,kBAAkB,GAAG;IAC7B,YAAY,CAAC,EAAE;QACX,iBAAiB;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,mBAAmB;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,kBAAkB;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoHtD,CAAC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e from"react";const t=({translations:t})=>{const{dark:r="Dark",system:o="System",light:n="light"}=t||{},s=e=>{const t=document.querySelector(".r-root");t&&(localStorage.setItem("theme",e),t.classList.remove("r-theme-light","r-theme-dark","r-theme-system"),"system"===e?(t.classList.add("r-theme-system"),window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?t.classList.add("r-theme-dark"):t.classList.add("r-theme-light")):t.classList.add(`r-theme-${e}`))};return e.createElement("div",{className:"r-theme-switcher"},e.createElement("button",{className:"r-theme-switcher-btn r-theme-switcher-btn__dark r-no-js",type:"button",onClick:()=>s("dark")},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 20 20",className:"r-theme-switcher-svg"},e.createElement("title",null,r),e.createElement("path",{d:"M9.5 2C8.50544 2.99456 7.9467 4.34348 7.9467 5.75C7.9467 7.15652 8.50544 8.50544 9.5 9.5C10.4946 10.4946 11.8435 11.0533 13.25 11.0533C14.6565 11.0533 16.0054 10.4946 17 9.5C17 10.9834 16.5601 12.4334 15.736 13.6668C14.9119 14.9001 13.7406 15.8614 12.3701 16.4291C10.9997 16.9968 9.49168 17.1453 8.03683 16.8559C6.58197 16.5665 5.2456 15.8522 4.1967 14.8033C3.14781 13.7544 2.4335 12.418 2.14411 10.9632C1.85472 9.50832 2.00325 8.00032 2.57091 6.62987C3.13856 5.25943 4.09986 4.08809 5.33323 3.26398C6.5666 2.43987 8.01664 2 9.5 2Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}))),e.createElement("button",{className:"r-theme-switcher-btn r-theme-switcher-btn__system r-no-js",type:"button",onClick:()=>s("system")},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 20 20",className:"r-theme-switcher-svg"},e.createElement("title",null,o),e.createElement("path",{d:"M15.0003 6.66683V5.00016C15.0003 4.55814 14.8247 4.13421 14.5122 3.82165C14.1996 3.50909 13.7757 3.3335 13.3337 3.3335H3.33366C2.89163 3.3335 2.46771 3.50909 2.15515 3.82165C1.84259 4.13421 1.66699 4.55814 1.66699 5.00016V10.8335C1.66699 11.2755 1.84259 11.6994 2.15515 12.012C2.46771 12.3246 2.89163 12.5002 3.33366 12.5002H10.0003",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M8.33301 15.8332V12.5332V15.1582",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M5.83301 15.8335H9.99967",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M16.6663 10H14.9997C14.0792 10 13.333 10.7462 13.333 11.6667V16.6667C13.333 17.5871 14.0792 18.3333 14.9997 18.3333H16.6663C17.5868 18.3333 18.333 17.5871 18.333 16.6667V11.6667C18.333 10.7462 17.5868 10 16.6663 10Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}))),e.createElement("button",{className:"r-theme-switcher-btn r-theme-switcher-btn__light r-no-js",type:"button",onClick:()=>s("light")},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 20 20",className:"r-theme-switcher-svg"},e.createElement("title",null,n),e.createElement("path",{d:"M10.0003 13.3332C11.8413 13.3332 13.3337 11.8408 13.3337 9.99984C13.3337 8.15889 11.8413 6.6665 10.0003 6.6665C8.15938 6.6665 6.66699 8.15889 6.66699 9.99984C6.66699 11.8408 8.15938 13.3332 10.0003 13.3332Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M10 1.6665V3.33317",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M10 16.6665V18.3332",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M4.1084 4.1084L5.2834 5.2834",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M14.7168 14.7168L15.8918 15.8918",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M1.66699 10H3.33366",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M16.667 10H18.3337",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M5.2834 14.7168L4.1084 15.8918",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M15.8918 4.1084L14.7168 5.2834",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}))))};export{t as ThemeSwitcher};
2
+ import e from"react";const t=({translations:t})=>{const{dark:r="Dark Theme",system:o="System Theme",light:n="Light Theme"}=t||{},s=e=>{const t=document.querySelector(".r-root");t&&(localStorage.setItem("theme",e),t.classList.remove("r-theme-light","r-theme-dark","r-theme-system"),"system"===e?(t.classList.add("r-theme-system"),window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?t.classList.add("r-theme-dark"):t.classList.add("r-theme-light")):t.classList.add(`r-theme-${e}`))};return e.createElement("div",{className:"r-theme-switcher"},e.createElement("button",{className:"r-theme-switcher-btn r-theme-switcher-btn__dark r-no-js",type:"button",onClick:()=>s("dark"),title:r},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 20 20",className:"r-theme-switcher-svg"},e.createElement("path",{d:"M9.5 2C8.50544 2.99456 7.9467 4.34348 7.9467 5.75C7.9467 7.15652 8.50544 8.50544 9.5 9.5C10.4946 10.4946 11.8435 11.0533 13.25 11.0533C14.6565 11.0533 16.0054 10.4946 17 9.5C17 10.9834 16.5601 12.4334 15.736 13.6668C14.9119 14.9001 13.7406 15.8614 12.3701 16.4291C10.9997 16.9968 9.49168 17.1453 8.03683 16.8559C6.58197 16.5665 5.2456 15.8522 4.1967 14.8033C3.14781 13.7544 2.4335 12.418 2.14411 10.9632C1.85472 9.50832 2.00325 8.00032 2.57091 6.62987C3.13856 5.25943 4.09986 4.08809 5.33323 3.26398C6.5666 2.43987 8.01664 2 9.5 2Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}))),e.createElement("button",{className:"r-theme-switcher-btn r-theme-switcher-btn__system r-no-js",type:"button",onClick:()=>s("system"),title:o},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 20 20",className:"r-theme-switcher-svg"},e.createElement("path",{d:"M15.0003 6.66683V5.00016C15.0003 4.55814 14.8247 4.13421 14.5122 3.82165C14.1996 3.50909 13.7757 3.3335 13.3337 3.3335H3.33366C2.89163 3.3335 2.46771 3.50909 2.15515 3.82165C1.84259 4.13421 1.66699 4.55814 1.66699 5.00016V10.8335C1.66699 11.2755 1.84259 11.6994 2.15515 12.012C2.46771 12.3246 2.89163 12.5002 3.33366 12.5002H10.0003",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M8.33301 15.8332V12.5332V15.1582",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M5.83301 15.8335H9.99967",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M16.6663 10H14.9997C14.0792 10 13.333 10.7462 13.333 11.6667V16.6667C13.333 17.5871 14.0792 18.3333 14.9997 18.3333H16.6663C17.5868 18.3333 18.333 17.5871 18.333 16.6667V11.6667C18.333 10.7462 17.5868 10 16.6663 10Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}))),e.createElement("button",{className:"r-theme-switcher-btn r-theme-switcher-btn__light r-no-js",type:"button",onClick:()=>s("light"),title:n},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 20 20",className:"r-theme-switcher-svg"},e.createElement("path",{d:"M10.0003 13.3332C11.8413 13.3332 13.3337 11.8408 13.3337 9.99984C13.3337 8.15889 11.8413 6.6665 10.0003 6.6665C8.15938 6.6665 6.66699 8.15889 6.66699 9.99984C6.66699 11.8408 8.15938 13.3332 10.0003 13.3332Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M10 1.6665V3.33317",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M10 16.6665V18.3332",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M4.1084 4.1084L5.2834 5.2834",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M14.7168 14.7168L15.8918 15.8918",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M1.66699 10H3.33366",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M16.667 10H18.3337",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M5.2834 14.7168L4.1084 15.8918",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),e.createElement("path",{d:"M15.8918 4.1084L14.7168 5.2834",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}))))};export{t as ThemeSwitcher};
3
3
  //# sourceMappingURL=index.js.map