@netlify/spark-ui 0.0.34 → 0.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/SearchHeading.css +1 -1
- package/dist/assets/SearchLink.css +1 -1
- package/dist/assets/SearchModal.css +1 -1
- package/dist/components/preact/Icon/index.js +15 -3
- package/dist/components/preact/SearchModal/components/SearchLink/SearchLink.d.ts +1 -1
- package/dist/components/preact/SearchModal/components/SearchLink/SearchLink.js +13 -9
- package/dist/components/preact/SearchModal/hooks/useSearch.js +31 -32
- package/dist/components/preact/SearchModal/types/search.types.d.ts +1 -1
- package/package.json +1 -1
- package/packages/components/Tabs.astro +4 -4
- package/packages/components/preact/Icon/index.tsx +9 -3
- package/packages/components/preact/SearchModal/components/SearchHeading/SearchHeading.css +2 -1
- package/packages/components/preact/SearchModal/components/SearchLink/SearchLink.css +34 -1
- package/packages/components/preact/SearchModal/components/SearchLink/SearchLink.tsx +4 -2
- package/packages/components/preact/SearchModal/hooks/useSearch.ts +5 -4
- package/packages/components/preact/SearchModal/types/search.types.tsx +1 -1
- package/packages/styles/buttons.css +24 -7
- package/packages/styles/tabs.css +18 -8
- package/packages/styles/tokens.css +5 -0
- package/dist/components/preact/SearchModal/utils/index.d.ts +0 -2
- package/dist/components/preact/SearchModal/utils/index.js +0 -11
- package/packages/components/preact/SearchModal/utils/index.ts +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
.n-search-heading{padding-inline:1rem;margin-block:var(--space-xs);font-size:var(--step--2);font-weight:var(--font-
|
|
1
|
+
.n-search-heading{padding-inline:1rem;margin-block:var(--space-xs);font-size:var(--step--2);font-weight:var(--font-semibold, 500);letter-spacing:.1px;color:var(--color-text-3)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.n-search-link{--n-search-icon-size: 1em;all:unset;display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-s, 1rem);align-items:center;padding:var(--n-search-link-padding-block, 1em) var(--n-search-link-padding-inline, 0px);font-size:var(--step--1);font-weight:var(--font-regular);text-decoration:none;cursor:pointer}.n-search-link-body{flex:1;width:80%;color:var(--color-text-2)}.n-search-link:is(:hover,:focus-within){background:var(--n-search-color-bg-2)}.n-search-link:is(:hover,:focus-within) .n-search-link-icon [data-icon=caretRight]{display:block}.n-search-link-
|
|
1
|
+
.n-search-link{--n-search-icon-size: 1em;all:unset;display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-s, 1rem);align-items:center;padding:var(--n-search-link-padding-block, 1em) var(--n-search-link-padding-inline, 0px);font-size:var(--step--1);font-weight:var(--font-regular);text-decoration:none;cursor:pointer}.n-search-link-body{flex:1;width:80%;color:var(--color-text-2)}.n-search-link:is(:hover,:focus-within){background:var(--n-search-color-bg-2)}.n-search-link:is(:hover,:focus-within) .n-search-link-icon [data-icon=caretRight]{display:block}.n-search-link-title{font-weight:var(--font-semibold, 680);color:var(--color-text-2);line-height:1.5}.n-search-link-excerpt{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-3);line-height:1.3;font-size:.9em;margin-block-start:var(--space-3xs)}.n-search-link-icon{display:flex;width:var(--n-search-icon-size);height:var(--n-search-icon-size);color:var(--n-search-color-text-secondary)}.n-search-link-icon:first-of-type{margin-inline-start:var(--space-s, 1rem)}.n-search-link-icon [data-icon=caretRight]{display:none;width:.8em;opacity:.3}.n-search-link-label{margin-inline-end:var(--space-2xs)}.n-search-link-badge{display:inline-block;width:max-content;font-size:.7em;padding:.1em .4em;position:relative;bottom:.3em;color:var(--n-search-link-badge-text-color, var(--neutral-500));background:var(--n-search-link-badge-color, var(--neutral-100));border:1px solid var(--n-search-link-badge-border, var(--neutral-300));border-radius:3px}.n-search-link-badge[data-resource=blog]{--n-search-link-badge-color: var(--blue-000);--n-search-link-badge-text-color: var(--blue-500);--n-search-link-badge-border: var(--blue-100)}.n-search-link-badge[data-resource=changelog]{--n-search-link-badge-color: var(--gold-000);--n-search-link-badge-text-color: var(--gold-500);--n-search-link-badge-border: var(--gold-100)}.n-search-link-badge[data-resource=guide]{--n-search-link-badge-color: var(--teal-000);--n-search-link-badge-text-color: var(--teal-500);--n-search-link-badge-border: var(--teal-100)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.n-keyboard-key{--n-key-text-size: .8em;--n-key-border-radius: 6px;--n-key-text-color: currentColor;--n-key-bg-color: transparent;display:flex;gap:calc(var(--space-3xs) * .5);font-size:var(--n-key-text-size);color:var(--n-key-text-color);background:var(--n-key-bg-color);border:1px solid currentColor;border-radius:var(--n-key-border-radius);padding:var(--n-key-padding-block, .05em) var(--n-key-padding-inline, .3em)}.n-search-heading{padding-inline:1rem;margin-block:var(--space-xs);font-size:var(--step--2);font-weight:var(--font-
|
|
1
|
+
.n-keyboard-key{--n-key-text-size: .8em;--n-key-border-radius: 6px;--n-key-text-color: currentColor;--n-key-bg-color: transparent;display:flex;gap:calc(var(--space-3xs) * .5);font-size:var(--n-key-text-size);color:var(--n-key-text-color);background:var(--n-key-bg-color);border:1px solid currentColor;border-radius:var(--n-key-border-radius);padding:var(--n-key-padding-block, .05em) var(--n-key-padding-inline, .3em)}.n-search-heading{padding-inline:1rem;margin-block:var(--space-xs);font-size:var(--step--2);font-weight:var(--font-semibold, 500);letter-spacing:.1px;color:var(--color-text-3)}.n-search-link{--n-search-icon-size: 1em;all:unset;display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-s, 1rem);align-items:center;padding:var(--n-search-link-padding-block, 1em) var(--n-search-link-padding-inline, 0px);font-size:var(--step--1);font-weight:var(--font-regular);text-decoration:none;cursor:pointer}.n-search-link-body{flex:1;width:80%;color:var(--color-text-2)}.n-search-link:is(:hover,:focus-within){background:var(--n-search-color-bg-2)}.n-search-link:is(:hover,:focus-within) .n-search-link-icon [data-icon=caretRight]{display:block}.n-search-link-title{font-weight:var(--font-semibold, 680);color:var(--color-text-2);line-height:1.5}.n-search-link-excerpt{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-3);line-height:1.3;font-size:.9em;margin-block-start:var(--space-3xs)}.n-search-link-icon{display:flex;width:var(--n-search-icon-size);height:var(--n-search-icon-size);color:var(--n-search-color-text-secondary)}.n-search-link-icon:first-of-type{margin-inline-start:var(--space-s, 1rem)}.n-search-link-icon [data-icon=caretRight]{display:none;width:.8em;opacity:.3}.n-search-link-label{margin-inline-end:var(--space-2xs)}.n-search-link-badge{display:inline-block;width:max-content;font-size:.7em;padding:.1em .4em;position:relative;bottom:.3em;color:var(--n-search-link-badge-text-color, var(--neutral-500));background:var(--n-search-link-badge-color, var(--neutral-100));border:1px solid var(--n-search-link-badge-border, var(--neutral-300));border-radius:3px}.n-search-link-badge[data-resource=blog]{--n-search-link-badge-color: var(--blue-000);--n-search-link-badge-text-color: var(--blue-500);--n-search-link-badge-border: var(--blue-100)}.n-search-link-badge[data-resource=changelog]{--n-search-link-badge-color: var(--gold-000);--n-search-link-badge-text-color: var(--gold-500);--n-search-link-badge-border: var(--gold-100)}.n-search-link-badge[data-resource=guide]{--n-search-link-badge-color: var(--teal-000);--n-search-link-badge-text-color: var(--teal-500);--n-search-link-badge-border: var(--teal-100)}.n-search-modal{--n-search-padding-inline: .5em;--n-search-color-text: var(--color-text-1, currentColor);--n-search-color-text-secondary: var(--color-text-2, currentColor);--n-search-color-bg: var(--color-bg-1);--n-search-color-bg-2: var(--color-bg-2);--n-search-color-border: var(--color-bg-3);--n-search-border-radius: 8px;--n-search-max-w: 600px;--n-search-text-highlight: var(--color-text-accent)}.n-search-modal{padding:0;border:none;border-radius:var(--n-search-border-radius);width:min(var(--n-search-max-w),100%);margin-inline:auto}.n-search-container{--mark-bg: var(--n-search-text-highlight);display:grid;width:min(var(--n-search-max-w),100%);min-height:470px;background-color:var(--n-search-color-bg);border-radius:var(--n-search-border-radius);overflow:hidden}.n-search-bar{display:flex;flex-wrap:wrap;align-items:center;overflow:hidden;background:var(--n-search-color-bg);border-bottom:1px solid var(--n-search-color-border)}.n-search-input-wrapper{all:unset;display:flex;width:100%;border-bottom:1px solid var(--n-search-color-border)}.n-search-input{display:inline-flex;box-sizing:border-box;background:var(--n-search-color-bg);inline-size:100%;padding-block:.75rem;padding-inline:var(--n-search-padding-inline);flex:1;border:none;outline:none;font-size:1rem;color:var(--color-text-1)}.n-search-input::placeholder{color:var(--n-search-color-text)}.n-search-label{display:flex;padding-inline:var(--n-search-padding-inline);align-items:center}.n-search-label>*{display:inline-block;margin:0}.n-search-icon{display:flex;width:var(--icon-size, 1em);height:var(--icon-size, 1em);color:var(--n-search-color-text-secondary)}.n-search-term{font-weight:var(--font-medium);font-size:1.1em}.n-search-window{height:400px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;margin-block:0;background:var(--n-search-color-bg)}.n-results-list,ul[role=list]{list-style:none;padding:0}.n-results-list-item{border-bottom:1px solid var(--color-bg-3)}.n-results-list-item:first-of-type{border-top:1px solid var(--color-bg-3)}.n-search-footer{border-top:1px solid var(--n-search-color-border);padding:var(--space-2xs) var(--space-s);background:var(--color-bg-2);display:flex;gap:var(--space-m)}.n-search-footer-tip{--n-key-text-color: var(--n-search-color-text-secondary);color:var(--n-search-color-text-secondary);display:flex;gap:var(--space-2xs);align-items:center;font-size:var(--step--1)}.n-search-modal{transition:display .2s allow-discrete,overlay .2s allow-discrete;animation:closeSearch .2s forwards}.n-search-modal[open]{animation:openSearch .2s forwards}@keyframes openSearch{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes closeSearch{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:.3}to{opacity:0;transform:translateY(20px) scale(.9)}}.n-search-modal::backdrop{animation:closeSearchBackdrop .2s forwards}.n-search-modal[open]::backdrop{animation:openSearchBackdrop .2s forwards}@keyframes openSearchBackdrop{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}@keyframes closeSearchBackdrop{0%{opacity:1;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}50%{opacity:.3}to{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}}
|
|
@@ -103,10 +103,16 @@ const n = () => /* @__PURE__ */ C(
|
|
|
103
103
|
d: "M0 4.57143C0 2.04286 2.04286 0 4.57143 0C37.4 0 64 26.6 64 59.4286C64 61.9571 61.9571 64 59.4286 64C56.9 64 54.8571 61.9571 54.8571 59.4286C54.8571 31.6571 32.3429 9.14286 4.57143 9.14286C2.04286 9.14286 0 7.1 0 4.57143ZM0 54.8571C0 52.4323 0.963263 50.1068 2.67788 48.3922C4.3925 46.6776 6.71802 45.7143 9.14286 45.7143C11.5677 45.7143 13.8932 46.6776 15.6078 48.3922C17.3225 50.1068 18.2857 52.4323 18.2857 54.8571C18.2857 57.282 17.3225 59.6075 15.6078 61.3221C13.8932 63.0367 11.5677 64 9.14286 64C6.71802 64 4.3925 63.0367 2.67788 61.3221C0.963263 59.6075 0 57.282 0 54.8571ZM4.57143 18.2857C27.3 18.2857 45.7143 36.7 45.7143 59.4286C45.7143 61.9571 43.6714 64 41.1429 64C38.6143 64 36.5714 61.9571 36.5714 59.4286C36.5714 41.7571 22.2429 27.4286 4.57143 27.4286C2.04286 27.4286 0 25.3857 0 22.8571C0 20.3286 2.04286 18.2857 4.57143 18.2857Z",
|
|
104
104
|
fill: "currentColor"
|
|
105
105
|
}
|
|
106
|
-
), Z = () => /* @__PURE__ */ C(
|
|
106
|
+
), Z = () => /* @__PURE__ */ C(
|
|
107
107
|
"path",
|
|
108
108
|
{
|
|
109
|
-
d: "
|
|
109
|
+
d: "M15.4623 44.9025C17.0744 43.7277 19.1614 43.4278 21.0359 44.1027C24.3475 45.3024 28.0591 45.9897 32.0081 45.9897C47.5917 45.9897 58.0015 35.9295 58.0015 25.9942C58.0015 16.0589 47.5917 5.99866 32.0081 5.99866C16.4246 5.99866 6.01468 16.0589 6.01468 25.9942C6.01468 29.9933 7.56429 33.8424 10.4761 37.1417C11.5508 38.3539 12.0756 39.9536 11.9507 41.5782C11.7757 43.8402 11.2384 45.9148 10.5385 47.7518C12.663 46.7646 14.4251 45.6648 15.4623 44.915V44.9025ZM2.66553 49.9763C2.89048 49.6389 3.10292 49.3015 3.30287 48.9641C4.55255 46.8895 5.73975 44.1651 5.97719 41.1033C2.22814 36.8418 0.0162028 31.6304 0.0162028 25.9942C0.0162028 11.6349 14.3376 0 32.0081 0C49.6786 0 64 11.6349 64 25.9942C64 40.3535 49.6786 51.9884 32.0081 51.9884C27.3718 51.9884 22.9729 51.1886 18.9989 49.7514C17.5118 50.8387 15.0874 52.3258 12.2131 53.5755C10.3261 54.4004 8.17664 55.1502 5.9522 55.5876C5.85222 55.6126 5.75225 55.6251 5.65228 55.6501C5.10241 55.7501 4.56505 55.8375 4.00269 55.8875C3.9777 55.8875 3.94021 55.9 3.91522 55.9C3.27788 55.9625 2.64054 56 2.0032 56C1.19091 56 0.466089 55.5126 0.153668 54.7628C-0.158753 54.0129 0.0162028 53.1631 0.57856 52.5883C1.09093 52.0634 1.55331 51.501 1.9907 50.9011C2.20315 50.6137 2.4031 50.3263 2.59055 50.0388L2.62804 49.9763H2.66553Z",
|
|
110
|
+
fill: "currentColor"
|
|
111
|
+
}
|
|
112
|
+
), u = () => /* @__PURE__ */ C(
|
|
113
|
+
"path",
|
|
114
|
+
{
|
|
115
|
+
d: "M58.0309 26.6159C63.6509 21.0179 63.6509 11.9435 58.0309 6.34543C52.6809 1.01633 44.0909 0.72746 38.3909 5.69797L37.7809 6.23586C36.7809 7.10246 36.6809 8.61652 37.5509 9.61262C38.4209 10.6087 39.9409 10.7083 40.9409 9.84172L41.5509 9.30383C45.3509 5.9968 51.0709 6.18605 54.6409 9.74211C58.3809 13.4675 58.3809 19.5138 54.6409 23.2491L43.3109 34.5249C39.5709 38.2503 33.4909 38.2503 29.7509 34.5249C26.1809 30.9689 25.9909 25.2712 29.3109 21.4861L29.7809 20.9482C30.6509 19.9521 30.5509 18.448 29.5509 17.5714C28.5509 16.6948 27.0409 16.8044 26.1609 17.8005L25.6909 18.3384C20.7109 24.0161 21.0009 32.5726 26.3509 37.9017C31.9709 43.4997 41.0809 43.4997 46.7009 37.9017L58.0309 26.6159ZM5.97086 24.3847C0.350859 29.9827 0.350859 39.0571 5.97086 44.6452C11.3309 49.9843 19.9209 50.2632 25.6209 45.2927L26.2309 44.7548C27.2309 43.8882 27.3309 42.3741 26.4609 41.378C25.5909 40.382 24.0709 40.2823 23.0709 41.1489L22.4609 41.6868C18.6609 44.9939 12.9409 44.8046 9.37086 41.2486C5.63086 37.5232 5.63086 31.4769 9.37086 27.7415L20.7009 16.4757C24.4409 12.7503 30.5109 12.7503 34.2609 16.4757C37.8309 20.0318 38.0209 25.7294 34.7009 29.5146L34.1609 30.1222C33.2909 31.1183 33.3909 32.6224 34.3909 33.4989C35.3909 34.3755 36.9009 34.2659 37.7809 33.2698L38.3209 32.6622C43.3109 26.9845 43.0209 18.428 37.6709 13.089C32.0509 7.49094 22.9409 7.49094 17.3209 13.089L5.97086 24.3847Z",
|
|
110
116
|
fill: "currentColor"
|
|
111
117
|
}
|
|
112
118
|
), i = () => /* @__PURE__ */ C(
|
|
@@ -133,7 +139,13 @@ const n = () => /* @__PURE__ */ C(
|
|
|
133
139
|
d: "M8 20.0002C8 14.4752 12.475 10.0002 18 10.0002H22C27.525 10.0002 32 14.4752 32 20.0002V20.5752C32 23.5877 30.5 26.4002 27.9875 28.0627L21.45 32.4252C18.675 34.2752 17 37.4002 17 40.7502V41.0002C17 42.6627 18.3375 44.0002 20 44.0002C21.6625 44.0002 23 42.6627 23 41.0002V40.7502C23 39.4127 23.6625 38.1627 24.775 37.4252L31.3125 33.0627C35.4875 30.2752 37.9875 25.6002 37.9875 20.5877V20.0127C37.9875 11.1752 30.825 4.01271 21.9875 4.01271H17.9875C9.1625 4.00021 2 11.1627 2 20.0002C2 21.6627 3.3375 23.0002 5 23.0002C6.6625 23.0002 8 21.6627 8 20.0002ZM20 60.0002C21.0609 60.0002 22.0783 59.5788 22.8284 58.8286C23.5786 58.0785 24 57.0611 24 56.0002C24 54.9393 23.5786 53.9219 22.8284 53.1718C22.0783 52.4216 21.0609 52.0002 20 52.0002C18.9391 52.0002 17.9217 52.4216 17.1716 53.1718C16.4214 53.9219 16 54.9393 16 56.0002C16 57.0611 16.4214 58.0785 17.1716 58.8286C17.9217 59.5788 18.9391 60.0002 20 60.0002Z",
|
|
134
140
|
fill: "currentColor"
|
|
135
141
|
}
|
|
136
|
-
), d = () => /* @__PURE__ */ C(
|
|
142
|
+
), d = () => /* @__PURE__ */ C(
|
|
143
|
+
"path",
|
|
144
|
+
{
|
|
145
|
+
d: "M59.4286 0H4.55714C2.04286 0 0 2.07143 0 4.61429V59.3857C0 61.9286 2.04286 64 4.55714 64H59.4286C61.9429 64 64 61.9286 64 59.3857V4.61429C64 2.07143 61.9429 0 59.4286 0ZM19.3429 54.8571H9.85714V24.3143H19.3571V54.8571H19.3429ZM14.6 20.1429C11.5571 20.1429 9.1 17.6714 9.1 14.6429C9.1 11.6143 11.5571 9.14286 14.6 9.14286C17.6286 9.14286 20.1 11.6143 20.1 14.6429C20.1 17.6857 17.6429 20.1429 14.6 20.1429ZM54.9 54.8571H45.4143V40C45.4143 36.4571 45.3429 31.9 40.4857 31.9C35.5429 31.9 34.7857 35.7571 34.7857 39.7429V54.8571H25.3V24.3143H34.4V28.4857H34.5286C35.8 26.0857 38.9 23.5571 43.5143 23.5571C53.1143 23.5571 54.9 29.8857 54.9 38.1143V54.8571Z",
|
|
146
|
+
fill: "currentColor"
|
|
147
|
+
}
|
|
148
|
+
), f = () => /* @__PURE__ */ C(
|
|
137
149
|
"path",
|
|
138
150
|
{
|
|
139
151
|
d: "M48.6496 6H57.4746L38.1996 28.025L60.8746 58H43.1246L29.2121 39.825L13.3121 58H4.47461L25.0871 34.4375L3.34961 6H21.5496L34.1121 22.6125L48.6496 6ZM45.5496 52.725H50.4371L18.8871 11H13.6371L45.5496 52.725Z",
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { SearchLinkProps } from '../../types/search.types';
|
|
2
|
-
declare const SearchLink: ({ icon, label, url, excerpt }: SearchLinkProps) => import("preact").JSX.Element;
|
|
2
|
+
declare const SearchLink: ({ icon, label, url, excerpt, resource }: SearchLinkProps) => import("preact").JSX.Element;
|
|
3
3
|
export default SearchLink;
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import { u as
|
|
2
|
-
import
|
|
3
|
-
import '../../../../../assets/SearchLink.css';const
|
|
4
|
-
|
|
5
|
-
/* @__PURE__ */
|
|
6
|
-
/* @__PURE__ */
|
|
7
|
-
|
|
1
|
+
import { u as a } from "../../../../../chunks/jsxRuntime.module.Bzuv3cXw.js";
|
|
2
|
+
import s from "../../../Icon/index.js";
|
|
3
|
+
import '../../../../../assets/SearchLink.css';const m = ({ icon: e, label: c, url: r, excerpt: l, resource: n }) => /* @__PURE__ */ a("a", { className: "n-search-link", href: r, children: [
|
|
4
|
+
e && /* @__PURE__ */ a("span", { className: "n-search-link-icon", children: /* @__PURE__ */ a(s, { name: e }) }),
|
|
5
|
+
/* @__PURE__ */ a("div", { className: "n-search-link-body", children: [
|
|
6
|
+
/* @__PURE__ */ a("p", { className: "n-search-link-title", children: [
|
|
7
|
+
/* @__PURE__ */ a("span", { className: "n-search-link-label", children: c }),
|
|
8
|
+
" ",
|
|
9
|
+
n && /* @__PURE__ */ a("span", { className: "n-search-link-badge", "data-resource": n, children: n })
|
|
10
|
+
] }),
|
|
11
|
+
l && /* @__PURE__ */ a("p", { className: "n-search-link-excerpt", dangerouslySetInnerHTML: { __html: l } })
|
|
8
12
|
] }),
|
|
9
|
-
/* @__PURE__ */
|
|
13
|
+
/* @__PURE__ */ a("div", { className: "n-search-link-icon", children: /* @__PURE__ */ a(s, { name: "caretRight" }) })
|
|
10
14
|
] });
|
|
11
15
|
export {
|
|
12
|
-
|
|
16
|
+
m as default
|
|
13
17
|
};
|
|
@@ -1,64 +1,63 @@
|
|
|
1
|
-
import { A as u, y as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return p(() => () => {
|
|
1
|
+
import { A as u, y as w, d as S } from "../../../../chunks/hooks.module.BFfOesdf.js";
|
|
2
|
+
function T(c, n) {
|
|
3
|
+
const t = u(null), a = u("");
|
|
4
|
+
return w(() => () => {
|
|
6
5
|
t.current && clearTimeout(t.current);
|
|
7
6
|
}, []), { reset: () => {
|
|
8
7
|
t.current && clearTimeout(t.current);
|
|
9
8
|
}, run: (h) => {
|
|
10
|
-
|
|
11
|
-
() =>
|
|
12
|
-
|
|
9
|
+
a.current = h, t.current = setTimeout(
|
|
10
|
+
() => c(a.current),
|
|
11
|
+
n
|
|
13
12
|
);
|
|
14
13
|
} };
|
|
15
14
|
}
|
|
16
|
-
function
|
|
17
|
-
const [
|
|
15
|
+
function b() {
|
|
16
|
+
const [c, n] = S({
|
|
18
17
|
searchTerm: "",
|
|
19
18
|
results: [],
|
|
20
19
|
isLoading: !1
|
|
21
|
-
}), t = u(/* @__PURE__ */ new Map()), { reset:
|
|
22
|
-
(e.length > 2 || e.length === 0) &&
|
|
23
|
-
}, 150),
|
|
20
|
+
}), t = u(/* @__PURE__ */ new Map()), { reset: a, run: l } = T((e) => {
|
|
21
|
+
(e.length > 2 || e.length === 0) && i(e);
|
|
22
|
+
}, 150), i = async (e) => {
|
|
24
23
|
if (!(window != null && window.pagefind)) return;
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
...
|
|
24
|
+
if (n((r) => ({ ...r, isLoading: !0 })), t.current.has(e)) {
|
|
25
|
+
n((r) => ({
|
|
26
|
+
...r,
|
|
28
27
|
results: t.current.get(e),
|
|
29
28
|
isLoading: !1
|
|
30
29
|
}));
|
|
31
30
|
return;
|
|
32
31
|
}
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
const
|
|
32
|
+
const o = await window.pagefind.debouncedSearch(e), d = await Promise.all(
|
|
33
|
+
o.results.slice(0, 15).map(async (r) => {
|
|
34
|
+
var f, m;
|
|
35
|
+
const s = await r.data(), g = (p) => p.replace("#", "");
|
|
37
36
|
return {
|
|
38
|
-
icon:
|
|
39
|
-
|
|
40
|
-
label: (
|
|
41
|
-
url:
|
|
42
|
-
excerpt:
|
|
37
|
+
icon: "pageWithLines",
|
|
38
|
+
resource: (f = s.meta) == null ? void 0 : f.resource,
|
|
39
|
+
label: (m = s.meta) == null ? void 0 : m.title,
|
|
40
|
+
url: s.url,
|
|
41
|
+
excerpt: g(s.excerpt)
|
|
43
42
|
};
|
|
44
43
|
})
|
|
45
44
|
);
|
|
46
|
-
|
|
47
|
-
...
|
|
48
|
-
results:
|
|
45
|
+
n((r) => ({
|
|
46
|
+
...r,
|
|
47
|
+
results: d,
|
|
49
48
|
isLoading: !1
|
|
50
49
|
}));
|
|
51
50
|
};
|
|
52
51
|
return {
|
|
53
|
-
state:
|
|
52
|
+
state: c,
|
|
54
53
|
actions: {
|
|
55
54
|
setSearchTerm: (e) => {
|
|
56
|
-
|
|
55
|
+
n((o) => ({ ...o, searchTerm: e })), a(), l(e);
|
|
57
56
|
},
|
|
58
|
-
submitSearch:
|
|
57
|
+
submitSearch: i
|
|
59
58
|
}
|
|
60
59
|
};
|
|
61
60
|
}
|
|
62
61
|
export {
|
|
63
|
-
|
|
62
|
+
b as useSearch
|
|
64
63
|
};
|
package/package.json
CHANGED
|
@@ -7,14 +7,14 @@ interface Props {
|
|
|
7
7
|
const { id, class: className, ...rest } = Astro.props;
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
<
|
|
10
|
+
<n-tabs id={id} class={className} {...rest}>
|
|
11
11
|
<slot />
|
|
12
|
-
</
|
|
12
|
+
</n-tabs>
|
|
13
13
|
|
|
14
14
|
<script>
|
|
15
15
|
/**
|
|
16
16
|
* Slightly altered version of another tabs component
|
|
17
|
-
* Adds "tabs-change" event that
|
|
17
|
+
* Adds "tabs-change" event that returns selected tab info
|
|
18
18
|
* {@link https://www.mayank.co/blog/tabs}
|
|
19
19
|
*/
|
|
20
20
|
class Tabs extends HTMLElement {
|
|
@@ -102,5 +102,5 @@ const { id, class: className, ...rest } = Astro.props;
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
customElements.define('
|
|
105
|
+
customElements.define('n-tabs', Tabs);
|
|
106
106
|
</script>
|
|
@@ -118,14 +118,17 @@ const RSSIcon: FunctionComponent = () => {
|
|
|
118
118
|
|
|
119
119
|
const CommentIcon: FunctionComponent = () => {
|
|
120
120
|
return (
|
|
121
|
-
<path
|
|
121
|
+
<path
|
|
122
|
+
d="M15.4623 44.9025C17.0744 43.7277 19.1614 43.4278 21.0359 44.1027C24.3475 45.3024 28.0591 45.9897 32.0081 45.9897C47.5917 45.9897 58.0015 35.9295 58.0015 25.9942C58.0015 16.0589 47.5917 5.99866 32.0081 5.99866C16.4246 5.99866 6.01468 16.0589 6.01468 25.9942C6.01468 29.9933 7.56429 33.8424 10.4761 37.1417C11.5508 38.3539 12.0756 39.9536 11.9507 41.5782C11.7757 43.8402 11.2384 45.9148 10.5385 47.7518C12.663 46.7646 14.4251 45.6648 15.4623 44.915V44.9025ZM2.66553 49.9763C2.89048 49.6389 3.10292 49.3015 3.30287 48.9641C4.55255 46.8895 5.73975 44.1651 5.97719 41.1033C2.22814 36.8418 0.0162028 31.6304 0.0162028 25.9942C0.0162028 11.6349 14.3376 0 32.0081 0C49.6786 0 64 11.6349 64 25.9942C64 40.3535 49.6786 51.9884 32.0081 51.9884C27.3718 51.9884 22.9729 51.1886 18.9989 49.7514C17.5118 50.8387 15.0874 52.3258 12.2131 53.5755C10.3261 54.4004 8.17664 55.1502 5.9522 55.5876C5.85222 55.6126 5.75225 55.6251 5.65228 55.6501C5.10241 55.7501 4.56505 55.8375 4.00269 55.8875C3.9777 55.8875 3.94021 55.9 3.91522 55.9C3.27788 55.9625 2.64054 56 2.0032 56C1.19091 56 0.466089 55.5126 0.153668 54.7628C-0.158753 54.0129 0.0162028 53.1631 0.57856 52.5883C1.09093 52.0634 1.55331 51.501 1.9907 50.9011C2.20315 50.6137 2.4031 50.3263 2.59055 50.0388L2.62804 49.9763H2.66553Z"
|
|
123
|
+
fill="currentColor"
|
|
124
|
+
/>
|
|
122
125
|
);
|
|
123
126
|
};
|
|
124
127
|
|
|
125
128
|
const LinkIcon: FunctionComponent = () => {
|
|
126
129
|
return (
|
|
127
130
|
<path
|
|
128
|
-
d="
|
|
131
|
+
d="M58.0309 26.6159C63.6509 21.0179 63.6509 11.9435 58.0309 6.34543C52.6809 1.01633 44.0909 0.72746 38.3909 5.69797L37.7809 6.23586C36.7809 7.10246 36.6809 8.61652 37.5509 9.61262C38.4209 10.6087 39.9409 10.7083 40.9409 9.84172L41.5509 9.30383C45.3509 5.9968 51.0709 6.18605 54.6409 9.74211C58.3809 13.4675 58.3809 19.5138 54.6409 23.2491L43.3109 34.5249C39.5709 38.2503 33.4909 38.2503 29.7509 34.5249C26.1809 30.9689 25.9909 25.2712 29.3109 21.4861L29.7809 20.9482C30.6509 19.9521 30.5509 18.448 29.5509 17.5714C28.5509 16.6948 27.0409 16.8044 26.1609 17.8005L25.6909 18.3384C20.7109 24.0161 21.0009 32.5726 26.3509 37.9017C31.9709 43.4997 41.0809 43.4997 46.7009 37.9017L58.0309 26.6159ZM5.97086 24.3847C0.350859 29.9827 0.350859 39.0571 5.97086 44.6452C11.3309 49.9843 19.9209 50.2632 25.6209 45.2927L26.2309 44.7548C27.2309 43.8882 27.3309 42.3741 26.4609 41.378C25.5909 40.382 24.0709 40.2823 23.0709 41.1489L22.4609 41.6868C18.6609 44.9939 12.9409 44.8046 9.37086 41.2486C5.63086 37.5232 5.63086 31.4769 9.37086 27.7415L20.7009 16.4757C24.4409 12.7503 30.5109 12.7503 34.2609 16.4757C37.8309 20.0318 38.0209 25.7294 34.7009 29.5146L34.1609 30.1222C33.2909 31.1183 33.3909 32.6224 34.3909 33.4989C35.3909 34.3755 36.9009 34.2659 37.7809 33.2698L38.3209 32.6622C43.3109 26.9845 43.0209 18.428 37.6709 13.089C32.0509 7.49094 22.9409 7.49094 17.3209 13.089L5.97086 24.3847Z"
|
|
129
132
|
fill="currentColor"
|
|
130
133
|
/>
|
|
131
134
|
);
|
|
@@ -169,7 +172,10 @@ const QuestionIcon: FunctionComponent = () => {
|
|
|
169
172
|
|
|
170
173
|
const LinkedInIcon: FunctionComponent = () => {
|
|
171
174
|
return (
|
|
172
|
-
<path
|
|
175
|
+
<path
|
|
176
|
+
d="M59.4286 0H4.55714C2.04286 0 0 2.07143 0 4.61429V59.3857C0 61.9286 2.04286 64 4.55714 64H59.4286C61.9429 64 64 61.9286 64 59.3857V4.61429C64 2.07143 61.9429 0 59.4286 0ZM19.3429 54.8571H9.85714V24.3143H19.3571V54.8571H19.3429ZM14.6 20.1429C11.5571 20.1429 9.1 17.6714 9.1 14.6429C9.1 11.6143 11.5571 9.14286 14.6 9.14286C17.6286 9.14286 20.1 11.6143 20.1 14.6429C20.1 17.6857 17.6429 20.1429 14.6 20.1429ZM54.9 54.8571H45.4143V40C45.4143 36.4571 45.3429 31.9 40.4857 31.9C35.5429 31.9 34.7857 35.7571 34.7857 39.7429V54.8571H25.3V24.3143H34.4V28.4857H34.5286C35.8 26.0857 38.9 23.5571 43.5143 23.5571C53.1143 23.5571 54.9 29.8857 54.9 38.1143V54.8571Z"
|
|
177
|
+
fill="currentColor"
|
|
178
|
+
/>
|
|
173
179
|
);
|
|
174
180
|
};
|
|
175
181
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
.n-search-link-
|
|
30
|
+
.n-search-link-title {
|
|
31
31
|
font-weight: var(--font-semibold, 680);
|
|
32
32
|
color: var(--color-text-2);
|
|
33
33
|
line-height: 1.5;
|
|
@@ -59,3 +59,36 @@
|
|
|
59
59
|
width: .8em;
|
|
60
60
|
opacity: .3;
|
|
61
61
|
}
|
|
62
|
+
|
|
63
|
+
.n-search-link-label {
|
|
64
|
+
margin-inline-end: var(--space-2xs);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.n-search-link-badge {
|
|
68
|
+
display: inline-block;
|
|
69
|
+
width: max-content;
|
|
70
|
+
font-size: .7em;
|
|
71
|
+
padding: .1em .4em;
|
|
72
|
+
position: relative;
|
|
73
|
+
bottom: 0.3em;
|
|
74
|
+
color: var(--n-search-link-badge-text-color, var(--neutral-500));
|
|
75
|
+
background: var(--n-search-link-badge-color, var(--neutral-100));
|
|
76
|
+
border: 1px solid var(--n-search-link-badge-border, var(--neutral-300));
|
|
77
|
+
border-radius: 3px;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.n-search-link-badge[data-resource="blog"] {
|
|
81
|
+
--n-search-link-badge-color: var(--blue-000);
|
|
82
|
+
--n-search-link-badge-text-color: var(--blue-500);
|
|
83
|
+
--n-search-link-badge-border: var(--blue-100);
|
|
84
|
+
}
|
|
85
|
+
.n-search-link-badge[data-resource="changelog"] {
|
|
86
|
+
--n-search-link-badge-color: var(--gold-000);
|
|
87
|
+
--n-search-link-badge-text-color: var(--gold-500);
|
|
88
|
+
--n-search-link-badge-border: var(--gold-100);
|
|
89
|
+
}
|
|
90
|
+
.n-search-link-badge[data-resource="guide"] {
|
|
91
|
+
--n-search-link-badge-color: var(--teal-000);
|
|
92
|
+
--n-search-link-badge-text-color: var(--teal-500);
|
|
93
|
+
--n-search-link-badge-border: var(--teal-100);
|
|
94
|
+
}
|
|
@@ -3,7 +3,7 @@ import './SearchLink.css';
|
|
|
3
3
|
|
|
4
4
|
import Icon from '../../../Icon';
|
|
5
5
|
|
|
6
|
-
const SearchLink = ({ icon, label, url, excerpt }: SearchLinkProps) => {
|
|
6
|
+
const SearchLink = ({ icon, label, url, excerpt, resource }: SearchLinkProps) => {
|
|
7
7
|
return (
|
|
8
8
|
<a className="n-search-link" href={url}>
|
|
9
9
|
{icon && (
|
|
@@ -12,7 +12,9 @@ const SearchLink = ({ icon, label, url, excerpt }: SearchLinkProps) => {
|
|
|
12
12
|
</span>
|
|
13
13
|
)}
|
|
14
14
|
<div className="n-search-link-body">
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
<p className="n-search-link-title">
|
|
17
|
+
<span className="n-search-link-label">{label}</span> {resource && <span className="n-search-link-badge" data-resource={resource}>{resource}</span>}</p>
|
|
16
18
|
{excerpt && (
|
|
17
19
|
<p className="n-search-link-excerpt" dangerouslySetInnerHTML={{ __html: excerpt }} />
|
|
18
20
|
)}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useState, useRef } from 'preact/hooks';
|
|
2
2
|
import type { SearchState } from '../types/search.types';
|
|
3
3
|
import { useTimeout } from '../../../../utils/useTimeout';
|
|
4
|
-
import { getSiteIcon } from '../utils';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Hook that encapsulates client-side search logic:
|
|
@@ -44,12 +43,14 @@ export function useSearch() {
|
|
|
44
43
|
const results = await Promise.all(
|
|
45
44
|
search.results.slice(0, 15).map(async (result: any) => {
|
|
46
45
|
const data = await result.data();
|
|
46
|
+
const removeAnchorLink = (text: string) => text.replace("#", '')
|
|
47
|
+
|
|
47
48
|
return {
|
|
48
|
-
icon:
|
|
49
|
-
|
|
49
|
+
icon: 'pageWithLines',
|
|
50
|
+
resource: data.meta?.resource,
|
|
50
51
|
label: data.meta?.title,
|
|
51
52
|
url: data.url,
|
|
52
|
-
excerpt: data.excerpt,
|
|
53
|
+
excerpt: removeAnchorLink(data.excerpt),
|
|
53
54
|
};
|
|
54
55
|
})
|
|
55
56
|
);
|
|
@@ -16,20 +16,25 @@ button,
|
|
|
16
16
|
border: 1px solid var(--color-border);
|
|
17
17
|
border-radius: var(--radius-m);
|
|
18
18
|
|
|
19
|
-
/* Button press */
|
|
20
|
-
&:active:not(:disabled) {
|
|
21
|
-
top: 1px;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
19
|
/* Button icons */
|
|
25
20
|
svg {
|
|
26
21
|
flex: none;
|
|
27
22
|
height: var(--button-icon-size, 1.2cap);
|
|
28
23
|
width: auto;
|
|
29
24
|
}
|
|
30
|
-
}
|
|
31
25
|
|
|
32
|
-
|
|
26
|
+
/* Button states */
|
|
27
|
+
&:active:not(:disabled) {
|
|
28
|
+
top: 1px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&:disabled {
|
|
32
|
+
color: var(--color-disabled-bg);
|
|
33
|
+
background-color: var(--color-disabled-bg);
|
|
34
|
+
border-color: var(--color-disabled-bg);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Button variants */
|
|
33
38
|
&[data-button-variant='primary'] {
|
|
34
39
|
color: var(--color-text-inverse);
|
|
35
40
|
background-color: var(--color-brand);
|
|
@@ -40,4 +45,16 @@ button,
|
|
|
40
45
|
background-color: var(--color-brand-alt);
|
|
41
46
|
border-color: var(--color-brand-alt);
|
|
42
47
|
}
|
|
48
|
+
|
|
49
|
+
&[data-button-variant='text'] {
|
|
50
|
+
color: currentColor;
|
|
51
|
+
background-color: transparent;
|
|
52
|
+
border-color: transparent;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&[data-button-variant='ghost'] {
|
|
56
|
+
color: currentColor;
|
|
57
|
+
background-color: transparent;
|
|
58
|
+
border-color: currentColor;
|
|
59
|
+
}
|
|
43
60
|
}
|
package/packages/styles/tabs.css
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
|
-
[role='tablist'] {
|
|
1
|
+
.tabs [role='tablist'] {
|
|
2
2
|
display: flex;
|
|
3
|
-
|
|
3
|
+
isolation: isolate;
|
|
4
|
+
border: var(--_border);
|
|
4
5
|
}
|
|
5
6
|
|
|
6
|
-
[role='tab'] {
|
|
7
|
-
|
|
7
|
+
.tabs [role='tab'] {
|
|
8
|
+
position: relative;
|
|
9
|
+
border-color: transparent;
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
/* Remove button push/click style */
|
|
12
|
+
&:active:not(:disabled) {
|
|
13
|
+
top: unset;
|
|
11
14
|
}
|
|
12
15
|
}
|
|
13
16
|
|
|
14
|
-
[role='
|
|
15
|
-
|
|
17
|
+
.tabs [role='tab'][aria-selected='true'] {
|
|
18
|
+
/* Bring selected tab to layer above others to avoid clipping outline styles */
|
|
19
|
+
z-index: 1;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.tabs [role='tabpanel'] {
|
|
23
|
+
border: var(--_border);
|
|
24
|
+
border-block-start: unset;
|
|
25
|
+
padding: var(--_padding);
|
|
16
26
|
}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
--color-bg-1: var(--neutral-000);
|
|
17
17
|
--color-bg-2: var(--neutral-100);
|
|
18
18
|
--color-bg-3: var(--neutral-200);
|
|
19
|
+
--color-border: var(--neutral-200);
|
|
19
20
|
--color-brand: var(--blue-700);
|
|
20
21
|
--color-disabled-bg: var(--neutral-200);
|
|
21
22
|
--color-disabled-border: var(--neutral-400);
|
|
@@ -146,6 +147,7 @@
|
|
|
146
147
|
--color-bg-1: var(--neutral-000);
|
|
147
148
|
--color-bg-2: var(--neutral-100);
|
|
148
149
|
--color-bg-3: var(--neutral-200);
|
|
150
|
+
--color-border: var(--neutral-200);
|
|
149
151
|
--color-brand: var(--blue-700);
|
|
150
152
|
--color-disabled-bg: var(--neutral-200);
|
|
151
153
|
--color-disabled-border: var(--neutral-400);
|
|
@@ -180,6 +182,7 @@
|
|
|
180
182
|
--color-bg-1: var(--neutral-000);
|
|
181
183
|
--color-bg-2: var(--neutral-100);
|
|
182
184
|
--color-bg-3: var(--neutral-200);
|
|
185
|
+
--color-border: var(--neutral-200);
|
|
183
186
|
--color-brand: var(--blue-700);
|
|
184
187
|
--color-disabled-bg: var(--neutral-200);
|
|
185
188
|
--color-disabled-border: var(--neutral-400);
|
|
@@ -214,6 +217,7 @@
|
|
|
214
217
|
--color-bg-1: var(--neutral-800);
|
|
215
218
|
--color-bg-2: var(--neutral-700);
|
|
216
219
|
--color-bg-3: var(--neutral-600);
|
|
220
|
+
--color-border: var(--neutral-200);
|
|
217
221
|
--color-brand: var(--teal-200);
|
|
218
222
|
--color-disabled-bg: var(--neutral-600);
|
|
219
223
|
--color-disabled-border: var(--neutral-400);
|
|
@@ -248,6 +252,7 @@
|
|
|
248
252
|
--color-bg-1: var(--neutral-800);
|
|
249
253
|
--color-bg-2: var(--neutral-700);
|
|
250
254
|
--color-bg-3: var(--neutral-600);
|
|
255
|
+
--color-border: var(--neutral-200);
|
|
251
256
|
--color-brand: var(--teal-200);
|
|
252
257
|
--color-disabled-bg: var(--neutral-600);
|
|
253
258
|
--color-disabled-border: var(--neutral-400);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { IconName } from '../../Icon';
|
|
2
|
-
|
|
3
|
-
const SITE_ICONS: Record<string, IconName> = {
|
|
4
|
-
blog: 'book',
|
|
5
|
-
changelog: 'rss',
|
|
6
|
-
doc: 'pageWithLines',
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export function getSiteIcon(contentType?: string): IconName {
|
|
10
|
-
return contentType ? SITE_ICONS[contentType] || 'pageWithLines' : 'pageWithLines';
|
|
11
|
-
}
|