highsoft-ui 1.0.139 → 1.0.141

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 (71) hide show
  1. package/README.md +56 -3
  2. package/dist/{Button-Dc8NFRWQ.js → Button-awCDIEXQ.js} +1 -1
  3. package/dist/{ButtonGroup-CYmrw7gQ.js → ButtonGroup-Cwn0djAz.js} +1 -1
  4. package/dist/{Checkbox-CErz7eBz.js → Checkbox-CrF45NBl.js} +1 -1
  5. package/dist/CodeBlock-BIdeK3gz.js +241 -0
  6. package/dist/{CookiePolicyModal-DdXZ2d36.js → CookiePolicyModal-CTA02JGV.js} +2 -2
  7. package/dist/{CopyCode-DH9Jh7PD.js → CopyCode-QiPNPCQN.js} +3 -3
  8. package/dist/{Dropdown-DbXr3sb-.js → Dropdown-0Vn7yro7.js} +1 -1
  9. package/dist/{Footer-DtFs2Sgb.js → Footer-BlCmsIDd.js} +9 -9
  10. package/dist/{FooterBottom-Dtttgp4F.js → FooterBottom-CF5ctutk.js} +1 -1
  11. package/dist/{FooterHelp-COjjt6h7.js → FooterHelp-BthIJ2ye.js} +1 -1
  12. package/dist/{FooterLinks-DZ0uH7HO.js → FooterLinks-BBOOTdRf.js} +2 -2
  13. package/dist/{Header-C7MCiwiz.js → Header-DY4mJxHm.js} +26 -26
  14. package/dist/{InputGrouped-CIokpRn5.js → InputGrouped-DyxraUpb.js} +12 -12
  15. package/dist/InputSolo-DUdKtZjX.js +126 -0
  16. package/dist/{Label-BM4vL0vA.js → Label-DdXaM1Bo.js} +1 -1
  17. package/dist/{Logo-DTfFHBgU.js → Logo-Bz0G2G-k.js} +69 -92
  18. package/dist/{NewsletterSignup-Dw9YbhEh.js → NewsletterSignup-BMRnrbw8.js} +5 -5
  19. package/dist/{Notification-BgmhEw6w.js → Notification-DM31Uzfz.js} +3 -3
  20. package/dist/{PrefPanel-BG4jW8wc.js → PrefPanel-DDD8R_-o.js} +5 -5
  21. package/dist/{RoadmapDetails-DXxJNZh9.js → RoadmapDetails-DsLtsnqg.js} +6 -6
  22. package/dist/{Search-CpJ2XTLG.js → Search-CDOpNByw.js} +12 -12
  23. package/dist/SearchDropdown-D65lySm_.js +176 -0
  24. package/dist/{YoutubeModal-DGj2INF0.js → YoutubeModal-CZgbaRB6.js} +1 -1
  25. package/dist/bash-kQhoNpCD.js +181 -0
  26. package/dist/components/Button/index.js +1 -1
  27. package/dist/components/ButtonGroup/index.js +1 -1
  28. package/dist/components/Checkbox/index.js +1 -1
  29. package/dist/components/CodeBlock/index.js +1 -1
  30. package/dist/components/CopyCode/index.js +1 -1
  31. package/dist/components/Dropdown/index.js +1 -1
  32. package/dist/components/Footer/CookiePolicyModal.js +1 -1
  33. package/dist/components/Footer/FooterBottom.js +1 -1
  34. package/dist/components/Footer/FooterHelp.js +1 -1
  35. package/dist/components/Footer/FooterLinks.js +1 -1
  36. package/dist/components/Footer/YoutubeModal.js +1 -1
  37. package/dist/components/Footer/index.js +1 -1
  38. package/dist/components/Header/index.js +1 -1
  39. package/dist/components/InputGrouped/index.js +1 -1
  40. package/dist/components/InputSolo/index.js +1 -1
  41. package/dist/components/Label/index.js +1 -1
  42. package/dist/components/Logo/index.js +1 -1
  43. package/dist/components/Modal/ModalContactFooter.js +2 -2
  44. package/dist/components/Modal/index.js +2 -2
  45. package/dist/components/NewsletterSignup/index.js +1 -1
  46. package/dist/components/Notification/index.js +1 -1
  47. package/dist/components/PrefPanel/index.js +1 -1
  48. package/dist/components/RoadmapDetails/index.js +1 -1
  49. package/dist/components/Search/index.js +1 -1
  50. package/dist/components/SearchDropdown/index.js +2 -0
  51. package/dist/create-element-CWTzyETe.js +217 -0
  52. package/dist/css-FhcewZZo.js +61 -0
  53. package/dist/{esm-CDDjSK4f.js → esm-VMwHsplm.js} +26 -12
  54. package/dist/highsoft-ui.css +1 -1
  55. package/dist/json-Bfzk2Msc.js +32 -0
  56. package/dist/jsx-B57trbk8.js +5 -0
  57. package/dist/jsx-hpSEtOci.js +182 -0
  58. package/dist/lib/components/CodeBlock/index.d.ts +7 -1
  59. package/dist/lib/components/InputSolo/index.d.ts +11 -0
  60. package/dist/lib/components/Logo/index.d.ts +6 -1
  61. package/dist/lib/components/SearchDropdown/index.d.ts +69 -0
  62. package/dist/lib/main.d.ts +3 -1
  63. package/dist/main.js +29 -28
  64. package/dist/markup-BC51nDBv.js +5 -0
  65. package/dist/markup-BhBs-nbv.js +128 -0
  66. package/dist/prism-light-B3yrtgki.js +1954 -0
  67. package/dist/python-Bt2XI9DF.js +66 -0
  68. package/dist/tsx-CJFgwLf7.js +54 -0
  69. package/package.json +13 -2
  70. package/dist/CodeBlock-DtYddgyU.js +0 -3044
  71. package/dist/InputSolo-2RPRX0wM.js +0 -123
