@node-core/ui-components 0.0.1 → 1.0.1-0293ad9e47f432e69852af2ee62cb819309db1cf

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 (133) hide show
  1. package/Common/AlertBox/index.js +5 -0
  2. package/Common/AlertBox/index.module.css +2 -0
  3. package/Common/AvatarGroup/Avatar/index.js +11 -0
  4. package/Common/AvatarGroup/Avatar/index.module.css +2 -0
  5. package/Common/AvatarGroup/Overlay/index.js +6 -0
  6. package/Common/AvatarGroup/Overlay/index.module.css +2 -0
  7. package/Common/AvatarGroup/index.js +21 -0
  8. package/Common/AvatarGroup/index.module.css +2 -0
  9. package/Common/Badge/index.js +5 -0
  10. package/Common/Badge/index.module.css +2 -0
  11. package/Common/BadgeGroup/index.js +6 -0
  12. package/Common/BadgeGroup/index.module.css +2 -0
  13. package/Common/Banner/index.js +4 -0
  14. package/Common/Banner/index.module.css +2 -0
  15. package/Common/BaseActiveLink/index.js +14 -0
  16. package/Common/BaseButton/index.js +10 -0
  17. package/Common/BaseButton/index.module.css +2 -0
  18. package/Common/BaseCodeBox/index.js +50 -0
  19. package/Common/BaseCodeBox/index.module.css +2 -0
  20. package/Common/BaseCrossLink/index.js +12 -0
  21. package/Common/BaseCrossLink/index.module.css +2 -0
  22. package/Common/BaseLinkTabs/index.js +5 -0
  23. package/Common/BaseLinkTabs/index.module.css +2 -0
  24. package/Common/BasePagination/Ellipsis/index.js +4 -0
  25. package/Common/BasePagination/Ellipsis/index.module.css +2 -0
  26. package/Common/BasePagination/PaginationListItem/index.js +6 -0
  27. package/Common/BasePagination/PaginationListItem/index.module.css +2 -0
  28. package/Common/BasePagination/PrevNextArrow.js +7 -0
  29. package/Common/BasePagination/index.js +10 -0
  30. package/Common/BasePagination/index.module.css +2 -0
  31. package/Common/BasePagination/useGetPageElements.js +77 -0
  32. package/Common/Blockquote/index.js +4 -0
  33. package/Common/Blockquote/index.module.css +2 -0
  34. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.js +9 -0
  35. package/Common/Breadcrumbs/BreadcrumbHomeLink/index.module.css +2 -0
  36. package/Common/Breadcrumbs/BreadcrumbItem/index.js +6 -0
  37. package/Common/Breadcrumbs/BreadcrumbItem/index.module.css +2 -0
  38. package/Common/Breadcrumbs/BreadcrumbLink/index.js +5 -0
  39. package/Common/Breadcrumbs/BreadcrumbLink/index.module.css +2 -0
  40. package/Common/Breadcrumbs/BreadcrumbRoot/index.js +4 -0
  41. package/Common/Breadcrumbs/BreadcrumbRoot/index.module.css +2 -0
  42. package/Common/Breadcrumbs/BreadcrumbTruncatedItem/index.js +4 -0
  43. package/Common/Breadcrumbs/index.js +22 -0
  44. package/Common/ChangeHistory/index.js +9 -0
  45. package/Common/ChangeHistory/index.module.css +2 -0
  46. package/Common/CodeTabs/index.js +5 -0
  47. package/Common/CodeTabs/index.module.css +2 -0
  48. package/Common/DataTag/index.js +18 -0
  49. package/Common/DataTag/index.module.css +2 -0
  50. package/Common/GlowingBackdrop/index.js +5 -0
  51. package/Common/GlowingBackdrop/index.module.css +2 -0
  52. package/Common/LanguageDropDown/index.js +11 -0
  53. package/Common/LanguageDropDown/index.module.css +2 -0
  54. package/Common/Modal/index.js +10 -0
  55. package/Common/Modal/index.module.css +2 -0
  56. package/Common/NodejsLogo/index.js +7 -0
  57. package/Common/NodejsLogo/index.module.css +2 -0
  58. package/Common/Notification/index.js +6 -0
  59. package/Common/Notification/index.module.css +2 -0
  60. package/Common/Preview/index.js +7 -0
  61. package/Common/Preview/index.module.css +2 -0
  62. package/Common/Select/NoScriptSelect/index.js +10 -0
  63. package/Common/Select/StatelessSelect/index.js +31 -0
  64. package/Common/Select/index.js +46 -0
  65. package/Common/Select/index.module.css +2 -0
  66. package/Common/Separator/index.js +7 -0
  67. package/Common/Separator/index.module.css +2 -0
  68. package/Common/Skeleton/index.js +18 -0
  69. package/Common/Skeleton/index.module.css +2 -0
  70. package/Common/Tabs/index.js +6 -0
  71. package/Common/Tabs/index.module.css +2 -0
  72. package/Common/ThemeToggle/index.js +7 -0
  73. package/Common/ThemeToggle/index.module.css +2 -0
  74. package/Common/Tooltip/index.js +8 -0
  75. package/Common/Tooltip/index.module.css +2 -0
  76. package/Containers/Article/index.js +4 -0
  77. package/Containers/Article/index.module.css +2 -0
  78. package/Containers/Footer/index.js +21 -0
  79. package/Containers/Footer/index.module.css +2 -0
  80. package/Containers/MetaBar/index.js +12 -0
  81. package/Containers/MetaBar/index.module.css +2 -0
  82. package/Containers/NavBar/NavItem/index.js +7 -0
  83. package/Containers/NavBar/NavItem/index.module.css +2 -0
  84. package/Containers/NavBar/index.js +18 -0
  85. package/Containers/NavBar/index.module.css +2 -0
  86. package/Containers/Sidebar/ProgressionIcon/index.js +3 -0
  87. package/Containers/Sidebar/SidebarGroup/index.js +9 -0
  88. package/Containers/Sidebar/SidebarGroup/index.module.css +2 -0
  89. package/Containers/Sidebar/SidebarItem/index.js +11 -0
  90. package/Containers/Sidebar/SidebarItem/index.module.css +2 -0
  91. package/Containers/Sidebar/index.js +15 -0
  92. package/Containers/Sidebar/index.module.css +2 -0
  93. package/Icons/HexagonGrid.js +3 -0
  94. package/Icons/InstallationMethod/Choco.js +3 -0
  95. package/Icons/InstallationMethod/Devbox.js +3 -0
  96. package/Icons/InstallationMethod/Docker.js +3 -0
  97. package/Icons/InstallationMethod/FNM.js +3 -0
  98. package/Icons/InstallationMethod/Homebrew.js +3 -0
  99. package/Icons/InstallationMethod/N.js +5 -0
  100. package/Icons/InstallationMethod/NVM.js +3 -0
  101. package/Icons/InstallationMethod/Volta.js +3 -0
  102. package/Icons/InstallationMethod/index.js +9 -0
  103. package/Icons/Logos/JsWhite.js +3 -0
  104. package/Icons/Logos/Nodejs.js +12 -0
  105. package/Icons/Logos/index.js +3 -0
  106. package/Icons/OperatingSystem/AIX.js +3 -0
  107. package/Icons/OperatingSystem/Apple.js +3 -0
  108. package/Icons/OperatingSystem/Linux.js +3 -0
  109. package/Icons/OperatingSystem/Microsoft.js +3 -0
  110. package/Icons/OperatingSystem/index.js +5 -0
  111. package/Icons/PackageManager/Npm.js +3 -0
  112. package/Icons/PackageManager/Pnpm.js +3 -0
  113. package/Icons/PackageManager/Yarn.js +3 -0
  114. package/Icons/PackageManager/index.js +4 -0
  115. package/Icons/Social/Bluesky.js +3 -0
  116. package/Icons/Social/Discord.js +3 -0
  117. package/Icons/Social/GitHub.js +3 -0
  118. package/Icons/Social/LinkedIn.js +3 -0
  119. package/Icons/Social/Mastodon.js +3 -0
  120. package/Icons/Social/Slack.js +3 -0
  121. package/Icons/Social/X.js +3 -0
  122. package/Icons/Social/index.js +8 -0
  123. package/LICENSE +21 -0
  124. package/MDX/CodeTabs.js +29 -0
  125. package/Providers/NotificationProvider/index.js +16 -0
  126. package/Providers/NotificationProvider/index.module.css +2 -0
  127. package/package.json +44 -5
  128. package/stylelint/one-utility-class-per-line.mjs +48 -0
  129. package/stylelint/utils.mjs +47 -0
  130. package/styles/index.css +2 -0
  131. package/types.js +1 -0
  132. package/util/array.js +2 -0
  133. package/README.md +0 -1
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
3
+ import { useMemo } from 'react';
4
+ import CodeTabs from '#ui/Common/CodeTabs';
5
+ const NAME_OVERRIDES = {
6
+ mjs: 'ESM',
7
+ };
8
+ const MDXCodeTabs = ({ languages: rawLanguages, displayNames: rawDisplayNames, children: codes, defaultTab = '0', ...props }) => {
9
+ const { tabs, languages } = useMemo(() => {
10
+ const occurrences = {};
11
+ const languages = rawLanguages.split('|');
12
+ const displayNames = rawDisplayNames?.split('|') ?? [];
13
+ const tabs = languages.map((language, index) => {
14
+ const base = displayNames[index]?.trim() ||
15
+ NAME_OVERRIDES[language] ||
16
+ language.toUpperCase();
17
+ const count = occurrences[base] ?? 0;
18
+ occurrences[base] = count + 1;
19
+ const label = count > 0 ? `${base} (${count + 1})` : base;
20
+ return {
21
+ key: `${language}-${index}`,
22
+ label: label,
23
+ };
24
+ });
25
+ return { tabs, languages };
26
+ }, [rawLanguages, rawDisplayNames]);
27
+ return (_jsx(CodeTabs, { tabs: tabs, defaultValue: tabs[Number(defaultTab)].key, ...props, children: languages.map((_, index) => (_jsx(TabsPrimitive.Content, { value: tabs[index].key, children: codes[index] }, tabs[index].key))) }));
28
+ };
29
+ export default MDXCodeTabs;
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as Toast from '@radix-ui/react-toast';
3
+ import { createContext, useContext, useEffect, useState } from 'react';
4
+ import Notification from '#ui/Common/Notification';
5
+ import styles from './index.module.css';
6
+ const NotificationContext = createContext(null);
7
+ export const NotificationDispatch = createContext(() => { });
8
+ export const useNotification = () => useContext(NotificationDispatch);
9
+ export const NotificationProvider = ({ children }) => {
10
+ const [notification, dispatch] = useState(null);
11
+ useEffect(() => {
12
+ const timeout = setTimeout(() => dispatch(null), notification?.duration);
13
+ return () => clearTimeout(timeout);
14
+ }, [notification]);
15
+ return (_jsx(NotificationContext.Provider, { value: notification, children: _jsx(NotificationDispatch.Provider, { value: dispatch, children: _jsxs(Toast.Provider, { children: [children, notification && (_jsx(Notification, { duration: notification.duration, children: notification.message })), _jsx(Toast.Viewport, { className: styles.viewport })] }) }) }));
16
+ };
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .viewport{right:calc(var(--spacing,.25rem)*0);bottom:calc(var(--spacing,.25rem)*0);list-style-type:none;position:fixed}
package/package.json CHANGED
@@ -1,8 +1,47 @@
1
1
  {
2
2
  "name": "@node-core/ui-components",
3
- "version": "0.0.1",
4
- "repository": {
5
- "type": "git",
6
- "url": "https://github.com/nodejs/nodejs.org.git"
3
+ "type": "module",
4
+ "dependencies": {
5
+ "@heroicons/react": "^2.2.0",
6
+ "@radix-ui/react-avatar": "^1.1.10",
7
+ "@radix-ui/react-dialog": "^1.1.14",
8
+ "@radix-ui/react-dropdown-menu": "~2.1.15",
9
+ "@radix-ui/react-label": "~2.1.7",
10
+ "@radix-ui/react-select": "~2.2.5",
11
+ "@radix-ui/react-separator": "~1.1.7",
12
+ "@radix-ui/react-tabs": "~1.1.12",
13
+ "@radix-ui/react-toast": "~1.2.14",
14
+ "@radix-ui/react-tooltip": "~1.2.7",
15
+ "@tailwindcss/postcss": "~4.1.11",
16
+ "@vcarl/remark-headings": "~0.1.0",
17
+ "classnames": "~2.5.1",
18
+ "postcss-calc": "^10.1.1",
19
+ "tailwindcss": "~4.0.17"
20
+ },
21
+ "imports": {
22
+ "#ui/*": [
23
+ "./*"
24
+ ]
25
+ },
26
+ "engines": {
27
+ "node": ">=20"
28
+ },
29
+ "version": "1.0.1-0293ad9e47f432e69852af2ee62cb819309db1cf",
30
+ "scripts": {
31
+ "compile:ts": "tsc",
32
+ "compile:css": "postcss --dir dist --base src \"src/**/*.module.css\" src/styles/index.css",
33
+ "compile": "node --run compile:ts && node --run compile:css",
34
+ "lint": "node --run lint:js && node --run lint:css",
35
+ "lint:css": "stylelint \"**/*.css\" --allow-empty-input --cache --cache-strategy=content --cache-location=.stylelintcache",
36
+ "lint:css:fix": "node --run lint:css -- --fix",
37
+ "lint:fix": "node --run lint:js:fix && node --run lint:css:fix",
38
+ "lint:js": "eslint \"**/*.{js,mjs,ts,tsx}\"",
39
+ "lint:js:fix": "node --run lint:js -- --fix",
40
+ "lint:types": "tsc --noEmit",
41
+ "storybook": "cross-env NODE_NO_WARNINGS=1 storybook dev -p 6006 --quiet",
42
+ "storybook:build": "cross-env NODE_NO_WARNINGS=1 storybook build --quiet --webpack-stats-json",
43
+ "test": "node --run test:unit",
44
+ "test:unit": "cross-env NODE_NO_WARNINGS=1 node --experimental-test-coverage --test-coverage-exclude=**/*.test.* --enable-source-maps --import=global-jsdom/register --import=tsx --import=../../tests/setup.mjs --test **/*.test.*",
45
+ "test:unit:watch": "node --run test:unit -- --watch"
7
46
  }
8
- }
47
+ }
@@ -0,0 +1,48 @@
1
+ import stylelint from 'stylelint';
2
+ import { indentClassNames } from './utils.mjs';
3
+ const { createPlugin, utils: { report, ruleMessages }, } = stylelint;
4
+ const name = 'nodejs/one-utility-class-per-line';
5
+ const messages = ruleMessages(name, {
6
+ className: classNames => `Each line should contain only one Tailwind utility class; "${classNames}"`,
7
+ spacing: classNames => `Each utility class used with @apply should be indented by 2 spaces on a new line; ${classNames}`,
8
+ });
9
+ const meta = {
10
+ url: 'https://github.com/nodejs/nodejs.org/blob/main/COLLABORATOR_GUIDE.md#styling-a-component',
11
+ fixable: true,
12
+ };
13
+ /** @type {import('stylelint').Rule} */
14
+ const rule = () => (root, result) => {
15
+ root.walkAtRules('apply', rule => {
16
+ if (!rule.params.includes(' ')) {
17
+ // If there are no spaces in the params, we don't need to check anything
18
+ return;
19
+ }
20
+ // Since we use 2 spaces for indentation, each line in the apply rule
21
+ // should be indented with two extra whitespaces.
22
+ const classes = rule.params.split(`${rule.raws.before} `);
23
+ const classNames = classes.join('');
24
+ // Check if the params contain any spaces
25
+ if (classNames.includes(' ')) {
26
+ if (classNames.includes('\n')) {
27
+ return report({
28
+ ruleName: name,
29
+ result: result,
30
+ message: messages.spacing(JSON.stringify(rule.params)),
31
+ node: rule,
32
+ fix: indentClassNames(rule),
33
+ });
34
+ }
35
+ return report({
36
+ ruleName: name,
37
+ result: result,
38
+ message: messages.className(rule.params),
39
+ node: rule,
40
+ fix: indentClassNames(rule),
41
+ });
42
+ }
43
+ });
44
+ };
45
+ rule.ruleName = name;
46
+ rule.messages = messages;
47
+ rule.meta = meta;
48
+ export default createPlugin(name, rule);
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Adjusts the class names in the rule by cleaning and adding proper indentation.
3
+ *
4
+ * @param {Object} rule - The rule object containing the class names to be processed.
5
+ * @param {string} rule.params - The class names as a string to be formatted.
6
+ * @param {Object} rule.raws - The raw data of the rule.
7
+ * @param {string} rule.raws.before - The raw string before to the @apply rule.
8
+ * @returns {Object|null} The modified rule with properly formatted class names, or null if the rule is invalid.
9
+ */
10
+ export const indentClassNames = rule => {
11
+ // Ensure that the rule contains necessary properties
12
+ if (!rule || !rule.params || !rule.raws || !rule.raws.before) {
13
+ return null;
14
+ }
15
+ const indent = ' '.repeat(rule.raws.before.length + 1);
16
+ // Clean and split the class names
17
+ const cleanedClasses = cleanClassNames(rule.params);
18
+ // Apply the indentation and join the class names back together
19
+ rule.params = applyIndentation(cleanedClasses, indent);
20
+ return rule;
21
+ };
22
+ /**
23
+ * Cleans the input string by removing unnecessary whitespace and newlines.
24
+ *
25
+ * @param {string} params - The class names string to be cleaned.
26
+ * @returns {string} The cleaned class names string.
27
+ */
28
+ export const cleanClassNames = params => {
29
+ return params
30
+ .replace(/[\n\r]+/g, '') // Remove new lines
31
+ .replace(/\s+/g, ' ') // Replace multiple spaces with a single space
32
+ .trim(); // Trim leading/trailing spaces
33
+ };
34
+ /**
35
+ * Applies the correct indentation to each class name in the string.
36
+ *
37
+ * @param {string} classes - The cleaned class names as a string.
38
+ * @param {string} indent - The string used for indentation.
39
+ * @returns {string} The class names string with applied indentation.
40
+ */
41
+ export const applyIndentation = (classes, indent) => {
42
+ return classes
43
+ .split(' ') // Split into an array of class names
44
+ .map(className => indent + className) // Add indentation to each class
45
+ .join('\n') // Join with new lines
46
+ .trim(); // Remove extra space at the end
47
+ };
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-font-weight:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-leading:initial;--tw-tracking:initial;--tw-border-style:solid;--tw-border-spacing-x:0;--tw-border-spacing-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-green-100:#edf2eb;--color-green-200:#c5e5b4;--color-green-300:#99cc7d;--color-green-400:#84ba64;--color-green-600:#417e38;--color-green-700:#2c682c;--color-green-800:#2c682c;--color-green-900:#1a3f1d;--color-gray-200:oklch(92.8% .006 264.531);--color-neutral-100:#f6f7f9;--color-neutral-200:#e9edf0;--color-neutral-300:#d9e1e4;--color-neutral-400:#cbd4d9;--color-neutral-600:#929fa5;--color-neutral-700:#6e7b83;--color-neutral-800:#556066;--color-neutral-900:#2c3437;--color-neutral-950:#0d121c;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--text-3xl:1.875rem;--text-3xl--line-height:1.2;--text-4xl:2.25rem;--text-4xl--line-height:1.11111;--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-xs:.125rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-danger-100:#fbf1f0;--color-danger-200:#fad3d4;--color-danger-300:#fab6b7;--color-danger-400:#fa8e8e;--color-danger-600:#de1a1b;--color-danger-700:#b80c0c;--color-danger-800:#900e0e;--color-danger-900:#661514;--color-warning-100:#fdf3e7;--color-warning-200:#fad9b0;--color-warning-300:#f5bc75;--color-warning-400:#e99c40;--color-warning-600:#ae5f00;--color-warning-700:#8b4d04;--color-warning-800:#683d08;--color-warning-900:#4d2f0b;--color-info-100:#e9f4fa;--color-info-200:#bce6fc;--color-info-300:#8ed4f8;--color-info-400:#52baed;--color-info-600:#0c7bb3;--color-info-700:#066291;--color-info-800:#074d71;--color-info-900:#0a3953;--color-accent1-100:#f7f1fb;--color-accent1-200:#ead9fb;--color-accent1-300:#dbbdf9;--color-accent1-400:#c79bf2;--color-accent1-600:#9756d6;--color-accent1-700:#7d3cbe;--color-accent1-800:#642b9e;--color-accent1-900:#361b52;--color-accent2-100:#fbf0f4;--color-accent2-200:#fbd4e6;--color-accent2-300:#fbb4d2;--color-accent2-400:#f68bb7;--color-accent2-600:#d6246e;--color-accent2-700:#b01356;--color-accent2-800:#8b1245;--color-accent2-900:#411526;--color-pulse-100:#0000330f;--color-pulse-200:#00002d17;--color-pulse-300:#ddeaf814;--color-pulse-400:#d3edf81d;--color-shadow:#101828;--font-open-sans:var(--font-open-sans);--font-ibm-plex-mono:var(--font-ibm-plex-mono);--font-weight-regular:400}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentColor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--header-height:calc(var(--spacing,.25rem)*16)}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentColor)}::file-selector-button{border-color:var(--color-gray-200,currentColor)}:is(button,[role=button]):not(:disabled){cursor:pointer}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.relative{position:relative}.right-0{right:calc(var(--spacing)*0)}.container{width:100%}@media (min-width:670px){.container{max-width:670px}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-1\.5{margin-inline:calc(var(--spacing)*1.5)}.mt-4{margin-top:calc(var(--spacing)*4)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-32{width:calc(var(--spacing)*32);height:calc(var(--spacing)*32)}.h-4{height:calc(var(--spacing)*4)}.h-20{height:calc(var(--spacing)*20)}.h-72{height:calc(var(--spacing)*72)}.h-full{height:100%}.w-4{width:calc(var(--spacing)*4)}.w-20{width:calc(var(--spacing)*20)}.w-72{width:calc(var(--spacing)*72)}.w-200{width:calc(var(--spacing)*200)}.w-\[150px\]{width:150px}.w-\[305px\]{width:305px}.w-\[600px\]{width:600px}.w-full{width:100%}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.bg-accent1-100{background-color:var(--color-accent1-100)}.bg-accent1-200{background-color:var(--color-accent1-200)}.bg-accent1-300{background-color:var(--color-accent1-300)}.bg-accent1-400{background-color:var(--color-accent1-400)}.bg-accent1-600{background-color:var(--color-accent1-600)}.bg-accent1-700{background-color:var(--color-accent1-700)}.bg-accent1-800{background-color:var(--color-accent1-800)}.bg-accent1-900{background-color:var(--color-accent1-900)}.bg-accent2-100{background-color:var(--color-accent2-100)}.bg-accent2-200{background-color:var(--color-accent2-200)}.bg-accent2-300{background-color:var(--color-accent2-300)}.bg-accent2-400{background-color:var(--color-accent2-400)}.bg-accent2-600{background-color:var(--color-accent2-600)}.bg-accent2-700{background-color:var(--color-accent2-700)}.bg-accent2-800{background-color:var(--color-accent2-800)}.bg-accent2-900{background-color:var(--color-accent2-900)}.bg-danger-100{background-color:var(--color-danger-100)}.bg-danger-200{background-color:var(--color-danger-200)}.bg-danger-300{background-color:var(--color-danger-300)}.bg-danger-400{background-color:var(--color-danger-400)}.bg-danger-600{background-color:var(--color-danger-600)}.bg-danger-700{background-color:var(--color-danger-700)}.bg-danger-800{background-color:var(--color-danger-800)}.bg-danger-900{background-color:var(--color-danger-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-200{background-color:var(--color-green-200)}.bg-green-300{background-color:var(--color-green-300)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-600{background-color:var(--color-green-600)}.bg-green-700{background-color:var(--color-green-700)}.bg-green-800{background-color:var(--color-green-800)}.bg-green-900{background-color:var(--color-green-900)}.bg-info-100{background-color:var(--color-info-100)}.bg-info-200{background-color:var(--color-info-200)}.bg-info-300{background-color:var(--color-info-300)}.bg-info-400{background-color:var(--color-info-400)}.bg-info-600{background-color:var(--color-info-600)}.bg-info-700{background-color:var(--color-info-700)}.bg-info-800{background-color:var(--color-info-800)}.bg-info-900{background-color:var(--color-info-900)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-400{background-color:var(--color-neutral-400)}.bg-neutral-600{background-color:var(--color-neutral-600)}.bg-neutral-700{background-color:var(--color-neutral-700)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-warning-100{background-color:var(--color-warning-100)}.bg-warning-200{background-color:var(--color-warning-200)}.bg-warning-300{background-color:var(--color-warning-300)}.bg-warning-400{background-color:var(--color-warning-400)}.bg-warning-600{background-color:var(--color-warning-600)}.bg-warning-700{background-color:var(--color-warning-700)}.bg-warning-800{background-color:var(--color-warning-800)}.bg-warning-900{background-color:var(--color-warning-900)}.fill-\[\#333333\]{fill:#333}.fill-neutral-700{fill:var(--color-neutral-700)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-regular{--tw-font-weight:var(--font-weight-regular);font-weight:var(--font-weight-regular)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.opacity-70{opacity:.7}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}.peer-checked\:flex:is(:where(.peer):checked~*){display:flex}@media (prefers-reduced-motion:no-preference){.motion-safe\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.dark\:block:where([data-theme=dark],[data-theme=dark] *){display:block}.dark\:hidden:where([data-theme=dark],[data-theme=dark] *){display:none}.dark\:fill-neutral-100:where([data-theme=dark],[data-theme=dark] *){fill:var(--color-neutral-100)}.dark\:fill-white:where([data-theme=dark],[data-theme=dark] *){fill:var(--color-white)}*{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}html,body{height:100%}body{background-color:var(--color-white);font-family:var(--font-open-sans);color:var(--color-neutral-950)}@media (prefers-reduced-motion:no-preference){body{scroll-behavior:smooth}}body:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-950);color:var(--color-white)}main{gap:calc(var(--spacing)*6);flex-direction:column;width:100%;display:flex}main hr{border-top-style:var(--tw-border-style);border-top-width:1px;border-top-color:var(--color-neutral-200);background-color:var(--color-white);width:100%}main hr:where([data-theme=dark],[data-theme=dark] *){border-top-color:var(--color-neutral-900);background-color:var(--color-neutral-950)}main h1{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}main h2{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}main h3{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}main h4{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}main h5,main h6{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}main h1,main h2,main h3,main h4,main h5,main h6{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900)}:is(main h1,main h2,main h3,main h4,main h5,main h6):where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}:is(main h1,main h2,main h3,main h4,main h5,main h6)[id] a{color:var(--color-neutral-900)}:is(main h1,main h2,main h3,main h4,main h5,main h6)[id] a:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}main strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}main code{border-radius:var(--radius-xs);background-color:var(--color-neutral-100);padding-inline:calc(var(--spacing)*1);font-family:var(--font-ibm-plex-mono);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900)}main code:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-900);color:var(--color-white)}main p{color:var(--color-neutral-900)}main p:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor{color:var(--color-green-600)}@media not all and (min-width:670px){main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):where([data-theme=dark],[data-theme=dark] *){color:var(--color-green-400)}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):hover{color:var(--color-green-900)}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):hover:where([data-theme=dark],[data-theme=dark] *){color:var(--color-green-200)}@media not all and (min-width:670px){:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor)[role=button]{--tw-font-weight:var(--font-weight-regular);font-weight:var(--font-weight-regular)}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):has(code){-webkit-text-decoration-color:var(--color-neutral-800);-webkit-text-decoration-color:var(--color-neutral-800);text-decoration-color:var(--color-neutral-800)}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):has(code):where([data-theme=dark],[data-theme=dark] *){-webkit-text-decoration-color:var(--color-neutral-200);-webkit-text-decoration-color:var(--color-neutral-200);text-decoration-color:var(--color-neutral-200)}}:is(main a:not(h1>a):not(h2>a):not(h3>a):not(h4>a):not(h5>a):not(h6>a),main .anchor):has(code) code{color:inherit}main ul{padding-right:calc(var(--spacing)*5);padding-left:calc(var(--spacing)*9);--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6);color:var(--color-neutral-900);list-style-type:disc}main ul:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}main ul li div:has(>pre){margin-block:calc(var(--spacing)*1)!important}main ol{padding-inline:calc(var(--spacing)*5);--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6);color:var(--color-neutral-900);list-style-type:decimal}main ol:where([data-theme=dark],[data-theme=dark] *){color:var(--color-white)}main ol li div:has(>pre){margin-block:calc(var(--spacing)*1)!important}main table{margin-bottom:calc(var(--spacing)*1);border-collapse:separate;--tw-border-spacing-x:calc(var(--spacing)*0);--tw-border-spacing-y:calc(var(--spacing)*0);width:100%;border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y);border-radius:var(--radius-xs);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}main table:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-800)}main table th,main table td{border-style:var(--tw-border-style);border-width:1px;border-top-style:var(--tw-border-style);border-top-width:0;border-right-style:var(--tw-border-style);border-right-width:0;border-color:var(--color-neutral-200);padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*2);color:var(--color-neutral-900)}@media not all and (min-width:670px){main table th,main table td{border-left-style:var(--tw-border-style);border-left-width:0;display:block}}:is(main table th,main table td):where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-800);color:var(--color-white)}:is(main table th,main table td)>a{padding-right:calc(var(--spacing)*2)}main table th{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}@media (min-width:40rem){main table tr:last-child>td{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@media not all and (min-width:670px){main table tr:last-child>td:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@media (min-width:40rem){main table td:first-child,main table th:first-child{border-left-style:var(--tw-border-style);border-left-width:0}}}h1.special{background-image:linear-gradient(180deg,var(--color-neutral-900)0%,#2c3437cc 100%)}@supports (color:color-mix(in lab, red, red)){h1.special{background-image:linear-gradient(180deg,var(--color-neutral-900)0%,color-mix(in oklab,var(--color-neutral-900)80%,transparent)100%)}}h1.special{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height));--tw-leading:3rem;--tw-tracking:-0.045rem;letter-spacing:-.045rem;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;line-height:3rem}@media (min-width:48rem){h1.special{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height));--tw-leading:4rem;--tw-tracking:-0.06rem;letter-spacing:-.06rem;line-height:4rem}}h1.special:where([data-theme=dark],[data-theme=dark] *){background-image:linear-gradient(180deg,var(--color-white)0%,#fffc 100%)}@supports (color:color-mix(in lab, red, red)){h1.special:where([data-theme=dark],[data-theme=dark] *){background-image:linear-gradient(180deg,var(--color-white)0%,color-mix(in oklab,var(--color-white)80%,transparent)100%)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}
package/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
package/util/array.js ADDED
@@ -0,0 +1,2 @@
1
+ export const isStringArray = (values) => Boolean(values[0] && typeof values[0] === 'string');
2
+ export const isValuesArray = (values) => Boolean(values[0] && typeof values[0] === 'object' && 'value' in values[0]);
package/README.md DELETED
@@ -1 +0,0 @@
1
- nodejs.org