@@ -0,0 +1,32 @@
1
+ e.displayName = "json", e.aliases = ["webmanifest"];
2
+ function e(e) {
3
+ e.languages.json = {
4
+ property: {
5
+ pattern: /(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,
6
+ lookbehind: !0,
7
+ greedy: !0
8
+ },
9
+ string: {
10
+ pattern: /(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,
11
+ lookbehind: !0,
12
+ greedy: !0
13
+ },
14
+ comment: {
15
+ pattern: /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,
16
+ greedy: !0
17
+ },
18
+ number: /-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,
19
+ punctuation: /[{}[\],]/,
20
+ operator: /:/,
21
+ boolean: /\b(?:false|true)\b/,
22
+ null: {
23
+ pattern: /\bnull\b/,
24
+ alias: "keyword"
25
+ }
26
+ }, e.languages.webmanifest = e.languages.json;
27
+ }
28
+ //#endregion
29
+ //#region node_modules/react-syntax-highlighter/dist/esm/languages/prism/json.js
30
+ var t = e;
31
+ //#endregion
32
+ export { t as default };
@@ -0,0 +1,5 @@
1
+ import { t as e } from "./jsx-hpSEtOci.js";
2
+ //#region node_modules/react-syntax-highlighter/dist/esm/languages/prism/jsx.js
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,182 @@
1
+ import { t as e } from "./markup-BhBs-nbv.js";
2
+ t.displayName = "clike", t.aliases = [];
3
+ function t(e) {
4
+ e.languages.clike = {
5
+ comment: [{
6
+ pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
7
+ lookbehind: !0,
8
+ greedy: !0
9
+ }, {
10
+ pattern: /(^|[^\\:])\/\/.*/,
11
+ lookbehind: !0,
12
+ greedy: !0
13
+ }],
14
+ string: {
15
+ pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
16
+ greedy: !0
17
+ },
18
+ "class-name": {
19
+ pattern: /(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,
20
+ lookbehind: !0,
21
+ inside: { punctuation: /[.\\]/ }
22
+ },
23
+ keyword: /\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,
24
+ boolean: /\b(?:false|true)\b/,
25
+ function: /\b\w+(?=\()/,
26
+ number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
27
+ operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,
28
+ punctuation: /[{}[\];(),.:]/
29
+ };
30
+ }
31
+ n.displayName = "javascript", n.aliases = ["js"];
32
+ function n(e) {
33
+ e.register(t), e.languages.javascript = e.languages.extend("clike", {
34
+ "class-name": [e.languages.clike["class-name"], {
35
+ pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,
36
+ lookbehind: !0
37
+ }],
38
+ keyword: [{
39
+ pattern: /((?:^|\})\s*)catch\b/,
40
+ lookbehind: !0
41
+ }, {
42
+ pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,
43
+ lookbehind: !0
44
+ }],
45
+ function: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
46
+ number: {
47
+ pattern: RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),
48
+ lookbehind: !0
49
+ },
50
+ operator: /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/
51
+ }), e.languages.javascript["class-name"][0].pattern = /(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/, e.languages.insertBefore("javascript", "keyword", {
52
+ regex: {
53
+ pattern: RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))"),
54
+ lookbehind: !0,
55
+ greedy: !0,
56
+ inside: {
57
+ "regex-source": {
58
+ pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/,
59
+ lookbehind: !0,
60
+ alias: "language-regex",
61
+ inside: e.languages.regex
62
+ },
63
+ "regex-delimiter": /^\/|\/$/,
64
+ "regex-flags": /^[a-z]+$/
65
+ }
66
+ },
67
+ "function-variable": {
68
+ pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,
69
+ alias: "function"
70
+ },
71
+ parameter: [
72
+ {
73
+ pattern: /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,
74
+ lookbehind: !0,
75
+ inside: e.languages.javascript
76
+ },
77
+ {
78
+ pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,
79
+ lookbehind: !0,
80
+ inside: e.languages.javascript
81
+ },
82
+ {
83
+ pattern: /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,
84
+ lookbehind: !0,
85
+ inside: e.languages.javascript
86
+ },
87
+ {
88
+ pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,
89
+ lookbehind: !0,
90
+ inside: e.languages.javascript
91
+ }
92
+ ],
93
+ constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/
94
+ }), e.languages.insertBefore("javascript", "string", {
95
+ hashbang: {
96
+ pattern: /^#!.*/,
97
+ greedy: !0,
98
+ alias: "comment"
99
+ },
100
+ "template-string": {
101
+ pattern: /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,
102
+ greedy: !0,
103
+ inside: {
104
+ "template-punctuation": {
105
+ pattern: /^`|`$/,
106
+ alias: "string"
107
+ },
108
+ interpolation: {
109
+ pattern: /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,
110
+ lookbehind: !0,
111
+ inside: {
112
+ "interpolation-punctuation": {
113
+ pattern: /^\$\{|\}$/,
114
+ alias: "punctuation"
115
+ },
116
+ rest: e.languages.javascript
117
+ }
118
+ },
119
+ string: /[\s\S]+/
120
+ }
121
+ },
122
+ "string-property": {
123
+ pattern: /((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,
124
+ lookbehind: !0,
125
+ greedy: !0,
126
+ alias: "property"
127
+ }
128
+ }), e.languages.insertBefore("javascript", "operator", { "literal-property": {
129
+ pattern: /((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,
130
+ lookbehind: !0,
131
+ alias: "property"
132
+ } }), e.languages.markup && (e.languages.markup.tag.addInlined("script", "javascript"), e.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)", "javascript")), e.languages.js = e.languages.javascript;
133
+ }
134
+ r.displayName = "jsx", r.aliases = [];
135
+ function r(t) {
136
+ t.register(n), t.register(e), (function(e) {
137
+ var t = e.util.clone(e.languages.javascript), n = "(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)", r = "(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})", i = "(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})";
138
+ function a(e, t) {
139
+ return e = e.replace(/<S>/g, function() {
140
+ return n;
141
+ }).replace(/<BRACES>/g, function() {
142
+ return r;
143
+ }).replace(/<SPREAD>/g, function() {
144
+ return i;
145
+ }), RegExp(e, t);
146
+ }
147
+ i = a(i).source, e.languages.jsx = e.languages.extend("markup", t), e.languages.jsx.tag.pattern = a("<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>"), e.languages.jsx.tag.inside.tag.pattern = /^<\/?[^\s>\/]*/, e.languages.jsx.tag.inside["attr-value"].pattern = /=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/, e.languages.jsx.tag.inside.tag.inside["class-name"] = /^[A-Z]\w*(?:\.[A-Z]\w*)*$/, e.languages.jsx.tag.inside.comment = t.comment, e.languages.insertBefore("inside", "attr-name", { spread: {
148
+ pattern: a("<SPREAD>"),
149
+ inside: e.languages.jsx
150
+ } }, e.languages.jsx.tag), e.languages.insertBefore("inside", "special-attr", { script: {
151
+ pattern: a("=<BRACES>"),
152
+ alias: "language-javascript",
153
+ inside: {
154
+ "script-punctuation": {
155
+ pattern: /^=(?=\{)/,
156
+ alias: "punctuation"
157
+ },
158
+ rest: e.languages.jsx
159
+ }
160
+ } }, e.languages.jsx.tag);
161
+ var o = function(e) {
162
+ return e ? typeof e == "string" ? e : typeof e.content == "string" ? e.content : e.content.map(o).join("") : "";
163
+ }, s = function(t) {
164
+ for (var n = [], r = 0; r < t.length; r++) {
165
+ var i = t[r], a = !1;
166
+ if (typeof i != "string" && (i.type === "tag" && i.content[0] && i.content[0].type === "tag" ? i.content[0].content[0].content === "</" ? n.length > 0 && n[n.length - 1].tagName === o(i.content[0].content[1]) && n.pop() : i.content[i.content.length - 1].content === "/>" || n.push({
167
+ tagName: o(i.content[0].content[1]),
168
+ openedBraces: 0
169
+ }) : n.length > 0 && i.type === "punctuation" && i.content === "{" ? n[n.length - 1].openedBraces++ : n.length > 0 && n[n.length - 1].openedBraces > 0 && i.type === "punctuation" && i.content === "}" ? n[n.length - 1].openedBraces-- : a = !0), (a || typeof i == "string") && n.length > 0 && n[n.length - 1].openedBraces === 0) {
170
+ var c = o(i);
171
+ r < t.length - 1 && (typeof t[r + 1] == "string" || t[r + 1].type === "plain-text") && (c += o(t[r + 1]), t.splice(r + 1, 1)), r > 0 && (typeof t[r - 1] == "string" || t[r - 1].type === "plain-text") && (c = o(t[r - 1]) + c, t.splice(r - 1, 1), r--), t[r] = new e.Token("plain-text", c, null, c);
172
+ }
173
+ i.content && typeof i.content != "string" && s(i.content);
174
+ }
175
+ };
176
+ e.hooks.add("after-tokenize", function(e) {
177
+ e.language !== "jsx" && e.language !== "tsx" || s(e.tokens);
178
+ });
179
+ })(t);
180
+ }
181
+ //#endregion
182
+ export { n, r as t };
@@ -9,7 +9,8 @@ export interface CodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ch
9
9
  code: string;
10
10
  /**
11
11
  * Pre-highlighted HTML (e.g. from Shiki). Takes precedence over the built-in
12
- * highlighter — use it for SSR or custom themes. Rendered as-is.
12
+ * highlighter — use it for SSR-highlighted output or custom themes. Rendered
13
+ * as-is.
13
14
  */
14
15
  html?: string;
15
16
  /** Language key — drives the header icon/badge/label and the highlighter grammar. */
@@ -34,6 +35,11 @@ export interface CodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ch
34
35
  * out of the box from plain `code`; all colors come from `--HS-*` / token-driven
35
36
  * CSS vars, so light/dark mode is automatic.
36
37
  *
38
+ * The built-in Prism highlighter loads on the client only (it is not SSR-safe),
39
+ * so server-rendered output shows the code unhighlighted and upgrades to colored
40
+ * tokens after hydration. Line numbers and diff tints render immediately on both
41
+ * server and client. For SSR-highlighted output, pass pre-rendered `html`.
42
+ *
37
43
  * @example
38
44
  * ```tsx
39
45
  * <CodeBlock lang="ts" code={src} />
@@ -1,8 +1,19 @@
1
1
  import { InputHTMLAttributes, ReactNode } from 'react';
2
2
  export type InputSoloVariant = 'default' | 'white';
3
+ /**
4
+ * Field size. Each value pairs with the matching Button/ButtonGroup size for
5
+ * inline layouts:
6
+ * - `100` — compact (28px tall). Matches the outer height of a `ButtonGroup`
7
+ * at `size={100}`, so the two sit flush side by side.
8
+ * - `200` — default (40px tall).
9
+ * - `300` — large (48px tall).
10
+ */
11
+ export type InputSoloSize = 100 | 200 | 300;
3
12
  export interface InputSoloProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
4
13
  /** Label shown above the input */
5
14
  label?: string;
15
+ /** Field size — `100` (compact), `200` (default), `300` (large) */
16
+ size?: InputSoloSize;
6
17
  /** Icon element rendered to the left of the input */
7
18
  iconLeft?: ReactNode;
8
19
  /** Button or action element rendered on the right */
@@ -4,5 +4,10 @@ export interface LogoProps extends SVGProps<SVGSVGElement> {
4
4
  showText?: boolean;
5
5
  light?: boolean;
6
6
  withLink?: boolean;
7
+ /**
8
+ * Render the mark as single-color line art — the symbol facets are stroked
9
+ * instead of filled. Use for grayscale printing, engraving, or apparel.
10
+ */
11
+ outline?: boolean;
7
12
  }
8
- export declare function Logo({ title, light, showText, withLink, className, ...props }: LogoProps): import("react").JSX.Element;
13
+ export declare function Logo({ title, light, showText, withLink, outline, className, ...props }: LogoProps): import("react").JSX.Element;
@@ -0,0 +1,69 @@
1
+ import { ReactNode } from 'react';
2
+ import { InputSoloSize, InputSoloVariant } from '../InputSolo';
3
+ export interface SearchDropdownItem {
4
+ /** Stable unique key for the row. */
5
+ id: string;
6
+ /** Text shown in the row and used for match highlighting. */
7
+ label: string;
8
+ /** Optional short badge shown on the right (e.g. a category/kind). */
9
+ kind?: ReactNode;
10
+ /** Optional leading icon, rendered before the label. */
11
+ iconLeft?: ReactNode;
12
+ /** Render the row dimmed and non-selectable. */
13
+ disabled?: boolean;
14
+ /**
15
+ * Offset into `label` from which highlighting may start. Use to skip a
16
+ * prefix you don't want matched — e.g. for `Highcharts.Chart`, pass the index
17
+ * just after the dot so only `Chart` highlights. Defaults to `0`.
18
+ */
19
+ highlightFrom?: number;
20
+ }
21
+ export interface SearchDropdownProps<T extends SearchDropdownItem = SearchDropdownItem> {
22
+ /** Items to search over (built-in filter) or the already-filtered list. */
23
+ items: T[];
24
+ /** Controlled query value. */
25
+ value?: string;
26
+ /** Initial query for uncontrolled usage. */
27
+ defaultValue?: string;
28
+ /** Called on every query change — run your own filter/rank here if needed. */
29
+ onQueryChange?: (query: string) => void;
30
+ /** Called when an item is chosen (click or Enter). */
31
+ onSelect?: (item: T) => void;
32
+ /**
33
+ * How to filter `items` against the query:
34
+ * - `true` (default) — built-in case-insensitive substring match on `label`.
35
+ * - a function — your own predicate `(item, query) => boolean`.
36
+ * - `false` — no filtering; `items` is assumed pre-filtered/ranked by the
37
+ * caller (pair with `onQueryChange`). Highlighting still applies.
38
+ */
39
+ filter?: boolean | ((item: T, query: string) => boolean);
40
+ /** Placeholder for the input. */
41
+ placeholder?: string;
42
+ /** Visible label above the input. Omit for a bare field. */
43
+ label?: string;
44
+ /** Accessible name for the input. Defaults to `label` then `placeholder`. */
45
+ 'aria-label'?: string;
46
+ /** Field size, forwarded to the underlying `InputSolo`. Default `200`. */
47
+ size?: InputSoloSize;
48
+ /** Surface variant, forwarded to `InputSolo`. */
49
+ variant?: InputSoloVariant;
50
+ /** Leading icon for the input. Defaults to a search glyph. */
51
+ iconLeft?: ReactNode;
52
+ /** Render row labels in a monospace font (handy for code/API names). */
53
+ mono?: boolean;
54
+ /** Minimum query length before the popover opens. Default `1`. */
55
+ minChars?: number;
56
+ /**
57
+ * Shown when the query is long enough but nothing matches. Defaults to
58
+ * `'No results'`; pass `null` to hide the popover instead.
59
+ */
60
+ emptyState?: ReactNode;
61
+ /** Max popover height before it scrolls. Number → px. Default `320`. */
62
+ maxHeight?: number | string;
63
+ /** Class applied to the positioning wrapper. */
64
+ className?: string;
65
+ }
66
+ export declare function SearchDropdown<T extends SearchDropdownItem = SearchDropdownItem>({ items, value, defaultValue, onQueryChange, onSelect, filter, placeholder, label, 'aria-label': ariaLabel, size, variant, iconLeft, mono, minChars, emptyState, maxHeight, className }: SearchDropdownProps<T>): import("react").JSX.Element;
67
+ export declare namespace SearchDropdown {
68
+ var displayName: string;
69
+ }
@@ -9,7 +9,8 @@ export type { IconProps, IconSize } from './components/Icon';
9
9
  export type { LinkProps, LinkVariant } from './components/Link';
10
10
  export type { ProductIconProps, ProductIconTheme, ProductIconName } from './components/ProductIcon';
11
11
  export type { FrameworkIconProps, FrameworkIconTheme, FrameworkIconName } from './components/FrameworkIcon';
12
- export type { InputSoloProps, InputSoloVariant } from './components/InputSolo';
12
+ export type { InputSoloProps, InputSoloVariant, InputSoloSize } from './components/InputSolo';
13
+ export type { SearchDropdownProps, SearchDropdownItem } from './components/SearchDropdown';
13
14
  export type { InputGroupedProps, SelectGroupedProps, FormGroupProps, FormRowProps } from './components/InputGrouped';
14
15
  export type { BoxProps } from './components/Box';
15
16
  export type { HeaderProps, HeaderPosition, SubHeaderItem } from './components/Header';
@@ -25,6 +26,7 @@ export { FrameworkIcon } from './components/FrameworkIcon';
25
26
  export { Button } from './components/Button';
26
27
  export { ButtonGroup } from './components/ButtonGroup';
27
28
  export { InputSolo } from './components/InputSolo';
29
+ export { SearchDropdown } from './components/SearchDropdown';
28
30
  export { InputGrouped, SelectGrouped, FormGroup, FormRow } from './components/InputGrouped';
29
31
  export { Container } from './components/Container';
30
32
  export { DiscordInvite } from './components/DiscordInvite';
package/dist/main.js CHANGED
@@ -1,33 +1,34 @@
1
1
  import { c as e, d as t, r as n, s as r, u as i } from "./utils-K9S_6_Eq.js";
2
2
  import { t as a } from "./Box-BZgeSeCV.js";
3
- import { t as o } from "./Button-Dc8NFRWQ.js";
4
- import { t as s } from "./CopyCode-DH9Jh7PD.js";
5
- import { t as c } from "./CodeBlock-DtYddgyU.js";
6
- import { t as l } from "./FrameworkIcon-Ds6WrxO0.js";
3
+ import { t as o } from "./Button-awCDIEXQ.js";
4
+ import { t as s } from "./CopyCode-QiPNPCQN.js";
5
+ import { t as c } from "./FrameworkIcon-Ds6WrxO0.js";
6
+ import { t as l } from "./CodeBlock-BIdeK3gz.js";
7
7
  import { t as u } from "./Icon-VeXJMj8Q.js";
8
8
  import { t as d } from "./Link-CYR92_U0.js";
9
9
  import { t as f } from "./ProductIcon-DFLAYWbu.js";
10
- import { t as p } from "./ButtonGroup-CYmrw7gQ.js";
11
- import { t as m } from "./InputSolo-2RPRX0wM.js";
12
- import { i as h, n as g, r as _, t as v } from "./InputGrouped-CIokpRn5.js";
13
- import { t as y } from "./Container-BDssaLig.js";
14
- import { t as b } from "./DiscordInvite-CLYxexdH.js";
15
- import { t as x } from "./Heading-DNDHqYWO.js";
16
- import { t as S } from "./Typography-AvvBRu-u.js";
17
- import { t as C } from "./Logo-DTfFHBgU.js";
18
- import { t as w } from "./NewsletterSignup-Dw9YbhEh.js";
19
- import { n as T, r as E, t as D } from "./Dropdown-DbXr3sb-.js";
20
- import { t as O } from "./PrefPanel-BG4jW8wc.js";
21
- import { n as k, t as A } from "./Label-BM4vL0vA.js";
22
- import { t as j } from "./Footer-DtFs2Sgb.js";
23
- import { n as M } from "./GPTInput-C0YG1990.js";
24
- import { t as N } from "./Notification-BgmhEw6w.js";
25
- import { n as P, t as F } from "./Header-C7MCiwiz.js";
26
- import { t as I } from "./Tabs-BuDaPqdN.js";
27
- import { n as L, t as R } from "./RadioBox-o1Ssyj0s.js";
28
- import { n as z, t as B } from "./Checkbox-CErz7eBz.js";
29
- import { Modal as V } from "./components/Modal/index.js";
30
- import { t as H } from "./RoadmapDetails-DXxJNZh9.js";
31
- import { ModalContactFooter as U } from "./components/Modal/ModalContactFooter.js";
32
- import { ThemeLoader as W, themeLoaderScript as G } from "./components/ThemeLoader/index.js";
33
- export { a as Box, o as Button, p as ButtonGroup, B as Checkbox, z as CheckboxGroup, c as CodeBlock, y as Container, s as CopyCode, b as DiscordInvite, D as Dropdown, T as DropdownItem, E as DropdownSeparator, j as Footer, v as FormGroup, g as FormRow, l as FrameworkIcon, M as GPTInput, F as Header, x as Heading, u as Icon, _ as InputGrouped, m as InputSolo, A as Label, d as Link, C as Logo, V as Modal, U as ModalContactFooter, k as NewTag, w as NewsletterSignup, N as Notification, O as PrefPanel, f as ProductIcon, R as RadioBox, L as RadioBoxGroup, H as RoadmapDetails, h as SelectGrouped, P as SubHeader, I as Tabs, W as ThemeLoader, i as ThemeProvider, S as Typography, G as themeLoaderScript, n as useClipboard, t as useNextTheme, r as useSuccessFlash, e as useTheme };
10
+ import { t as p } from "./ButtonGroup-Cwn0djAz.js";
11
+ import { t as m } from "./InputSolo-DUdKtZjX.js";
12
+ import { t as h } from "./SearchDropdown-D65lySm_.js";
13
+ import { i as g, n as _, r as v, t as y } from "./InputGrouped-DyxraUpb.js";
14
+ import { t as b } from "./Container-BDssaLig.js";
15
+ import { t as x } from "./DiscordInvite-CLYxexdH.js";
16
+ import { t as S } from "./Heading-DNDHqYWO.js";
17
+ import { t as C } from "./Typography-AvvBRu-u.js";
18
+ import { t as w } from "./Logo-Bz0G2G-k.js";
19
+ import { t as T } from "./NewsletterSignup-BMRnrbw8.js";
20
+ import { n as E, r as D, t as O } from "./Dropdown-0Vn7yro7.js";
21
+ import { t as k } from "./PrefPanel-DDD8R_-o.js";
22
+ import { n as A, t as j } from "./Label-DdXaM1Bo.js";
23
+ import { t as M } from "./Footer-BlCmsIDd.js";
24
+ import { n as N } from "./GPTInput-C0YG1990.js";
25
+ import { t as P } from "./Notification-DM31Uzfz.js";
26
+ import { n as F, t as I } from "./Header-DY4mJxHm.js";
27
+ import { t as L } from "./Tabs-BuDaPqdN.js";
28
+ import { n as R, t as z } from "./RadioBox-o1Ssyj0s.js";
29
+ import { n as B, t as V } from "./Checkbox-CrF45NBl.js";
30
+ import { Modal as H } from "./components/Modal/index.js";
31
+ import { t as U } from "./RoadmapDetails-DsLtsnqg.js";
32
+ import { ModalContactFooter as W } from "./components/Modal/ModalContactFooter.js";
33
+ import { ThemeLoader as G, themeLoaderScript as K } from "./components/ThemeLoader/index.js";
34
+ export { a as Box, o as Button, p as ButtonGroup, V as Checkbox, B as CheckboxGroup, l as CodeBlock, b as Container, s as CopyCode, x as DiscordInvite, O as Dropdown, E as DropdownItem, D as DropdownSeparator, M as Footer, y as FormGroup, _ as FormRow, c as FrameworkIcon, N as GPTInput, I as Header, S as Heading, u as Icon, v as InputGrouped, m as InputSolo, j as Label, d as Link, w as Logo, H as Modal, W as ModalContactFooter, A as NewTag, T as NewsletterSignup, P as Notification, k as PrefPanel, f as ProductIcon, z as RadioBox, R as RadioBoxGroup, U as RoadmapDetails, h as SearchDropdown, g as SelectGrouped, F as SubHeader, L as Tabs, G as ThemeLoader, i as ThemeProvider, C as Typography, K as themeLoaderScript, n as useClipboard, t as useNextTheme, r as useSuccessFlash, e as useTheme };
@@ -0,0 +1,5 @@
1
+ import { t as e } from "./markup-BhBs-nbv.js";
2
+ //#region node_modules/react-syntax-highlighter/dist/esm/languages/prism/markup.js
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,128 @@
1
+ e.displayName = "markup", e.aliases = [
2
+ "atom",
3
+ "html",
4
+ "mathml",
5
+ "rss",
6
+ "ssml",
7
+ "svg",
8
+ "xml"
9
+ ];
10
+ function e(e) {
11
+ e.languages.markup = {
12
+ comment: {
13
+ pattern: /<!--(?:(?!<!--)[\s\S])*?-->/,
14
+ greedy: !0
15
+ },
16
+ prolog: {
17
+ pattern: /<\?[\s\S]+?\?>/,
18
+ greedy: !0
19
+ },
20
+ doctype: {
21
+ pattern: /<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,
22
+ greedy: !0,
23
+ inside: {
24
+ "internal-subset": {
25
+ pattern: /(^[^\[]*\[)[\s\S]+(?=\]>$)/,
26
+ lookbehind: !0,
27
+ greedy: !0,
28
+ inside: null
29
+ },
30
+ string: {
31
+ pattern: /"[^"]*"|'[^']*'/,
32
+ greedy: !0
33
+ },
34
+ punctuation: /^<!|>$|[[\]]/,
35
+ "doctype-tag": /^DOCTYPE/i,
36
+ name: /[^\s<>'"]+/
37
+ }
38
+ },
39
+ cdata: {
40
+ pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
41
+ greedy: !0
42
+ },
43
+ tag: {
44
+ pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,
45
+ greedy: !0,
46
+ inside: {
47
+ tag: {
48
+ pattern: /^<\/?[^\s>\/]+/,
49
+ inside: {
50
+ punctuation: /^<\/?/,
51
+ namespace: /^[^\s>\/:]+:/
52
+ }
53
+ },
54
+ "special-attr": [],
55
+ "attr-value": {
56
+ pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
57
+ inside: { punctuation: [{
58
+ pattern: /^=/,
59
+ alias: "attr-equals"
60
+ }, {
61
+ pattern: /^(\s*)["']|["']$/,
62
+ lookbehind: !0
63
+ }] }
64
+ },
65
+ punctuation: /\/?>/,
66
+ "attr-name": {
67
+ pattern: /[^\s>\/]+/,
68
+ inside: { namespace: /^[^\s>\/:]+:/ }
69
+ }
70
+ }
71
+ },
72
+ entity: [{
73
+ pattern: /&[\da-z]{1,8};/i,
74
+ alias: "named-entity"
75
+ }, /&#x?[\da-f]{1,8};/i]
76
+ }, e.languages.markup.tag.inside["attr-value"].inside.entity = e.languages.markup.entity, e.languages.markup.doctype.inside["internal-subset"].inside = e.languages.markup, e.hooks.add("wrap", function(e) {
77
+ e.type === "entity" && (e.attributes.title = e.content.value.replace(/&amp;/, "&"));
78
+ }), Object.defineProperty(e.languages.markup.tag, "addInlined", { value: function(t, n) {
79
+ var r = {};
80
+ r["language-" + n] = {
81
+ pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
82
+ lookbehind: !0,
83
+ inside: e.languages[n]
84
+ }, r.cdata = /^<!\[CDATA\[|\]\]>$/i;
85
+ var i = { "included-cdata": {
86
+ pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
87
+ inside: r
88
+ } };
89
+ i["language-" + n] = {
90
+ pattern: /[\s\S]+/,
91
+ inside: e.languages[n]
92
+ };
93
+ var a = {};
94
+ a[t] = {
95
+ pattern: RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)".replace(/__/g, function() {
96
+ return t;
97
+ }), "i"),
98
+ lookbehind: !0,
99
+ greedy: !0,
100
+ inside: i
101
+ }, e.languages.insertBefore("markup", "cdata", a);
102
+ } }), Object.defineProperty(e.languages.markup.tag, "addAttribute", { value: function(t, n) {
103
+ e.languages.markup.tag.inside["special-attr"].push({
104
+ pattern: RegExp("(^|[\"'\\s])(?:" + t + ")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))", "i"),
105
+ lookbehind: !0,
106
+ inside: {
107
+ "attr-name": /^[^\s=]+/,
108
+ "attr-value": {
109
+ pattern: /=[\s\S]+/,
110
+ inside: {
111
+ value: {
112
+ pattern: /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,
113
+ lookbehind: !0,
114
+ alias: [n, "language-" + n],
115
+ inside: e.languages[n]
116
+ },
117
+ punctuation: [{
118
+ pattern: /^=/,
119
+ alias: "attr-equals"
120
+ }, /"|'/]
121
+ }
122
+ }
123
+ }
124
+ });
125
+ } }), e.languages.html = e.languages.markup, e.languages.mathml = e.languages.markup, e.languages.svg = e.languages.markup, e.languages.xml = e.languages.extend("markup", {}), e.languages.ssml = e.languages.xml, e.languages.atom = e.languages.xml, e.languages.rss = e.languages.xml;
126
+ }
127
+ //#endregion
128
+ export { e as t };