@seanyeh77/ui 0.0.0-stage → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +81 -0
- package/dist/bundle.js.map +1 -0
- package/dist/fonts/LICENSE-OFL.txt +93 -0
- package/dist/fonts/geist-mono-cyrillic-400-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-cyrillic-500-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-cyrillic-600-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-cyrillic-700-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-cyrillic-ext-500-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-cyrillic-ext-600-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-400-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-500-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-600-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-700-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-ext-500-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-ext-600-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-ext-700-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-symbols2-400-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-symbols2-500-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-symbols2-600-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-symbols2-700-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-vietnamese-400-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-vietnamese-500-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-vietnamese-600-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-vietnamese-700-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-400-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-500-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-600-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-700-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-ext-500-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-ext-600-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-400-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-500-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-600-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-700-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-ext-400-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-ext-500-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-ext-600-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-ext-700-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-400-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-500-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-600-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-700-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-ext-500-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-ext-600-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-ext-700-normal.woff2 +0 -0
- package/dist/fonts/inter-vietnamese-400-normal.woff2 +0 -0
- package/dist/fonts/inter-vietnamese-500-normal.woff2 +0 -0
- package/dist/fonts/inter-vietnamese-600-normal.woff2 +0 -0
- package/dist/fonts/inter-vietnamese-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-0-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-0-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-0-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-0-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-1-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-1-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-1-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-1-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-10-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-10-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-10-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-10-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-101-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-101-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-101-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-101-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-102-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-102-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-102-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-102-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-103-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-103-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-103-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-103-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-104-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-104-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-104-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-104-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-105-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-105-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-105-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-105-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-106-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-106-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-106-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-106-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-107-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-107-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-107-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-107-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-108-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-108-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-108-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-108-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-109-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-109-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-109-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-109-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-11-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-11-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-11-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-11-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-110-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-110-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-110-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-110-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-111-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-111-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-111-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-111-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-112-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-112-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-112-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-112-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-113-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-113-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-113-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-113-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-114-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-114-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-114-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-114-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-115-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-115-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-115-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-115-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-116-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-116-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-116-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-116-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-117-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-117-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-117-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-117-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-118-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-118-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-118-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-118-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-119-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-119-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-119-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-119-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-12-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-12-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-12-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-12-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-120-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-120-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-120-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-120-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-121-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-121-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-121-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-121-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-122-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-122-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-122-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-122-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-123-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-123-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-123-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-123-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-2-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-2-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-2-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-2-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-23-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-23-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-23-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-23-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-24-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-24-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-24-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-24-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-25-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-25-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-25-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-25-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-26-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-26-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-26-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-26-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-27-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-27-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-27-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-27-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-28-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-28-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-28-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-28-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-29-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-29-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-29-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-29-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-30-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-30-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-30-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-30-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-31-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-31-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-31-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-31-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-32-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-32-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-32-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-32-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-33-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-33-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-33-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-33-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-34-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-34-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-34-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-34-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-35-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-35-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-35-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-35-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-36-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-36-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-36-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-36-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-37-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-37-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-37-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-37-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-38-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-38-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-38-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-38-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-39-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-39-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-39-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-39-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-4-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-4-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-4-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-4-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-40-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-40-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-40-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-40-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-41-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-41-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-41-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-41-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-42-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-42-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-42-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-42-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-43-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-43-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-43-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-43-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-44-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-44-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-44-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-44-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-45-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-45-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-45-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-45-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-46-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-46-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-46-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-46-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-47-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-47-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-47-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-47-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-48-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-48-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-48-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-48-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-49-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-49-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-49-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-49-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-50-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-50-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-50-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-50-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-51-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-51-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-51-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-51-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-52-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-52-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-52-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-52-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-53-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-53-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-53-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-53-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-54-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-54-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-54-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-54-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-55-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-55-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-55-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-55-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-56-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-56-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-56-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-56-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-57-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-57-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-57-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-57-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-58-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-58-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-58-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-58-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-59-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-59-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-59-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-59-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-60-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-60-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-60-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-60-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-61-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-61-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-61-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-61-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-62-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-62-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-62-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-62-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-63-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-63-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-63-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-63-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-64-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-64-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-64-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-64-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-65-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-65-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-65-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-65-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-66-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-66-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-66-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-66-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-67-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-67-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-67-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-67-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-68-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-68-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-68-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-68-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-69-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-69-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-69-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-69-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-70-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-70-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-70-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-70-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-71-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-71-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-71-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-71-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-72-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-72-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-72-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-72-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-73-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-73-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-73-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-73-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-74-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-74-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-74-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-74-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-75-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-75-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-75-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-75-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-76-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-76-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-76-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-76-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-77-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-77-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-77-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-77-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-78-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-78-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-78-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-78-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-79-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-79-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-79-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-79-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-80-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-80-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-80-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-80-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-81-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-81-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-81-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-81-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-82-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-82-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-82-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-82-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-83-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-83-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-83-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-83-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-84-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-84-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-84-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-84-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-85-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-85-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-85-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-85-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-86-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-86-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-86-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-86-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-87-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-87-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-87-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-87-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-88-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-88-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-88-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-88-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-89-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-89-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-89-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-89-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-90-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-90-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-90-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-90-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-91-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-91-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-91-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-91-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-92-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-92-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-92-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-92-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-93-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-93-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-93-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-93-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-94-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-94-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-94-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-94-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-95-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-95-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-95-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-95-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-96-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-96-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-96-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-96-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-cyrillic-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-cyrillic-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-cyrillic-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-cyrillic-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-latin-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-latin-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-latin-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-latin-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-latin-ext-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-latin-ext-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-latin-ext-700-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-vietnamese-400-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-vietnamese-500-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-vietnamese-600-normal.woff2 +0 -0
- package/dist/fonts/noto-sans-tc-vietnamese-700-normal.woff2 +0 -0
- package/dist/fonts.css +7543 -0
- package/dist/format-entry-B1gAZnIN.js +400 -0
- package/dist/format-entry-B1gAZnIN.js.map +1 -0
- package/dist/format-entry-BKj7P9i6.d.ts +64 -0
- package/dist/format.d.ts +2 -0
- package/dist/format.js +1 -0
- package/dist/index.d.ts +1435 -0
- package/dist/index.js +5875 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +5240 -0
- package/dist/tokens.css +131 -0
- package/docs/AccentPicker.md +7 -0
- package/docs/ActionBar.md +17 -0
- package/docs/Alert.md +8 -0
- package/docs/AppShell.md +30 -0
- package/docs/Badge.md +17 -0
- package/docs/BarChart.md +7 -0
- package/docs/Breadcrumb.md +7 -0
- package/docs/Button.md +18 -0
- package/docs/Calendar.md +15 -0
- package/docs/Card.md +14 -0
- package/docs/Checkbox.md +8 -0
- package/docs/CodeView.md +21 -0
- package/docs/CommandPalette.md +30 -0
- package/docs/DangerZone.md +10 -0
- package/docs/DataTable.md +77 -0
- package/docs/DatePicker.md +7 -0
- package/docs/DateRangePicker.md +7 -0
- package/docs/DetailList.md +17 -0
- package/docs/Dialog.md +15 -0
- package/docs/Drawer.md +22 -0
- package/docs/EmptyState.md +6 -0
- package/docs/ErrorPage.md +7 -0
- package/docs/FileUpload.md +9 -0
- package/docs/FormGrid.md +7 -0
- package/docs/Format.md +27 -0
- package/docs/Graph.md +31 -0
- package/docs/Grid.md +18 -0
- package/docs/IconButton.md +12 -0
- package/docs/InlineCode.md +35 -0
- package/docs/KpiCard.md +11 -0
- package/docs/LayerGraph.md +32 -0
- package/docs/LineChart.md +10 -0
- package/docs/LoadingBar.md +7 -0
- package/docs/LoginCard.md +8 -0
- package/docs/Menu.md +20 -0
- package/docs/MobileTabBar.md +8 -0
- package/docs/MultiSelect.md +9 -0
- package/docs/NotificationBell.md +9 -0
- package/docs/Popover.md +9 -0
- package/docs/ProgressBar.md +7 -0
- package/docs/ProgressRing.md +7 -0
- package/docs/ProjectSwitcher.md +22 -0
- package/docs/RadioGroup.md +7 -0
- package/docs/SearchField.md +7 -0
- package/docs/Select.md +7 -0
- package/docs/SettingsLayout.md +8 -0
- package/docs/SideNav.md +11 -0
- package/docs/Skeleton.md +5 -0
- package/docs/Suggestion.md +15 -0
- package/docs/Switch.md +8 -0
- package/docs/Tabs.md +10 -0
- package/docs/Tag.md +11 -0
- package/docs/Term.md +30 -0
- package/docs/TextArea.md +7 -0
- package/docs/TextField.md +10 -0
- package/docs/ThemePicker.md +9 -0
- package/docs/Toast.md +7 -0
- package/docs/Tooltip.md +9 -0
- package/docs/TopBar.md +9 -0
- package/docs/Tour.md +24 -0
- package/docs/TreeList.md +93 -0
- package/docs/guidelines.md +269 -0
- package/docs/layout.md +35 -0
- package/docs/motion.md +63 -0
- package/package.json +59 -3
- package/README.md +0 -3
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,1435 @@
|
|
|
1
|
+
import { a as format, i as Decimals, n as setLocale, r as tr, t as addMessages } from "./format-entry-BKj7P9i6.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const PH: {
|
|
4
|
+
readonly archive: '<path d="M224,48H32A16,16,0,0,0,16,64V88a16,16,0,0,0,16,16v88a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V104a16,16,0,0,0,16-16V64A16,16,0,0,0,224,48ZM208,192H48V104H208ZM224,88H32V64H224V88ZM96,136a8,8,0,0,1,8-8h48a8,8,0,0,1,0,16H104A8,8,0,0,1,96,136Z"/>';
|
|
5
|
+
readonly 'arrow-down': '<path d="M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72a8,8,0,0,1,11.32-11.32L120,196.69V40a8,8,0,0,1,16,0V196.69l58.34-58.35a8,8,0,0,1,11.32,11.32Z"/>';
|
|
6
|
+
readonly 'arrow-left': '<path d="M224,128a8,8,0,0,1-8,8H59.31l58.35,58.34a8,8,0,0,1-11.32,11.32l-72-72a8,8,0,0,1,0-11.32l72-72a8,8,0,0,1,11.32,11.32L59.31,120H216A8,8,0,0,1,224,128Z"/>';
|
|
7
|
+
readonly 'arrow-right': '<path d="M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z"/>';
|
|
8
|
+
readonly 'arrow-square-out': '<path d="M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z"/>';
|
|
9
|
+
readonly 'arrow-u-up-left': '<path d="M232,144a64.07,64.07,0,0,1-64,64H80a8,8,0,0,1,0-16h88a48,48,0,0,0,0-96H51.31l34.35,34.34a8,8,0,0,1-11.32,11.32l-48-48a8,8,0,0,1,0-11.32l48-48A8,8,0,0,1,85.66,45.66L51.31,80H168A64.07,64.07,0,0,1,232,144Z"/>';
|
|
10
|
+
readonly 'arrow-u-up-right': '<path d="M170.34,130.34,204.69,96H88a48,48,0,0,0,0,96h88a8,8,0,0,1,0,16H88A64,64,0,0,1,88,80H204.69L170.34,45.66a8,8,0,0,1,11.32-11.32l48,48a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32-11.32Z"/>';
|
|
11
|
+
readonly 'arrow-up': '<path d="M205.66,117.66a8,8,0,0,1-11.32,0L136,59.31V216a8,8,0,0,1-16,0V59.31L61.66,117.66a8,8,0,0,1-11.32-11.32l72-72a8,8,0,0,1,11.32,0l72,72A8,8,0,0,1,205.66,117.66Z"/>';
|
|
12
|
+
readonly 'arrows-clockwise': '<path d="M224,48V96a8,8,0,0,1-8,8H168a8,8,0,0,1,0-16h28.69L182.06,73.37a79.56,79.56,0,0,0-56.13-23.43h-.45A79.52,79.52,0,0,0,69.59,72.71,8,8,0,0,1,58.41,61.27a96,96,0,0,1,135,.79L208,76.69V48a8,8,0,0,1,16,0ZM186.41,183.29a80,80,0,0,1-112.47-.66L59.31,168H88a8,8,0,0,0,0-16H40a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V179.31l14.63,14.63A95.43,95.43,0,0,0,130,222.06h.53a95.36,95.36,0,0,0,67.07-27.33,8,8,0,0,0-11.18-11.44Z"/>';
|
|
13
|
+
readonly bell: '<path d="M221.8,175.94C216.25,166.38,208,139.33,208,104a80,80,0,1,0-160,0c0,35.34-8.26,62.38-13.81,71.94A16,16,0,0,0,48,200H88.81a40,40,0,0,0,78.38,0H208a16,16,0,0,0,13.8-24.06ZM128,216a24,24,0,0,1-22.62-16h45.24A24,24,0,0,1,128,216ZM48,184c7.7-13.24,16-43.92,16-80a64,64,0,1,1,128,0c0,36.05,8.28,66.73,16,80Z"/>';
|
|
14
|
+
readonly 'calendar-blank': '<path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/>';
|
|
15
|
+
readonly 'caret-down': '<path d="M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"/>';
|
|
16
|
+
readonly 'caret-left': '<path d="M165.66,202.34a8,8,0,0,1-11.32,11.32l-80-80a8,8,0,0,1,0-11.32l80-80a8,8,0,0,1,11.32,11.32L91.31,128Z"/>';
|
|
17
|
+
readonly 'caret-right': '<path d="M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z"/>';
|
|
18
|
+
readonly 'caret-up': '<path d="M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z"/>';
|
|
19
|
+
readonly 'chart-bar': '<path d="M224,200h-8V40a8,8,0,0,0-8-8H152a8,8,0,0,0-8,8V80H96a8,8,0,0,0-8,8v40H48a8,8,0,0,0-8,8v64H32a8,8,0,0,0,0,16H224a8,8,0,0,0,0-16ZM160,48h40V200H160ZM104,96h40V200H104ZM56,144H88v56H56Z"/>';
|
|
20
|
+
readonly 'chart-line': '<path d="M232,208a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V48a8,8,0,0,1,16,0v94.37L90.73,98a8,8,0,0,1,10.07-.38l58.81,44.11L218.73,90a8,8,0,1,1,10.54,12l-64,56a8,8,0,0,1-10.07.38L96.39,114.29,40,163.63V200H224A8,8,0,0,1,232,208Z"/>';
|
|
21
|
+
readonly 'chart-pie': '<path d="M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm71.87,53.27L136,114.14V40.37A88,88,0,0,1,199.87,77.27ZM120,40.37v83l-71.89,41.5A88,88,0,0,1,120,40.37ZM128,216a88,88,0,0,1-71.87-37.27L207.89,91.12A88,88,0,0,1,128,216Z"/>';
|
|
22
|
+
readonly 'chat-centered': '<path d="M216,40H40A16,16,0,0,0,24,56V184a16,16,0,0,0,16,16h60.43l13.68,23.94a16,16,0,0,0,27.78,0L155.57,200H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,144H150.93a8,8,0,0,0-7,4l-16,28-16-28a8,8,0,0,0-7-4H40V56H216Z"/>';
|
|
23
|
+
readonly check: '<path d="M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z"/>';
|
|
24
|
+
readonly 'check-circle': '<path d="M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"/>';
|
|
25
|
+
readonly 'circle-notch': '<path d="M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"/>';
|
|
26
|
+
readonly clock: '<path d="M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z"/>';
|
|
27
|
+
readonly cloud: '<path d="M160,40A88.09,88.09,0,0,0,81.29,88.67,64,64,0,1,0,72,216h88a88,88,0,0,0,0-176Zm0,160H72a48,48,0,0,1,0-96c1.1,0,2.2,0,3.29.11A88,88,0,0,0,72,128a8,8,0,0,0,16,0,72,72,0,1,1,72,72Z"/>';
|
|
28
|
+
readonly copy: '<path d="M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"/>';
|
|
29
|
+
readonly cpu: '<path d="M152,96H104a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8h48a8,8,0,0,0,8-8V104A8,8,0,0,0,152,96Zm-8,48H112V112h32Zm88,0H216V112h16a8,8,0,0,0,0-16H216V56a16,16,0,0,0-16-16H160V24a8,8,0,0,0-16,0V40H112V24a8,8,0,0,0-16,0V40H56A16,16,0,0,0,40,56V96H24a8,8,0,0,0,0,16H40v32H24a8,8,0,0,0,0,16H40v40a16,16,0,0,0,16,16H96v16a8,8,0,0,0,16,0V216h32v16a8,8,0,0,0,16,0V216h40a16,16,0,0,0,16-16V160h16a8,8,0,0,0,0-16Zm-32,56H56V56H200v95.87s0,.09,0,.13,0,.09,0,.13V200Z"/>';
|
|
30
|
+
readonly database: '<path d="M128,24C74.17,24,32,48.6,32,80v96c0,31.4,42.17,56,96,56s96-24.6,96-56V80C224,48.6,181.83,24,128,24Zm80,104c0,9.62-7.88,19.43-21.61,26.92C170.93,163.35,150.19,168,128,168s-42.93-4.65-58.39-13.08C55.88,147.43,48,137.62,48,128V111.36c17.06,15,46.23,24.64,80,24.64s62.94-9.68,80-24.64ZM69.61,53.08C85.07,44.65,105.81,40,128,40s42.93,4.65,58.39,13.08C200.12,60.57,208,70.38,208,80s-7.88,19.43-21.61,26.92C170.93,115.35,150.19,120,128,120s-42.93-4.65-58.39-13.08C55.88,99.43,48,89.62,48,80S55.88,60.57,69.61,53.08ZM186.39,202.92C170.93,211.35,150.19,216,128,216s-42.93-4.65-58.39-13.08C55.88,195.43,48,185.62,48,176V159.36c17.06,15,46.23,24.64,80,24.64s62.94-9.68,80-24.64V176C208,185.62,200.12,195.43,186.39,202.92Z"/>';
|
|
31
|
+
readonly 'dots-three': '<path d="M140,128a12,12,0,1,1-12-12A12,12,0,0,1,140,128Zm56-12a12,12,0,1,0,12,12A12,12,0,0,0,196,116ZM60,116a12,12,0,1,0,12,12A12,12,0,0,0,60,116Z"/>';
|
|
32
|
+
readonly 'dots-three-vertical': '<path d="M140,128a12,12,0,1,1-12-12A12,12,0,0,1,140,128ZM128,72a12,12,0,1,0-12-12A12,12,0,0,0,128,72Zm0,112a12,12,0,1,0,12,12A12,12,0,0,0,128,184Z"/>';
|
|
33
|
+
readonly 'download-simple': '<path d="M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0-11.32-11.32L136,124.69V32a8,8,0,0,0-16,0v92.69L93.66,98.34a8,8,0,0,0-11.32,11.32Z"/>';
|
|
34
|
+
readonly 'envelope-simple': '<path d="M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48ZM203.43,64,128,133.15,52.57,64ZM216,192H40V74.19l82.59,75.71a8,8,0,0,0,10.82,0L216,74.19V192Z"/>';
|
|
35
|
+
readonly eye: '<path d="M247.31,124.76c-.35-.79-8.82-19.58-27.65-38.41C194.57,61.26,162.88,48,128,48S61.43,61.26,36.34,86.35C17.51,105.18,9,124,8.69,124.76a8,8,0,0,0,0,6.5c.35.79,8.82,19.57,27.65,38.4C61.43,194.74,93.12,208,128,208s66.57-13.26,91.66-38.34c18.83-18.83,27.3-37.61,27.65-38.4A8,8,0,0,0,247.31,124.76ZM128,192c-30.78,0-57.67-11.19-79.93-33.25A133.47,133.47,0,0,1,25,128,133.33,133.33,0,0,1,48.07,97.25C70.33,75.19,97.22,64,128,64s57.67,11.19,79.93,33.25A133.46,133.46,0,0,1,231.05,128C223.84,141.46,192.43,192,128,192Zm0-112a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Z"/>';
|
|
36
|
+
readonly 'eye-slash': '<path d="M53.92,34.62A8,8,0,1,0,42.08,45.38L61.32,66.55C25,88.84,9.38,123.2,8.69,124.76a8,8,0,0,0,0,6.5c.35.79,8.82,19.57,27.65,38.4C61.43,194.74,93.12,208,128,208a127.11,127.11,0,0,0,52.07-10.83l22,24.21a8,8,0,1,0,11.84-10.76Zm47.33,75.84,41.67,45.85a32,32,0,0,1-41.67-45.85ZM128,192c-30.78,0-57.67-11.19-79.93-33.25A133.16,133.16,0,0,1,25,128c4.69-8.79,19.66-33.39,47.35-49.38l18,19.75a48,48,0,0,0,63.66,70l14.73,16.2A112,112,0,0,1,128,192Zm6-95.43a8,8,0,0,1,3-15.72,48.16,48.16,0,0,1,38.77,42.64,8,8,0,0,1-7.22,8.71,6.39,6.39,0,0,1-.75,0,8,8,0,0,1-8-7.26A32.09,32.09,0,0,0,134,96.57Zm113.28,34.69c-.42.94-10.55,23.37-33.36,43.8a8,8,0,1,1-10.67-11.92A132.77,132.77,0,0,0,231.05,128a133.15,133.15,0,0,0-23.12-30.77C185.67,75.19,158.78,64,128,64a118.37,118.37,0,0,0-19.36,1.57A8,8,0,1,1,106,49.79,134,134,0,0,1,128,48c34.88,0,66.57,13.26,91.66,38.35,18.83,18.83,27.3,37.62,27.65,38.41A8,8,0,0,1,247.31,131.26Z"/>';
|
|
37
|
+
readonly file: '<path d="M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Z"/>';
|
|
38
|
+
readonly 'file-text': '<path d="M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Zm-32-80a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,136Zm0,32a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,168Z"/>';
|
|
39
|
+
readonly 'floppy-disk': '<path d="M219.31,72,184,36.69A15.86,15.86,0,0,0,172.69,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V83.31A15.86,15.86,0,0,0,219.31,72ZM168,208H88V152h80Zm40,0H184V152a16,16,0,0,0-16-16H88a16,16,0,0,0-16,16v56H48V48H172.69L208,83.31ZM160,72a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h56A8,8,0,0,1,160,72Z"/>';
|
|
40
|
+
readonly folder: '<path d="M216,72H131.31L104,44.69A15.86,15.86,0,0,0,92.69,40H40A16,16,0,0,0,24,56V200.62A15.4,15.4,0,0,0,39.38,216H216.89A15.13,15.13,0,0,0,232,200.89V88A16,16,0,0,0,216,72ZM40,56H92.69l16,16H40ZM216,200H40V88H216Z"/>';
|
|
41
|
+
readonly 'folder-open': '<path d="M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z"/>';
|
|
42
|
+
readonly funnel: '<path d="M230.6,49.53A15.81,15.81,0,0,0,216,40H40A16,16,0,0,0,28.19,66.76l.08.09L96,139.17V216a16,16,0,0,0,24.87,13.32l32-21.34A16,16,0,0,0,160,194.66V139.17l67.74-72.32.08-.09A15.8,15.8,0,0,0,230.6,49.53ZM40,56h0Zm106.18,74.58A8,8,0,0,0,144,136v58.66L112,216V136a8,8,0,0,0-2.16-5.47L40,56H216Z"/>';
|
|
43
|
+
readonly gauge: '<path d="M207.06,72.67A111.24,111.24,0,0,0,128,40h-.4C66.07,40.21,16,91,16,153.13V176a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V152A111.25,111.25,0,0,0,207.06,72.67ZM224,176H119.71l54.76-75.3a8,8,0,0,0-12.94-9.42L99.92,176H32V153.13c0-3.08.15-6.12.43-9.13H56a8,8,0,0,0,0-16H35.27c10.32-38.86,44-68.24,84.73-71.66V80a8,8,0,0,0,16,0V56.33A96.14,96.14,0,0,1,221,128H200a8,8,0,0,0,0,16h23.67c.21,2.65.33,5.31.33,8Z"/>';
|
|
44
|
+
readonly gear: '<path d="M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.21,107.21,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.71,107.71,0,0,0-26.25-10.87,8,8,0,0,0-7.06,1.49L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.21,107.21,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8,8,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8,8,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"/>';
|
|
45
|
+
readonly globe: '<path d="M128,24h0A104,104,0,1,0,232,128,104.12,104.12,0,0,0,128,24Zm88,104a87.61,87.61,0,0,1-3.33,24H174.16a157.44,157.44,0,0,0,0-48h38.51A87.61,87.61,0,0,1,216,128ZM102,168H154a115.11,115.11,0,0,1-26,45A115.27,115.27,0,0,1,102,168Zm-3.9-16a140.84,140.84,0,0,1,0-48h59.88a140.84,140.84,0,0,1,0,48ZM40,128a87.61,87.61,0,0,1,3.33-24H81.84a157.44,157.44,0,0,0,0,48H43.33A87.61,87.61,0,0,1,40,128ZM154,88H102a115.11,115.11,0,0,1,26-45A115.27,115.27,0,0,1,154,88Zm52.33,0H170.71a135.28,135.28,0,0,0-22.3-45.6A88.29,88.29,0,0,1,206.37,88ZM107.59,42.4A135.28,135.28,0,0,0,85.29,88H49.63A88.29,88.29,0,0,1,107.59,42.4ZM49.63,168H85.29a135.28,135.28,0,0,0,22.3,45.6A88.29,88.29,0,0,1,49.63,168Zm98.78,45.6a135.28,135.28,0,0,0,22.3-45.6h35.66A88.29,88.29,0,0,1,148.41,213.6Z"/>';
|
|
46
|
+
readonly 'hard-drives': '<path d="M208,136H48a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V152A16,16,0,0,0,208,136Zm0,64H48V152H208v48Zm0-160H48A16,16,0,0,0,32,56v48a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V56A16,16,0,0,0,208,40Zm0,64H48V56H208v48ZM192,80a12,12,0,1,1-12-12A12,12,0,0,1,192,80Zm0,96a12,12,0,1,1-12-12A12,12,0,0,1,192,176Z"/>';
|
|
47
|
+
readonly heart: '<path d="M178,40c-20.65,0-38.73,8.88-50,23.89C116.73,48.88,98.65,40,78,40a62.07,62.07,0,0,0-62,62c0,70,103.79,126.66,108.21,129a8,8,0,0,0,7.58,0C136.21,228.66,240,172,240,102A62.07,62.07,0,0,0,178,40ZM128,214.8C109.74,204.16,32,155.69,32,102A46.06,46.06,0,0,1,78,56c19.45,0,35.78,10.36,42.6,27a8,8,0,0,0,14.8,0c6.82-16.67,23.15-27,42.6-27a46.06,46.06,0,0,1,46,46C224,155.61,146.24,204.15,128,214.8Z"/>';
|
|
48
|
+
readonly house: '<path d="M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z"/>';
|
|
49
|
+
readonly image: '<path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V158.75l-26.07-26.06a16,16,0,0,0-22.63,0l-20,20-44-44a16,16,0,0,0-22.62,0L40,149.37V56ZM40,172l52-52,80,80H40Zm176,28H194.63l-36-36,20-20L216,181.38V200ZM144,100a12,12,0,1,1,12,12A12,12,0,0,1,144,100Z"/>';
|
|
50
|
+
readonly info: '<path d="M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z"/>';
|
|
51
|
+
readonly key: '<path d="M216.57,39.43A80,80,0,0,0,83.91,120.78L28.69,176A15.86,15.86,0,0,0,24,187.31V216a16,16,0,0,0,16,16H72a8,8,0,0,0,8-8V208H96a8,8,0,0,0,8-8V184h16a8,8,0,0,0,5.66-2.34l9.56-9.57A79.73,79.73,0,0,0,160,176h.1A80,80,0,0,0,216.57,39.43ZM224,98.1c-1.09,34.09-29.75,61.86-63.89,61.9H160a63.7,63.7,0,0,1-23.65-4.51,8,8,0,0,0-8.84,1.68L116.69,168H96a8,8,0,0,0-8,8v16H72a8,8,0,0,0-8,8v16H40V187.31l58.83-58.82a8,8,0,0,0,1.68-8.84A63.72,63.72,0,0,1,96,95.92c0-34.14,27.81-62.8,61.9-63.89A64,64,0,0,1,224,98.1ZM192,76a12,12,0,1,1-12-12A12,12,0,0,1,192,76Z"/>';
|
|
52
|
+
readonly layout: '<path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V96H40V56ZM40,112H96v88H40Zm176,88H112V112H216v88Z"/>';
|
|
53
|
+
readonly link: '<path d="M240,88.23a54.43,54.43,0,0,1-16,37L189.25,160a54.27,54.27,0,0,1-38.63,16h-.05A54.63,54.63,0,0,1,96,119.84a8,8,0,0,1,16,.45A38.62,38.62,0,0,0,150.58,160h0a38.39,38.39,0,0,0,27.31-11.31l34.75-34.75a38.63,38.63,0,0,0-54.63-54.63l-11,11A8,8,0,0,1,135.7,59l11-11A54.65,54.65,0,0,1,224,48,54.86,54.86,0,0,1,240,88.23ZM109,185.66l-11,11A38.41,38.41,0,0,1,70.6,208h0a38.63,38.63,0,0,1-27.29-65.94L78,107.31A38.63,38.63,0,0,1,144,135.71a8,8,0,0,0,16,.45A54.86,54.86,0,0,0,144,96a54.65,54.65,0,0,0-77.27,0L32,130.75A54.62,54.62,0,0,0,70.56,224h0a54.28,54.28,0,0,0,38.64-16l11-11A8,8,0,0,0,109,185.66Z"/>';
|
|
54
|
+
readonly list: '<path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>';
|
|
55
|
+
readonly 'list-bullets': '<path d="M80,64a8,8,0,0,1,8-8H216a8,8,0,0,1,0,16H88A8,8,0,0,1,80,64Zm136,56H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Zm0,64H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM44,52A12,12,0,1,0,56,64,12,12,0,0,0,44,52Zm0,64a12,12,0,1,0,12,12A12,12,0,0,0,44,116Zm0,64a12,12,0,1,0,12,12A12,12,0,0,0,44,180Z"/>';
|
|
56
|
+
readonly lock: '<path d="M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM96,56a32,32,0,0,1,64,0V80H96ZM208,208H48V96H208V208Zm-68-56a12,12,0,1,1-12-12A12,12,0,0,1,140,152Z"/>';
|
|
57
|
+
readonly 'magnifying-glass': '<path d="M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"/>';
|
|
58
|
+
readonly minus: '<path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128Z"/>';
|
|
59
|
+
readonly monitor: '<path d="M208,40H48A24,24,0,0,0,24,64V176a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V64A24,24,0,0,0,208,40Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8Zm-48,48a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,224Z"/>';
|
|
60
|
+
readonly moon: '<path d="M233.54,142.23a8,8,0,0,0-8-2,88.08,88.08,0,0,1-109.8-109.8,8,8,0,0,0-10-10,104.84,104.84,0,0,0-52.91,37A104,104,0,0,0,136,224a103.09,103.09,0,0,0,62.52-20.88,104.84,104.84,0,0,0,37-52.91A8,8,0,0,0,233.54,142.23ZM188.9,190.34A88,88,0,0,1,65.66,67.11a89,89,0,0,1,31.4-26A106,106,0,0,0,96,56,104.11,104.11,0,0,0,200,160a106,106,0,0,0,14.92-1.06A89,89,0,0,1,188.9,190.34Z"/>';
|
|
61
|
+
readonly 'paper-plane-tilt': '<path d="M227.32,28.68a16,16,0,0,0-15.66-4.08l-.15,0L19.57,82.84a16,16,0,0,0-2.49,29.8L102,154l41.3,84.87A15.86,15.86,0,0,0,157.74,248q.69,0,1.38-.06a15.88,15.88,0,0,0,14-11.51l58.2-191.94c0-.05,0-.1,0-.15A16,16,0,0,0,227.32,28.68ZM157.83,231.85l-.05.14,0-.07-40.06-82.3,48-48a8,8,0,0,0-11.31-11.31l-48,48L24.08,98.25l-.07,0,.14,0L216,40Z"/>';
|
|
62
|
+
readonly 'pencil-simple': '<path d="M227.31,73.37,182.63,28.68a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H92.69A15.86,15.86,0,0,0,104,219.31L227.31,96a16,16,0,0,0,0-22.63ZM92.69,208H48V163.31l88-88L180.69,120ZM192,108.68,147.31,64l24-24L216,84.68Z"/>';
|
|
63
|
+
readonly plus: '<path d="M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"/>';
|
|
64
|
+
readonly printer: '<path d="M214.67,72H200V40a8,8,0,0,0-8-8H64a8,8,0,0,0-8,8V72H41.33C27.36,72,16,82.77,16,96v80a8,8,0,0,0,8,8H56v32a8,8,0,0,0,8,8H192a8,8,0,0,0,8-8V184h32a8,8,0,0,0,8-8V96C240,82.77,228.64,72,214.67,72ZM72,48H184V72H72ZM184,208H72V160H184Zm40-40H200V152a8,8,0,0,0-8-8H64a8,8,0,0,0-8,8v16H32V96c0-4.41,4.19-8,9.33-8H214.67c5.14,0,9.33,3.59,9.33,8Zm-24-52a12,12,0,1,1-12-12A12,12,0,0,1,200,116Z"/>';
|
|
65
|
+
readonly pulse: '<path d="M240,128a8,8,0,0,1-8,8H204.94l-37.78,75.58A8,8,0,0,1,160,216h-.4a8,8,0,0,1-7.08-5.14L95.35,60.76,63.28,131.31A8,8,0,0,1,56,136H24a8,8,0,0,1,0-16H50.85L88.72,36.69a8,8,0,0,1,14.76.46l57.51,151,31.85-63.71A8,8,0,0,1,200,120h32A8,8,0,0,1,240,128Z"/>';
|
|
66
|
+
readonly question: '<path d="M140,180a12,12,0,1,1-12-12A12,12,0,0,1,140,180ZM128,72c-22.06,0-40,16.15-40,36v4a8,8,0,0,0,16,0v-4c0-11,10.77-20,24-20s24,9,24,20-10.77,20-24,20a8,8,0,0,0-8,8v8a8,8,0,0,0,16,0v-.72c18.24-3.35,32-17.9,32-35.28C168,88.15,150.06,72,128,72Zm104,56A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"/>';
|
|
67
|
+
readonly 'share-network': '<path d="M176,160a39.89,39.89,0,0,0-28.62,12.09l-46.1-29.63a39.8,39.8,0,0,0,0-28.92l46.1-29.63a40,40,0,1,0-8.66-13.45l-46.1,29.63a40,40,0,1,0,0,55.82l46.1,29.63A40,40,0,1,0,176,160Zm0-128a24,24,0,1,1-24,24A24,24,0,0,1,176,32ZM64,152a24,24,0,1,1,24-24A24,24,0,0,1,64,152Zm112,72a24,24,0,1,1,24-24A24,24,0,0,1,176,224Z"/>';
|
|
68
|
+
readonly shield: '<path d="M208,40H48A16,16,0,0,0,32,56v56c0,52.72,25.52,84.67,46.93,102.19,23.06,18.86,46,25.27,47,25.53a8,8,0,0,0,4.2,0c1-.26,23.91-6.67,47-25.53C198.48,196.67,224,164.72,224,112V56A16,16,0,0,0,208,40Zm0,72c0,37.07-13.66,67.16-40.6,89.42A129.3,129.3,0,0,1,128,223.62a128.25,128.25,0,0,1-38.92-21.81C61.82,179.51,48,149.3,48,112l0-56,160,0Z"/>';
|
|
69
|
+
readonly 'sidebar-simple': '<path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM40,56H80V200H40ZM216,200H96V56H216V200Z"/>';
|
|
70
|
+
readonly 'sign-in': '<path d="M141.66,133.66l-40,40a8,8,0,0,1-11.32-11.32L116.69,136H24a8,8,0,0,1,0-16h92.69L90.34,93.66a8,8,0,0,1,11.32-11.32l40,40A8,8,0,0,1,141.66,133.66ZM200,32H136a8,8,0,0,0,0,16h56V208H136a8,8,0,0,0,0,16h64a8,8,0,0,0,8-8V40A8,8,0,0,0,200,32Z"/>';
|
|
71
|
+
readonly 'sign-out': '<path d="M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40a8,8,0,0,0-11.32,11.32L204.69,120H112a8,8,0,0,0,0,16h92.69l-26.35,26.34a8,8,0,0,0,11.32,11.32l40-40A8,8,0,0,0,229.66,122.34Z"/>';
|
|
72
|
+
readonly 'sliders-horizontal': '<path d="M40,88H73a32,32,0,0,0,62,0h81a8,8,0,0,0,0-16H135a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16Zm64-24A16,16,0,1,1,88,80,16,16,0,0,1,104,64ZM216,168H199a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16h97a32,32,0,0,0,62,0h17a8,8,0,0,0,0-16Zm-48,24a16,16,0,1,1,16-16A16,16,0,0,1,168,192Z"/>';
|
|
73
|
+
readonly 'squares-four': '<path d="M104,40H56A16,16,0,0,0,40,56v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V56A16,16,0,0,0,104,40Zm0,64H56V56h48v48Zm96-64H152a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V56A16,16,0,0,0,200,40Zm0,64H152V56h48v48Zm-96,32H56a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V152A16,16,0,0,0,104,136Zm0,64H56V152h48v48Zm96-64H152a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V152A16,16,0,0,0,200,136Zm0,64H152V152h48v48Z"/>';
|
|
74
|
+
readonly star: '<path d="M239.18,97.26A16.38,16.38,0,0,0,224.92,86l-59-4.76L143.14,26.15a16.36,16.36,0,0,0-30.27,0L90.11,81.23,31.08,86a16.46,16.46,0,0,0-9.37,28.86l45,38.83L53,211.75a16.38,16.38,0,0,0,24.5,17.82L128,198.49l50.53,31.08A16.4,16.4,0,0,0,203,211.75l-13.76-58.07,45-38.83A16.43,16.43,0,0,0,239.18,97.26Zm-15.34,5.47-48.7,42a8,8,0,0,0-2.56,7.91l14.88,62.8a.37.37,0,0,1-.17.48c-.18.14-.23.11-.38,0l-54.72-33.65a8,8,0,0,0-8.38,0L69.09,215.94c-.15.09-.19.12-.38,0a.37.37,0,0,1-.17-.48l14.88-62.8a8,8,0,0,0-2.56-7.91l-48.7-42c-.12-.1-.23-.19-.13-.5s.18-.27.33-.29l63.92-5.16A8,8,0,0,0,103,91.86l24.62-59.61c.08-.17.11-.25.35-.25s.27.08.35.25L153,91.86a8,8,0,0,0,6.75,4.92l63.92,5.16c.15,0,.24,0,.33.29S224,102.63,223.84,102.73Z"/>';
|
|
75
|
+
readonly sun: '<path d="M120,40V16a8,8,0,0,1,16,0V40a8,8,0,0,1-16,0Zm72,88a64,64,0,1,1-64-64A64.07,64.07,0,0,1,192,128Zm-16,0a48,48,0,1,0-48,48A48.05,48.05,0,0,0,176,128ZM58.34,69.66A8,8,0,0,0,69.66,58.34l-16-16A8,8,0,0,0,42.34,53.66Zm0,116.68-16,16a8,8,0,0,0,11.32,11.32l16-16a8,8,0,0,0-11.32-11.32ZM192,72a8,8,0,0,0,5.66-2.34l16-16a8,8,0,0,0-11.32-11.32l-16,16A8,8,0,0,0,192,72Zm5.66,114.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32-11.32ZM48,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H40A8,8,0,0,0,48,128Zm80,80a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V216A8,8,0,0,0,128,208Zm112-88H216a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Z"/>';
|
|
76
|
+
readonly trash: '<path d="M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM96,40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96Zm96,168H64V64H192ZM112,104v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Z"/>';
|
|
77
|
+
readonly 'upload-simple': '<path d="M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0ZM93.66,77.66,120,51.31V144a8,8,0,0,0,16,0V51.31l26.34,26.35a8,8,0,0,0,11.32-11.32l-40-40a8,8,0,0,0-11.32,0l-40,40A8,8,0,0,0,93.66,77.66Z"/>';
|
|
78
|
+
readonly user: '<path d="M230.92,212c-15.23-26.33-38.7-45.21-66.09-54.16a72,72,0,1,0-73.66,0C63.78,166.78,40.31,185.66,25.08,212a8,8,0,1,0,13.85,8c18.84-32.56,52.14-52,89.07-52s70.23,19.44,89.07,52a8,8,0,1,0,13.85-8ZM72,96a56,56,0,1,1,56,56A56.06,56.06,0,0,1,72,96Z"/>';
|
|
79
|
+
readonly users: '<path d="M117.25,157.92a60,60,0,1,0-66.5,0A95.83,95.83,0,0,0,3.53,195.63a8,8,0,1,0,13.4,8.74,80,80,0,0,1,134.14,0,8,8,0,0,0,13.4-8.74A95.83,95.83,0,0,0,117.25,157.92ZM40,108a44,44,0,1,1,44,44A44.05,44.05,0,0,1,40,108Zm210.14,98.7a8,8,0,0,1-11.07-2.33A79.83,79.83,0,0,0,172,168a8,8,0,0,1,0-16,44,44,0,1,0-16.34-84.87,8,8,0,1,1-5.94-14.85,60,60,0,0,1,55.53,105.64,95.83,95.83,0,0,1,47.22,37.71A8,8,0,0,1,250.14,206.7Z"/>';
|
|
80
|
+
readonly warning: '<path d="M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"/>';
|
|
81
|
+
readonly 'warning-circle': '<path d="M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z"/>';
|
|
82
|
+
readonly x: '<path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"/>';
|
|
83
|
+
readonly 'x-circle': '<path d="M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"/>';
|
|
84
|
+
readonly columns: '<path d="M104,32H64A16,16,0,0,0,48,48V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,104,32Zm0,176H64V48h40ZM192,32H152a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,192,32Zm0,176H152V48h40Z"/>';
|
|
85
|
+
readonly square: '<path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,176H48V48H208V208Z"/>';
|
|
86
|
+
readonly 'check-square': '<path d="M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM224,48V208a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32H208A16,16,0,0,1,224,48ZM208,208V48H48V208H208Z"/>';
|
|
87
|
+
readonly 'brackets-curly': '<path d="M43.18,128a29.78,29.78,0,0,1,8,10.26c4.8,9.9,4.8,22,4.8,33.74,0,24.31,1,36,24,36a8,8,0,0,1,0,16c-17.48,0-29.32-6.14-35.2-18.26-4.8-9.9-4.8-22-4.8-33.74,0-24.31-1-36-24-36a8,8,0,0,1,0-16c23,0,24-11.69,24-36,0-11.72,0-23.84,4.8-33.74C50.68,38.14,62.52,32,80,32a8,8,0,0,1,0,16C57,48,56,59.69,56,84c0,11.72,0,23.84-4.8,33.74A29.78,29.78,0,0,1,43.18,128ZM240,120c-23,0-24-11.69-24-36,0-11.72,0-23.84-4.8-33.74C205.32,38.14,193.48,32,176,32a8,8,0,0,0,0,16c23,0,24,11.69,24,36,0,11.72,0,23.84,4.8,33.74a29.78,29.78,0,0,0,8,10.26,29.78,29.78,0,0,0-8,10.26c-4.8,9.9-4.8,22-4.8,33.74,0,24.31-1,36-24,36a8,8,0,0,0,0,16c17.48,0,29.32-6.14,35.2-18.26,4.8-9.9,4.8-22,4.8-33.74,0-24.31,1-36,24-36a8,8,0,0,0,0-16Z"/>';
|
|
88
|
+
readonly function: '<path d="M208,40a8,8,0,0,1-8,8H170.71a24,24,0,0,0-23.62,19.71L137.59,120H184a8,8,0,0,1,0,16H134.68l-10,55.16A40,40,0,0,1,85.29,224H56a8,8,0,0,1,0-16H85.29a24,24,0,0,0,23.62-19.71l9.5-52.29H72a8,8,0,0,1,0-16h49.32l10-55.16A40,40,0,0,1,170.71,32H200A8,8,0,0,1,208,40Z"/>';
|
|
89
|
+
readonly stack: '<path d="M230.91,172A8,8,0,0,1,228,182.91l-96,56a8,8,0,0,1-8.06,0l-96-56A8,8,0,0,1,36,169.09l92,53.65,92-53.65A8,8,0,0,1,230.91,172ZM220,121.09l-92,53.65L36,121.09A8,8,0,0,0,28,134.91l96,56a8,8,0,0,0,8.06,0l96-56A8,8,0,1,0,220,121.09ZM24,80a8,8,0,0,1,4-6.91l96-56a8,8,0,0,1,8.06,0l96,56a8,8,0,0,1,0,13.82l-96,56a8,8,0,0,1-8.06,0l-96-56A8,8,0,0,1,24,80Zm23.88,0L128,126.74,208.12,80,128,33.26Z"/>';
|
|
90
|
+
readonly 'terminal-window': '<path d="M128,128a8,8,0,0,1-3,6.25l-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32A8,8,0,0,1,128,128Zm48,24H136a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm56-96V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM216,200V56H40V200H216Z"/>';
|
|
91
|
+
readonly 'file-code': '<path d="M181.66,146.34a8,8,0,0,1,0,11.32l-24,24a8,8,0,0,1-11.32-11.32L164.69,152l-18.35-18.34a8,8,0,0,1,11.32-11.32Zm-72-24a8,8,0,0,0-11.32,0l-24,24a8,8,0,0,0,0,11.32l24,24a8,8,0,0,0,11.32-11.32L91.31,152l18.35-18.34A8,8,0,0,0,109.66,122.34ZM216,88V216a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V40A16,16,0,0,1,56,24h96a8,8,0,0,1,5.66,2.34l56,56A8,8,0,0,1,216,88Zm-56-8h28.69L160,51.31Zm40,136V96H152a8,8,0,0,1-8-8V40H56V216H200Z"/>';
|
|
92
|
+
readonly hash: '<path d="M224,88H175.4l8.47-46.57a8,8,0,0,0-15.74-2.86l-9,49.43H111.4l8.47-46.57a8,8,0,0,0-15.74-2.86L95.14,88H48a8,8,0,0,0,0,16H92.23L83.5,152H32a8,8,0,0,0,0,16H80.6l-8.47,46.57a8,8,0,0,0,6.44,9.3A7.79,7.79,0,0,0,80,224a8,8,0,0,0,7.86-6.57l9-49.43H144.6l-8.47,46.57a8,8,0,0,0,6.44,9.3A7.79,7.79,0,0,0,144,224a8,8,0,0,0,7.86-6.57l9-49.43H208a8,8,0,0,0,0-16H163.77l8.73-48H224a8,8,0,0,0,0-16Zm-76.5,64H99.77l8.73-48h47.73Z"/>';
|
|
93
|
+
readonly command: '<path d="M180,144H160V112h20a36,36,0,1,0-36-36V96H112V76a36,36,0,1,0-36,36H96v32H76a36,36,0,1,0,36,36V160h32v20a36,36,0,1,0,36-36ZM160,76a20,20,0,1,1,20,20H160ZM56,76a20,20,0,0,1,40,0V96H76A20,20,0,0,1,56,76ZM96,180a20,20,0,1,1-20-20H96Zm16-68h32v32H112Zm68,88a20,20,0,0,1-20-20V160h20a20,20,0,0,1,0,40Z"/>';
|
|
94
|
+
};
|
|
95
|
+
/** Lucide names that map to a Phosphor icon. */
|
|
96
|
+
declare const PH_ALIAS: {
|
|
97
|
+
readonly 'chart-column': 'chart-bar';
|
|
98
|
+
readonly settings: 'gear';
|
|
99
|
+
readonly search: 'magnifying-glass';
|
|
100
|
+
readonly pencil: 'pencil-simple';
|
|
101
|
+
readonly 'trash-2': 'trash';
|
|
102
|
+
readonly download: 'download-simple';
|
|
103
|
+
readonly upload: 'upload-simple';
|
|
104
|
+
readonly 'refresh-cw': 'arrows-clockwise';
|
|
105
|
+
readonly 'chevron-right': 'caret-right';
|
|
106
|
+
readonly 'chevron-left': 'caret-left';
|
|
107
|
+
readonly 'chevron-down': 'caret-down';
|
|
108
|
+
readonly 'chevron-up': 'caret-up';
|
|
109
|
+
readonly ellipsis: 'dots-three';
|
|
110
|
+
readonly 'ellipsis-vertical': 'dots-three-vertical';
|
|
111
|
+
readonly calendar: 'calendar-blank';
|
|
112
|
+
readonly 'log-out': 'sign-out';
|
|
113
|
+
readonly 'log-in': 'sign-in';
|
|
114
|
+
readonly 'eye-off': 'eye-slash';
|
|
115
|
+
readonly 'circle-alert': 'warning-circle';
|
|
116
|
+
readonly 'triangle-alert': 'warning';
|
|
117
|
+
readonly 'circle-check': 'check-circle';
|
|
118
|
+
readonly 'circle-x': 'x-circle';
|
|
119
|
+
readonly 'loader-circle': 'circle-notch';
|
|
120
|
+
readonly 'panel-left-close': 'sidebar-simple';
|
|
121
|
+
readonly 'panel-left-open': 'sidebar-simple';
|
|
122
|
+
readonly 'external-link': 'arrow-square-out';
|
|
123
|
+
readonly mail: 'envelope-simple';
|
|
124
|
+
readonly 'share-2': 'share-network';
|
|
125
|
+
readonly send: 'paper-plane-tilt';
|
|
126
|
+
readonly save: 'floppy-disk';
|
|
127
|
+
readonly 'undo-2': 'arrow-u-up-left';
|
|
128
|
+
readonly 'redo-2': 'arrow-u-up-right';
|
|
129
|
+
readonly list: 'list-bullets';
|
|
130
|
+
readonly 'layout-grid': 'squares-four';
|
|
131
|
+
readonly 'layout-dashboard': 'layout';
|
|
132
|
+
readonly server: 'hard-drives';
|
|
133
|
+
readonly menu: 'list';
|
|
134
|
+
readonly activity: 'pulse';
|
|
135
|
+
readonly 'circle-help': 'question';
|
|
136
|
+
readonly 'message-square': 'chat-centered';
|
|
137
|
+
};
|
|
138
|
+
type PhosphorName = keyof typeof PH;
|
|
139
|
+
/** A built-in icon: a Phosphor name, or a Lucide name that maps to one. */
|
|
140
|
+
type IconName = PhosphorName | keyof typeof PH_ALIAS;
|
|
141
|
+
/** Path data for a custom 24 x 24 stroke icon ('M4 12h16'), or SVG markup on a 256 x 256 viewBox. */
|
|
142
|
+
type CustomIcon = `M${string}` | `m${string}` | `<${string}`;
|
|
143
|
+
/** What an `icon` prop takes: a built-in name (checked by TypeScript) or a custom icon. */
|
|
144
|
+
type IconSource = IconName | CustomIcon;
|
|
145
|
+
interface IconProps {
|
|
146
|
+
/** Built-in Phosphor name, e.g. 'house', 'trash' (Lucide names work as aliases). */
|
|
147
|
+
name?: IconName;
|
|
148
|
+
/** A custom icon when it is not built in: 24 px path data, or SVG markup. */
|
|
149
|
+
d?: CustomIcon;
|
|
150
|
+
/** Default 20. */
|
|
151
|
+
size?: number;
|
|
152
|
+
/** Stroke width of a custom path icon. Default 2. */
|
|
153
|
+
strokeWidth?: number;
|
|
154
|
+
/** The Fill version, for a selected item. */
|
|
155
|
+
filled?: boolean;
|
|
156
|
+
className?: string;
|
|
157
|
+
}
|
|
158
|
+
/** Phosphor icon, 20 px, inherits the text color. Decorative: label the control that holds it. */
|
|
159
|
+
export declare function Icon({ name, d, size, strokeWidth, filled, className }: IconProps): import("react").JSX.Element;
|
|
160
|
+
/** Markup of every built-in icon by name, aliases included. */
|
|
161
|
+
export declare const icons: Readonly<Record<IconName, string>>;
|
|
162
|
+
interface NavItem {
|
|
163
|
+
id: string;
|
|
164
|
+
label: string;
|
|
165
|
+
/** Top-level items have an icon; the selected one is filled. */
|
|
166
|
+
icon?: IconSource;
|
|
167
|
+
/** Second level, shown under the item; it opens and closes. */
|
|
168
|
+
children?: NavItem[];
|
|
169
|
+
}
|
|
170
|
+
interface NavSection {
|
|
171
|
+
items: NavItem[];
|
|
172
|
+
}
|
|
173
|
+
interface SideNavProps {
|
|
174
|
+
/** Groups separated by a divider. */
|
|
175
|
+
sections: NavSection[];
|
|
176
|
+
/** Id of the current page. */
|
|
177
|
+
value: string;
|
|
178
|
+
onChange?: (id: string) => void;
|
|
179
|
+
/** 72 px with icons only, labels as tooltips. */
|
|
180
|
+
collapsed?: boolean;
|
|
181
|
+
/** Adds the collapse button at the bottom left. */
|
|
182
|
+
onToggle?: () => void;
|
|
183
|
+
brand?: React.ReactNode;
|
|
184
|
+
/** Default 「主要導覽」. */
|
|
185
|
+
label?: string;
|
|
186
|
+
className?: string;
|
|
187
|
+
}
|
|
188
|
+
/** The 240 px dashboard sidebar (72 px collapsed). The selection bar moves like a droplet. */
|
|
189
|
+
export declare function SideNav({ sections, value, onChange, collapsed, onToggle, brand, label, className }: SideNavProps): React.JSX.Element;
|
|
190
|
+
interface BreadcrumbItem {
|
|
191
|
+
label: string;
|
|
192
|
+
href?: string;
|
|
193
|
+
}
|
|
194
|
+
interface BreadcrumbProps {
|
|
195
|
+
/** From the top level down; the last one is the current page. */
|
|
196
|
+
items: BreadcrumbItem[];
|
|
197
|
+
className?: string;
|
|
198
|
+
}
|
|
199
|
+
/** Where the page sits: links to each level, the current page last and not a link. */
|
|
200
|
+
export declare function Breadcrumb({ items, className }: BreadcrumbProps): import("react").JSX.Element;
|
|
201
|
+
interface AppShellProps {
|
|
202
|
+
/** Sidebar groups. On phones, top-level items with an icon become bottom tabs; pages they cannot reach go under 「更多」. */
|
|
203
|
+
nav: NavSection[];
|
|
204
|
+
/** Id of the current page. */
|
|
205
|
+
value: string;
|
|
206
|
+
onNavigate: (id: string) => void;
|
|
207
|
+
/** Logo or product name at the top of the sidebar. */
|
|
208
|
+
brand?: React.ReactNode;
|
|
209
|
+
/** The page title, shown once in the top bar. Do not repeat it as a heading in the page. */
|
|
210
|
+
title?: string;
|
|
211
|
+
breadcrumb?: BreadcrumbItem[];
|
|
212
|
+
/** Opens search (CommandPalette). */
|
|
213
|
+
onSearch?: () => void;
|
|
214
|
+
/** Right side of the top bar: NotificationBell, ProjectSwitcher, the account menu. */
|
|
215
|
+
actions?: React.ReactNode;
|
|
216
|
+
/** The page: Cards and sections, 32 px apart. */
|
|
217
|
+
children: React.ReactNode;
|
|
218
|
+
className?: string;
|
|
219
|
+
}
|
|
220
|
+
/** The dashboard frame: sidebar (240 px, 72 px collapsed and on tablets), top bar, and bottom tabs on phones.
|
|
221
|
+
* The top bar hides while scrolling down and returns when scrolling up. */
|
|
222
|
+
export declare function AppShell({ nav, value, onNavigate, brand, title, breadcrumb, onSearch, actions, children, className }: AppShellProps): React.JSX.Element;
|
|
223
|
+
interface GridProps {
|
|
224
|
+
/** Columns from 1280 px. Under 600 px there is one column; in between, at most 2. Default 3. */
|
|
225
|
+
columns?: 1 | 2 | 3 | 4 | 6;
|
|
226
|
+
children: React.ReactNode;
|
|
227
|
+
className?: string;
|
|
228
|
+
}
|
|
229
|
+
/** Equal columns for Cards and KpiCards, 24 px apart. Use it instead of writing your own CSS grid. */
|
|
230
|
+
export declare function Grid({ columns, children, className }: GridProps): React.JSX.Element;
|
|
231
|
+
interface PageProps {
|
|
232
|
+
children: React.ReactNode;
|
|
233
|
+
className?: string;
|
|
234
|
+
}
|
|
235
|
+
/** The content of a page: sections and Grids stacked 32 px apart. */
|
|
236
|
+
export declare function Page({ children, className }: PageProps): React.JSX.Element;
|
|
237
|
+
interface AccentPickerProps {
|
|
238
|
+
/** Controlled #rrggbb. Without it, the picker reads and sets the stored accent itself. */
|
|
239
|
+
value?: string;
|
|
240
|
+
/** Without it, picking applies the color with setAccent. */
|
|
241
|
+
onChange?: (hex: string) => void;
|
|
242
|
+
/** Default 「強調色」. */
|
|
243
|
+
label?: string;
|
|
244
|
+
className?: string;
|
|
245
|
+
}
|
|
246
|
+
/** 8 swatches plus a hex field for any color. */
|
|
247
|
+
export declare function AccentPicker({ value, onChange, label, className }: AccentPickerProps): React.JSX.Element;
|
|
248
|
+
interface ButtonBase extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
|
|
249
|
+
/** A verb: 儲存, 刪除, 匯出. No 「確定」or 「好」. */
|
|
250
|
+
children: React.ReactNode;
|
|
251
|
+
/** Shows a spinner and disables the button; pair it with a progressive label such as 儲存中. */
|
|
252
|
+
loading?: boolean;
|
|
253
|
+
/** Leading icon: a built-in name such as 'plus', or custom path data. */
|
|
254
|
+
icon?: IconSource;
|
|
255
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
256
|
+
}
|
|
257
|
+
/** What the confirm dialog of a danger button says. */
|
|
258
|
+
interface DangerConfirm {
|
|
259
|
+
/** Names the object: 「刪除 api-gateway?」. */
|
|
260
|
+
title: string;
|
|
261
|
+
/** What is lost and whether it can be undone. */
|
|
262
|
+
body?: React.ReactNode;
|
|
263
|
+
/** The danger button's label in the dialog. Default: the button's own label. */
|
|
264
|
+
confirmLabel?: string;
|
|
265
|
+
}
|
|
266
|
+
type ButtonProps = (ButtonBase & {
|
|
267
|
+
/** primary: the one main action of a section. secondary (default): everything else. */
|
|
268
|
+
variant?: 'primary' | 'secondary';
|
|
269
|
+
}) | (ButtonBase & {
|
|
270
|
+
/** Destructive. Must be confirmed: pass `confirm`, or `confirmed` when this button is itself inside the confirm Dialog. */
|
|
271
|
+
variant: 'danger';
|
|
272
|
+
/** Opens a Dialog first; onClick runs only after the person confirms. */
|
|
273
|
+
confirm: DangerConfirm;
|
|
274
|
+
confirmed?: never;
|
|
275
|
+
}) | (ButtonBase & {
|
|
276
|
+
variant: 'danger';
|
|
277
|
+
/** This button is the confirming button of a Dialog (or DangerZone), so it runs at once. */
|
|
278
|
+
confirmed: true;
|
|
279
|
+
confirm?: never;
|
|
280
|
+
});
|
|
281
|
+
/** Buttons. Labels are verbs; one primary per section; danger actions are always confirmed. */
|
|
282
|
+
export declare function Button(props: ButtonProps): React.JSX.Element;
|
|
283
|
+
interface ActionBase {
|
|
284
|
+
/** A verb. */
|
|
285
|
+
label: string;
|
|
286
|
+
onClick?: () => void;
|
|
287
|
+
icon?: IconSource;
|
|
288
|
+
disabled?: boolean;
|
|
289
|
+
}
|
|
290
|
+
type ActionBarAction = (ActionBase & {
|
|
291
|
+
/** The one primary action. Default: the first action. */
|
|
292
|
+
primary?: boolean;
|
|
293
|
+
danger?: false;
|
|
294
|
+
}) | (ActionBase & {
|
|
295
|
+
/** Red in the 「更多」 menu, confirmed first. */
|
|
296
|
+
danger: true;
|
|
297
|
+
confirm: DangerConfirm;
|
|
298
|
+
primary?: false;
|
|
299
|
+
});
|
|
300
|
+
interface ActionBarProps {
|
|
301
|
+
actions: ActionBarAction[];
|
|
302
|
+
className?: string;
|
|
303
|
+
}
|
|
304
|
+
/** A card's actions in a row. Under 600 px the primary one fills the width and the rest go into 「更多」. */
|
|
305
|
+
export declare function ActionBar({ actions, className }: ActionBarProps): import("react").JSX.Element;
|
|
306
|
+
type AlertTone = 'info' | 'success' | 'warning' | 'danger';
|
|
307
|
+
interface AlertProps {
|
|
308
|
+
/** Default 'info'. danger is announced at once (role alert). */
|
|
309
|
+
tone?: AlertTone;
|
|
310
|
+
title?: string;
|
|
311
|
+
/** The cause and the fix, at most 2 short sentences. */
|
|
312
|
+
children?: React.ReactNode;
|
|
313
|
+
/** A verb, such as 重試. */
|
|
314
|
+
actionLabel?: string;
|
|
315
|
+
onAction?: () => void;
|
|
316
|
+
/** Adds × for info and success; warning and danger stay until the problem is solved. */
|
|
317
|
+
onDismiss?: () => void;
|
|
318
|
+
className?: string;
|
|
319
|
+
}
|
|
320
|
+
/** A message inside the page with a colored bar and icon. */
|
|
321
|
+
export declare function Alert({ tone, title, children, actionLabel, onAction, onDismiss, className }: AlertProps): React.JSX.Element;
|
|
322
|
+
type BadgeStatus = 'draft' | 'doing' | 'review' | 'done' | 'fail';
|
|
323
|
+
interface BadgeProps {
|
|
324
|
+
status: BadgeStatus;
|
|
325
|
+
/** 'dot' on cards: a mark and colored text, no chip. Default 'chip'. */
|
|
326
|
+
variant?: 'chip' | 'dot';
|
|
327
|
+
/** Default: the status name (草稿, 進行中, 審核中, 完成, 失敗). */
|
|
328
|
+
children?: React.ReactNode;
|
|
329
|
+
className?: string;
|
|
330
|
+
}
|
|
331
|
+
/** Status of an item. The mark's shape carries the status too, so it never depends on color alone. */
|
|
332
|
+
export declare function Badge({ status, variant, children, className }: BadgeProps): React.JSX.Element;
|
|
333
|
+
interface BarDatum {
|
|
334
|
+
label: string;
|
|
335
|
+
/** Shorter x-axis label when the full one would crowd. */
|
|
336
|
+
short?: string;
|
|
337
|
+
value: number;
|
|
338
|
+
}
|
|
339
|
+
interface BarChartProps {
|
|
340
|
+
data: BarDatum[];
|
|
341
|
+
/** Describes the chart for screen readers. */
|
|
342
|
+
label: string;
|
|
343
|
+
unit?: string;
|
|
344
|
+
/** Decimals of the values in the tooltip. Default 0. */
|
|
345
|
+
decimals?: number;
|
|
346
|
+
max?: number;
|
|
347
|
+
className?: string;
|
|
348
|
+
}
|
|
349
|
+
/** Compares a few categories: rounded bars that grow in, a tooltip on hover. */
|
|
350
|
+
export declare function BarChart({ data, label, unit, decimals, max, className }: BarChartProps): React.JSX.Element;
|
|
351
|
+
interface DayState {
|
|
352
|
+
selected?: boolean;
|
|
353
|
+
inRange?: boolean;
|
|
354
|
+
start?: boolean;
|
|
355
|
+
end?: boolean;
|
|
356
|
+
disabled?: boolean;
|
|
357
|
+
}
|
|
358
|
+
interface CalendarProps {
|
|
359
|
+
/** The month shown first. Default: this month. */
|
|
360
|
+
focus?: Date | null;
|
|
361
|
+
onPick?: (d: Date) => void;
|
|
362
|
+
onHover?: (d: Date | null) => void;
|
|
363
|
+
/** How each day looks: selected, inside a range, disabled. */
|
|
364
|
+
dayState?: (d: Date) => DayState | undefined;
|
|
365
|
+
}
|
|
366
|
+
/** A month grid: selected days are rounded squares, today has a dot under the number. */
|
|
367
|
+
export declare function Calendar({ focus, onPick, onHover, dayState }: CalendarProps): React.JSX.Element;
|
|
368
|
+
interface CardProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {
|
|
369
|
+
/** Heading at the top left. */
|
|
370
|
+
title?: React.ReactNode;
|
|
371
|
+
/** Buttons at the top right. */
|
|
372
|
+
actions?: React.ReactNode;
|
|
373
|
+
/** false: no inner padding, for a table or a tree that fills the card. */
|
|
374
|
+
padding?: boolean;
|
|
375
|
+
/** Element to render. Default 'section'. */
|
|
376
|
+
as?: 'section' | 'div' | 'article' | 'aside' | 'form';
|
|
377
|
+
children?: React.ReactNode;
|
|
378
|
+
}
|
|
379
|
+
/** The one container with a shadow. Never put a Card inside a Card: split the content into sections with headings instead. */
|
|
380
|
+
export declare function Card({ as: Tag, title, actions, padding, className, children, ...native }: CardProps): React.JSX.Element;
|
|
381
|
+
interface CheckboxProps {
|
|
382
|
+
/** 'mixed': some of a group are checked (shows a dash). */
|
|
383
|
+
checked?: boolean | 'mixed';
|
|
384
|
+
/** Receives the new state; from 'mixed' it goes to true. */
|
|
385
|
+
onChange?: (checked: boolean) => void;
|
|
386
|
+
/** Text to the right of the box. Without it, pass aria-label. */
|
|
387
|
+
label?: React.ReactNode;
|
|
388
|
+
'aria-label'?: string;
|
|
389
|
+
disabled?: boolean;
|
|
390
|
+
className?: string;
|
|
391
|
+
}
|
|
392
|
+
/** A check box with a drawn check mark. The whole row is the touch target. */
|
|
393
|
+
export declare function Checkbox({ checked, onChange, label, disabled, className, ...aria }: CheckboxProps): React.JSX.Element;
|
|
394
|
+
type TokenClass = '' | 'is-keyword' | 'is-constant' | 'is-comment' | 'is-string';
|
|
395
|
+
type Token = [TokenClass, string];
|
|
396
|
+
/** Splits each line into tokens. Block comments and strings may span lines. */
|
|
397
|
+
type Tokenizer = (lines: string[], lang: string) => Token[][];
|
|
398
|
+
type CodeLanguage = 'c' | 'js' | 'py' | 'sh' | 'plain';
|
|
399
|
+
interface CodeViewProps {
|
|
400
|
+
/** The source text. */
|
|
401
|
+
code: string;
|
|
402
|
+
/** Number of the first line. Default 1. */
|
|
403
|
+
start?: number;
|
|
404
|
+
/** A line or [from, to] to mark. On phones only these lines and `context` lines either side show at first. */
|
|
405
|
+
target?: number | [number, number];
|
|
406
|
+
/** Lines shown either side of the target on phones. Default 2. */
|
|
407
|
+
context?: number;
|
|
408
|
+
/** Path in the header; its extension picks the language. */
|
|
409
|
+
file?: string;
|
|
410
|
+
fileHref?: string;
|
|
411
|
+
onFile?: (e: React.MouseEvent<HTMLElement>) => void;
|
|
412
|
+
/** Header text when there is no file. */
|
|
413
|
+
title?: string;
|
|
414
|
+
/** 'c' | 'js' | 'py' | 'sh' | 'plain', or any language your tokenizer knows. Default: from the file extension. */
|
|
415
|
+
language?: string;
|
|
416
|
+
/** Label at the right of the header; false hides it. */
|
|
417
|
+
languageLabel?: string | false;
|
|
418
|
+
/** false: no syntax colors. */
|
|
419
|
+
highlight?: boolean;
|
|
420
|
+
/** Replaces the built-in highlighter, e.g. one built on Shiki that returns the same token classes. */
|
|
421
|
+
tokenizer?: Tokenizer;
|
|
422
|
+
/** Scrolls inside the box and keeps the target in view, e.g. '420px'. */
|
|
423
|
+
maxHeight?: string;
|
|
424
|
+
className?: string;
|
|
425
|
+
}
|
|
426
|
+
/** Source with line numbers and an optional target line: soft accent background, long lines wrap, light syntax colors. */
|
|
427
|
+
export declare function CodeView({ code, start, target, context, file, fileHref, onFile, title, language, languageLabel, highlight, tokenizer, maxHeight, className }: CodeViewProps): React.JSX.Element;
|
|
428
|
+
interface PaletteItem {
|
|
429
|
+
id?: string | number;
|
|
430
|
+
label: string;
|
|
431
|
+
/** Under the label; `backticks` are code. */
|
|
432
|
+
detail?: string;
|
|
433
|
+
/** What it is: 頁面, 設定, 指令, 檔案, or your own kinds (with `kinds`). Picks the icon. */
|
|
434
|
+
kind?: string;
|
|
435
|
+
/** Overrides the kind's icon. */
|
|
436
|
+
icon?: IconSource;
|
|
437
|
+
/** The label is code: Geist Mono. */
|
|
438
|
+
code?: boolean;
|
|
439
|
+
/** More words that find it. */
|
|
440
|
+
keywords?: string[];
|
|
441
|
+
}
|
|
442
|
+
interface CommandPaletteProps<T extends PaletteItem = PaletteItem> {
|
|
443
|
+
open: boolean;
|
|
444
|
+
onOpenChange: (open: boolean) => void;
|
|
445
|
+
items: T[];
|
|
446
|
+
onSelect?: (item: T) => void;
|
|
447
|
+
/** Default 「搜尋」. */
|
|
448
|
+
placeholder?: string;
|
|
449
|
+
/** Shown before anything is typed. */
|
|
450
|
+
recent?: T[];
|
|
451
|
+
/** Default 「最近開啟」. */
|
|
452
|
+
recentLabel?: string;
|
|
453
|
+
/** Shown with nothing typed and no recent items. Default 「輸入名稱開始搜尋」. */
|
|
454
|
+
emptyText?: string;
|
|
455
|
+
/** Icon for each of your own kinds: { 函式: 'brackets-curly' }. */
|
|
456
|
+
kinds?: Record<string, IconSource>;
|
|
457
|
+
/** false: items are already filtered (server search with onQueryChange). */
|
|
458
|
+
filter?: boolean;
|
|
459
|
+
onQueryChange?: (query: string) => void;
|
|
460
|
+
/** Shows 「搜尋中」 when there are no items yet. */
|
|
461
|
+
loading?: boolean;
|
|
462
|
+
/** Most results shown. Default 50. */
|
|
463
|
+
limit?: number;
|
|
464
|
+
/** Ctrl K / ⌘K toggles it. Default true. */
|
|
465
|
+
hotkey?: boolean;
|
|
466
|
+
defaultQuery?: string;
|
|
467
|
+
/** Default 「搜尋」. */
|
|
468
|
+
label?: string;
|
|
469
|
+
}
|
|
470
|
+
/** One search for everything, opened with Ctrl K (⌘K). A panel in the middle of the screen; results sorted by relevance. */
|
|
471
|
+
export declare function CommandPalette<T extends PaletteItem = PaletteItem>(props: CommandPaletteProps<T>): React.JSX.Element;
|
|
472
|
+
interface DangerZoneProps {
|
|
473
|
+
/** Default 「危險操作」. */
|
|
474
|
+
title?: string;
|
|
475
|
+
/** What the action destroys. */
|
|
476
|
+
description: string;
|
|
477
|
+
/** Default 「刪除」. */
|
|
478
|
+
actionLabel?: string;
|
|
479
|
+
/** Runs after the person confirms. */
|
|
480
|
+
onAction: () => void;
|
|
481
|
+
/** The confirm dialog: name the object in the title. */
|
|
482
|
+
confirm: DangerConfirm;
|
|
483
|
+
className?: string;
|
|
484
|
+
}
|
|
485
|
+
/** A red-bordered block at the bottom of a settings page for delete-type actions; the button asks to confirm. */
|
|
486
|
+
export declare function DangerZone({ title, description, actionLabel, onAction, confirm, className }: DangerZoneProps): import("react").JSX.Element;
|
|
487
|
+
/** A row: any object. Column keys are checked against it. */
|
|
488
|
+
type Row = object;
|
|
489
|
+
/** The string keys of a row type. */
|
|
490
|
+
type RowKey<R extends Row> = Extract<keyof R, string>;
|
|
491
|
+
interface ColumnBase<R extends Row> {
|
|
492
|
+
/** Header text; never wraps. */
|
|
493
|
+
label: string;
|
|
494
|
+
/** Numbers: right-aligned with tabular figures. */
|
|
495
|
+
numeric?: boolean;
|
|
496
|
+
/** After each value: '%', 'ms', '個'. Write it here, not in the label. */
|
|
497
|
+
unit?: string;
|
|
498
|
+
sortable?: boolean;
|
|
499
|
+
/** What to sort by when it is not the field itself. */
|
|
500
|
+
sortValue?: (row: R) => number | string;
|
|
501
|
+
width?: number;
|
|
502
|
+
grow?: number;
|
|
503
|
+
/** money: NT$ 1,280. date: 2026/11/04(三). relative: 「2 小時前」 within a week. percent: 1 decimal, no % sign: add unit: '%'. */
|
|
504
|
+
format?: 'money' | 'date' | 'datetime' | 'relative' | 'percent';
|
|
505
|
+
currency?: string;
|
|
506
|
+
decimals?: number;
|
|
507
|
+
/** The text search matches for this column. */
|
|
508
|
+
searchText?: (row: R) => string;
|
|
509
|
+
/** Place on phone cards: title row left, title row right, or hidden. Default: the first column is the title. */
|
|
510
|
+
mobile?: 'title' | 'status' | 'hide';
|
|
511
|
+
/** Long text: 2 lines with 「顯示全部」 on phone cards, one line with an ellipsis on desktop. */
|
|
512
|
+
long?: boolean;
|
|
513
|
+
}
|
|
514
|
+
/** A column shows a field of the row (key is checked against the row type), or computes its cell with render (any key). */
|
|
515
|
+
type DataTableColumn<R extends Row = Record<string, unknown>> = ColumnBase<R> & ({
|
|
516
|
+
/** The field shown in this column. */
|
|
517
|
+
key: RowKey<R>;
|
|
518
|
+
/** Your own cell content (a Badge, a link). Give searchText too, so search finds it. */
|
|
519
|
+
render?: (row: R) => React.ReactNode;
|
|
520
|
+
} | {
|
|
521
|
+
/** A column that is not a field: any unique key, with render (and searchText / sortValue for search and sort). */
|
|
522
|
+
key: string;
|
|
523
|
+
render: (row: R) => React.ReactNode;
|
|
524
|
+
});
|
|
525
|
+
interface FilterOption {
|
|
526
|
+
value: string;
|
|
527
|
+
label: string;
|
|
528
|
+
}
|
|
529
|
+
interface DataTableFilter<R extends Row = Record<string, unknown>> {
|
|
530
|
+
key: RowKey<R>;
|
|
531
|
+
label: string;
|
|
532
|
+
/** list: options with counts (default). range: min and max. */
|
|
533
|
+
type?: 'list' | 'range';
|
|
534
|
+
/** Default: every distinct value of the field. */
|
|
535
|
+
options?: FilterOption[];
|
|
536
|
+
/** More than one option at a time. Default true. */
|
|
537
|
+
multiple?: boolean;
|
|
538
|
+
/** Range inputs are multiplied by this before comparing, e.g. 1024 for MB typed against bytes. */
|
|
539
|
+
scale?: number;
|
|
540
|
+
/** Under the range inputs, e.g. 「單位:MB」. */
|
|
541
|
+
unitLabel?: string;
|
|
542
|
+
/** Your own test for a row. */
|
|
543
|
+
match?: (row: R, value: FilterValue) => boolean;
|
|
544
|
+
}
|
|
545
|
+
type RangeValue = {
|
|
546
|
+
min: string;
|
|
547
|
+
max: string;
|
|
548
|
+
};
|
|
549
|
+
type FilterValue = string[] | RangeValue;
|
|
550
|
+
interface DataTableView<R extends Row = Record<string, unknown>> {
|
|
551
|
+
id: string;
|
|
552
|
+
label: string;
|
|
553
|
+
filter?: (row: R) => boolean;
|
|
554
|
+
}
|
|
555
|
+
type Total<R extends Row> = 'sum' | 'avg' | ((rows: R[]) => React.ReactNode);
|
|
556
|
+
interface DataTableProps<R extends Row = Record<string, unknown>> {
|
|
557
|
+
columns: DataTableColumn<R>[];
|
|
558
|
+
/** Give each row an `id` so selection and animations follow the row, not its position. */
|
|
559
|
+
rows: R[];
|
|
560
|
+
/** Title above the table, also its accessible name. */
|
|
561
|
+
caption?: string;
|
|
562
|
+
/** Segmented summary above the table: 「全部」 plus one tab per status with its count; picking one filters the rows. */
|
|
563
|
+
summary?: {
|
|
564
|
+
key: RowKey<R>;
|
|
565
|
+
items: {
|
|
566
|
+
value: string;
|
|
567
|
+
label: string;
|
|
568
|
+
}[];
|
|
569
|
+
label?: string;
|
|
570
|
+
};
|
|
571
|
+
/** aria-label when there is no caption. */
|
|
572
|
+
label?: string;
|
|
573
|
+
/** Rows per page. Default 10. */
|
|
574
|
+
pageSize?: number;
|
|
575
|
+
/** Change it when the rows become a different data set: search, filters, sort, page, selection and summary reset. */
|
|
576
|
+
resetKey?: string | number;
|
|
577
|
+
/** Checkboxes appear when a row is hovered, and on every row once any row is selected. */
|
|
578
|
+
selectable?: boolean;
|
|
579
|
+
/** Buttons for the bar that replaces the header while rows are selected. */
|
|
580
|
+
bulkActions?: (ids: string[], clear: () => void) => React.ReactNode;
|
|
581
|
+
/** IconButtons at the row's right end, shown when the row is hovered. */
|
|
582
|
+
rowActions?: (row: R) => React.ReactNode;
|
|
583
|
+
/** px. Default 88. */
|
|
584
|
+
actionsWidth?: number;
|
|
585
|
+
/** Search box (default on; false hides it). Searches every column unless keys is given. */
|
|
586
|
+
search?: false | {
|
|
587
|
+
placeholder?: string;
|
|
588
|
+
keys?: RowKey<R>[];
|
|
589
|
+
};
|
|
590
|
+
/** Filters in the 「篩選」 popover. */
|
|
591
|
+
filters?: DataTableFilter<R>[];
|
|
592
|
+
/** @deprecated use filters. */
|
|
593
|
+
filter?: {
|
|
594
|
+
key: RowKey<R>;
|
|
595
|
+
label?: string;
|
|
596
|
+
options: FilterOption[];
|
|
597
|
+
};
|
|
598
|
+
/** Write search and filters into the URL. Default true. */
|
|
599
|
+
urlSync?: boolean;
|
|
600
|
+
/** Prefix of the URL parameters when a page has several tables. */
|
|
601
|
+
urlKey?: string;
|
|
602
|
+
/** Saved views shown as tabs above the table. */
|
|
603
|
+
views?: DataTableView<R>[];
|
|
604
|
+
/** Totals row: 'sum', 'avg' or a function per column key. */
|
|
605
|
+
totals?: Partial<Record<string, Total<R>>>;
|
|
606
|
+
/** Keep the first column visible while scrolling sideways. */
|
|
607
|
+
stickyFirst?: boolean;
|
|
608
|
+
/** 「欄位」 menu to hide columns. Default true. */
|
|
609
|
+
columnMenu?: boolean;
|
|
610
|
+
/** Default 「沒有符合的資料」. */
|
|
611
|
+
emptyText?: string;
|
|
612
|
+
className?: string;
|
|
613
|
+
}
|
|
614
|
+
/** The table for records: sort, search, filters, page numbers, selection with a bulk bar, row actions; cards on phones. */
|
|
615
|
+
export declare function DataTable<R extends Row = Record<string, unknown>>(p: DataTableProps<R>): React.JSX.Element;
|
|
616
|
+
interface DatePickerProps {
|
|
617
|
+
label?: string;
|
|
618
|
+
value: Date | null;
|
|
619
|
+
onChange: (d: Date | null) => void;
|
|
620
|
+
/** Default 「可以直接輸入,例如 2026/11/14」. */
|
|
621
|
+
hint?: string;
|
|
622
|
+
required?: boolean;
|
|
623
|
+
className?: string;
|
|
624
|
+
}
|
|
625
|
+
/** A date field: type YYYY/MM/DD, or pick from the calendar button's month grid. */
|
|
626
|
+
export declare function DatePicker({ label, value, onChange, hint, required, className }: DatePickerProps): React.JSX.Element;
|
|
627
|
+
type DateRange = [Date, Date];
|
|
628
|
+
interface DateRangePickerProps {
|
|
629
|
+
label?: string;
|
|
630
|
+
value: [Date | null, Date | null];
|
|
631
|
+
onChange: (range: DateRange) => void;
|
|
632
|
+
/** Default 「選擇期間」. */
|
|
633
|
+
placeholder?: string;
|
|
634
|
+
className?: string;
|
|
635
|
+
}
|
|
636
|
+
/** A period: quick ranges (今天、最近 7 天、最近 30 天、本月、上個月) beside one month. Click a start day, then an end day. */
|
|
637
|
+
export declare function DateRangePicker({ label, value, onChange, placeholder, className }: DateRangePickerProps): React.JSX.Element;
|
|
638
|
+
interface DetailListItem {
|
|
639
|
+
label: string;
|
|
640
|
+
value: React.ReactNode;
|
|
641
|
+
}
|
|
642
|
+
interface DetailListProps {
|
|
643
|
+
items: DetailListItem[];
|
|
644
|
+
className?: string;
|
|
645
|
+
}
|
|
646
|
+
/** Labelled facts about one item: label beside the value when there is room, above it under 600 px. */
|
|
647
|
+
export declare function DetailList({ items, className }: DetailListProps): React.JSX.Element;
|
|
648
|
+
interface DialogProps {
|
|
649
|
+
/** Shows the dialog over a blurred backdrop, with focus trapped inside and Esc to close.
|
|
650
|
+
* Required unless modal={false}. */
|
|
651
|
+
open?: boolean;
|
|
652
|
+
/** Called on Esc, a press on the backdrop, × and the cancel button. */
|
|
653
|
+
onClose?: () => void;
|
|
654
|
+
/** States the decision; may be a question: 「刪除 api-gateway?」. */
|
|
655
|
+
title: string;
|
|
656
|
+
/** What happens and whether it can be undone, at most 2 short sentences. */
|
|
657
|
+
children?: React.ReactNode;
|
|
658
|
+
/** The confirming button's label, a verb: 刪除, 發布. With onConfirm, the dialog draws its own buttons. */
|
|
659
|
+
confirmLabel?: string;
|
|
660
|
+
onConfirm?: () => void;
|
|
661
|
+
/** Default 「取消」. */
|
|
662
|
+
cancelLabel?: string;
|
|
663
|
+
/** danger: the confirming button is red. */
|
|
664
|
+
tone?: 'default' | 'danger';
|
|
665
|
+
/** Spinner on the confirming button while the action runs. */
|
|
666
|
+
confirmLoading?: boolean;
|
|
667
|
+
/** Your own buttons instead of confirmLabel: secondary first, primary last. */
|
|
668
|
+
actions?: React.ReactNode;
|
|
669
|
+
className?: string;
|
|
670
|
+
/** @deprecated the id is generated. */
|
|
671
|
+
titleId?: string;
|
|
672
|
+
/** false: draw the panel inline, as a static preview in docs. Without it, pass open. */
|
|
673
|
+
modal?: false;
|
|
674
|
+
}
|
|
675
|
+
/** A centered 400 px dialog for a decision. Secondary button left, primary right. */
|
|
676
|
+
export declare function Dialog(props: DialogProps): React.JSX.Element;
|
|
677
|
+
interface DrawerProps {
|
|
678
|
+
open: boolean;
|
|
679
|
+
onClose: () => void;
|
|
680
|
+
title: string;
|
|
681
|
+
/** Footer buttons: secondary first, primary last. Pass a function to get requestClose for your 取消 button: it
|
|
682
|
+
* asks before discarding unsaved changes, like ✕ and Esc. */
|
|
683
|
+
actions?: React.ReactNode | ((requestClose: () => void) => React.ReactNode);
|
|
684
|
+
/** Unsaved changes: closing asks 「放棄未儲存的變更?」 first. */
|
|
685
|
+
dirty?: boolean;
|
|
686
|
+
/** px. Default 400. */
|
|
687
|
+
width?: number;
|
|
688
|
+
confirmTitle?: string;
|
|
689
|
+
confirmText?: string;
|
|
690
|
+
children?: React.ReactNode;
|
|
691
|
+
}
|
|
692
|
+
/** A 400 px panel from the right for editing one item without leaving the page. */
|
|
693
|
+
export declare function Drawer({ open, onClose, title, actions, dirty, width, confirmTitle, confirmText, children }: DrawerProps): React.JSX.Element;
|
|
694
|
+
interface EmptyStateProps {
|
|
695
|
+
/** What is empty, stated: 「還沒有專案」. */
|
|
696
|
+
title: string;
|
|
697
|
+
/** One sentence on what to do. */
|
|
698
|
+
description?: string;
|
|
699
|
+
/** Numbered first steps. */
|
|
700
|
+
steps?: string[];
|
|
701
|
+
/** Index of the current step. Default 0. */
|
|
702
|
+
current?: number;
|
|
703
|
+
/** The one button that starts the first step. */
|
|
704
|
+
action?: React.ReactNode;
|
|
705
|
+
}
|
|
706
|
+
/** What a list or page shows when it has nothing yet: what is missing and the first step. */
|
|
707
|
+
export declare function EmptyState({ title, description, steps, current, action }: EmptyStateProps): React.JSX.Element;
|
|
708
|
+
interface ErrorPageProps {
|
|
709
|
+
/** 404, 403 and 500 come with their own title and sentence. */
|
|
710
|
+
code: number;
|
|
711
|
+
title?: string;
|
|
712
|
+
description?: string;
|
|
713
|
+
/** Default: history.back(). */
|
|
714
|
+
onBack?: () => void;
|
|
715
|
+
onHome?: () => void;
|
|
716
|
+
/** Default '/'. */
|
|
717
|
+
homeHref?: string;
|
|
718
|
+
className?: string;
|
|
719
|
+
}
|
|
720
|
+
/** A whole page for 404, 403 and 500: the code, a title, one sentence, then 「回上一頁」 and 「回首頁」. */
|
|
721
|
+
export declare function ErrorPage({ code, title, description, onBack, onHome, homeHref, className }: ErrorPageProps): import("react").JSX.Element;
|
|
722
|
+
interface UploadFile {
|
|
723
|
+
id?: string | number;
|
|
724
|
+
name: string;
|
|
725
|
+
/** format.fileSize(bytes), e.g. 「1.2 MB」. */
|
|
726
|
+
size?: string;
|
|
727
|
+
/** 0 to 100 while uploading. */
|
|
728
|
+
progress?: number;
|
|
729
|
+
status?: 'uploading' | 'done' | 'error';
|
|
730
|
+
/** The cause and the fix, shown in red. */
|
|
731
|
+
error?: string;
|
|
732
|
+
}
|
|
733
|
+
interface FileUploadProps {
|
|
734
|
+
label?: string;
|
|
735
|
+
files?: UploadFile[];
|
|
736
|
+
onAdd?: (files: File[]) => void;
|
|
737
|
+
onRemove?: (file: UploadFile) => void;
|
|
738
|
+
onRetry?: (file: UploadFile) => void;
|
|
739
|
+
/** Written inside the drop zone, e.g. 「每個最大 100 MB」. */
|
|
740
|
+
limitText?: string;
|
|
741
|
+
accept?: string;
|
|
742
|
+
/** Default true. */
|
|
743
|
+
multiple?: boolean;
|
|
744
|
+
className?: string;
|
|
745
|
+
}
|
|
746
|
+
/** A one-line drop zone and a list of files with progress. The upload itself is yours: pass files with progress and status. */
|
|
747
|
+
export declare function FileUpload({ label, files, onAdd, onRemove, onRetry, limitText, accept, multiple, className }: FileUploadProps): React.JSX.Element;
|
|
748
|
+
interface FormGridProps {
|
|
749
|
+
children?: React.ReactNode;
|
|
750
|
+
className?: string;
|
|
751
|
+
}
|
|
752
|
+
/** Form layout: one column, two columns from 960 px. */
|
|
753
|
+
export declare function FormGrid({ children, className }: FormGridProps): React.JSX.Element;
|
|
754
|
+
/** <defs> with the arrowheads #ui-arrow and #ui-arrow-accent; put it first inside your diagram's <svg>. */
|
|
755
|
+
export declare function GraphDefs(): import("react").JSX.Element;
|
|
756
|
+
interface GraphLegendItem {
|
|
757
|
+
/** edge: a confirmed line; inferred: a dashed line; external: a dashed box; node: a plain box; weight: thin and thick lines. */
|
|
758
|
+
type: 'edge' | 'inferred' | 'external' | 'node' | 'weight';
|
|
759
|
+
/** Your own words for it: 「呼叫」「推測的呼叫」「外部函式」. */
|
|
760
|
+
label: string;
|
|
761
|
+
/** Adds a Term with this explanation. */
|
|
762
|
+
text?: string;
|
|
763
|
+
}
|
|
764
|
+
interface GraphLegendProps {
|
|
765
|
+
/** Default: 確定的關係, 推測的關係, 外部項目. Pass your domain's words. */
|
|
766
|
+
items?: GraphLegendItem[];
|
|
767
|
+
className?: string;
|
|
768
|
+
}
|
|
769
|
+
/** The legend row under a diagram: what each line and box style means. */
|
|
770
|
+
export declare function GraphLegend({ items, className }: GraphLegendProps): import("react").JSX.Element;
|
|
771
|
+
interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
|
|
772
|
+
/** What the button does, a verb: 「刪除」「複製連結」. Becomes aria-label and the tooltip. */
|
|
773
|
+
label: string;
|
|
774
|
+
/** A built-in name such as 'trash', or custom path data. */
|
|
775
|
+
icon: IconSource;
|
|
776
|
+
/** false: no tooltip (when the label is already visible next to it). Default true. */
|
|
777
|
+
tooltip?: boolean;
|
|
778
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
779
|
+
}
|
|
780
|
+
/** A square icon-only button with a tooltip. */
|
|
781
|
+
export declare function IconButton({ label, icon, className, tooltip, ...native }: IconButtonProps): React.JSX.Element;
|
|
782
|
+
interface InlineCodeProps {
|
|
783
|
+
children?: React.ReactNode;
|
|
784
|
+
/** Makes it a link. */
|
|
785
|
+
href?: string;
|
|
786
|
+
onClick?: (e: React.MouseEvent<HTMLElement>) => void;
|
|
787
|
+
className?: string;
|
|
788
|
+
}
|
|
789
|
+
/** Code inside a sentence: monospace on a light gray chip. A span that points somewhere is a link. */
|
|
790
|
+
export declare function InlineCode({ children, href, onClick, className }: InlineCodeProps): React.JSX.Element;
|
|
791
|
+
/** Returns the link of a reference such as src/app.c:86, or undefined when it has no target. */
|
|
792
|
+
type RefHref = (ref: string) => string | undefined | null;
|
|
793
|
+
/** Called on a plain click on a reference; the default navigation is prevented. */
|
|
794
|
+
type OnRef = (ref: string, e: React.MouseEvent<HTMLElement>) => void;
|
|
795
|
+
export declare const isCodeRef: (span: string) => boolean;
|
|
796
|
+
interface CodeTextProps {
|
|
797
|
+
/** Text with `backtick` spans, as written in Markdown. */
|
|
798
|
+
text: string;
|
|
799
|
+
/** Spans that look like file.c:86 become links; return undefined when the reference has no target. */
|
|
800
|
+
refHref?: RefHref;
|
|
801
|
+
onRef?: OnRef;
|
|
802
|
+
/** Which spans are references. Default: a file name with a line number. */
|
|
803
|
+
isRef?: (span: string) => boolean;
|
|
804
|
+
as?: 'span' | 'p' | 'div' | 'li';
|
|
805
|
+
className?: string;
|
|
806
|
+
}
|
|
807
|
+
/** Text with `backtick` spans: renders them as InlineCode, never as raw backticks. */
|
|
808
|
+
export declare function CodeText({ text, refHref, onRef, isRef, as: Tag, className }: CodeTextProps): React.JSX.Element;
|
|
809
|
+
interface KpiCardProps {
|
|
810
|
+
/** What is measured: 「本月營收」. */
|
|
811
|
+
label: string;
|
|
812
|
+
value: number;
|
|
813
|
+
/** 'money' shows NT$ 1,280; 'percent' 1 decimal without the % sign: pass unit="%" (same as DataTable). Default 'number'. */
|
|
814
|
+
format?: 'number' | 'money' | 'percent';
|
|
815
|
+
/** For money. Default: the locale's currency (TWD). */
|
|
816
|
+
currency?: string;
|
|
817
|
+
/** Abbreviate from 1 萬 (default true). The only place numbers are abbreviated. */
|
|
818
|
+
compact?: boolean;
|
|
819
|
+
/** Written after the number: 元, 人, ms, %. */
|
|
820
|
+
unit?: string;
|
|
821
|
+
decimals?: number;
|
|
822
|
+
/** Change versus the comparison period. */
|
|
823
|
+
delta?: number;
|
|
824
|
+
/** '%' (default) or 'pt' for percentage points. */
|
|
825
|
+
deltaUnit?: '%' | 'pt';
|
|
826
|
+
/** Whether the change is good. Default: delta > 0. Set false where up is bad (error rate, cost). */
|
|
827
|
+
good?: boolean;
|
|
828
|
+
/** Recent values for the sparkline. */
|
|
829
|
+
spark?: number[];
|
|
830
|
+
/** Default 「較上週」. */
|
|
831
|
+
compareLabel?: string;
|
|
832
|
+
className?: string;
|
|
833
|
+
}
|
|
834
|
+
/** One figure with its change and a sparkline. It is a card: put several in a grid, not inside another Card. */
|
|
835
|
+
export declare function KpiCard(props: KpiCardProps): React.JSX.Element;
|
|
836
|
+
interface LayerGraphNode {
|
|
837
|
+
id: string;
|
|
838
|
+
name?: string;
|
|
839
|
+
/** 0 is the top layer. */
|
|
840
|
+
layer?: number;
|
|
841
|
+
/** How big it is (functions, files, endpoints): drawn as the size bar. */
|
|
842
|
+
size?: number;
|
|
843
|
+
/** @deprecated use size. */
|
|
844
|
+
fns?: number;
|
|
845
|
+
/** Used by most others: not drawn; listed under the diagram with how often it is used. */
|
|
846
|
+
shared?: boolean;
|
|
847
|
+
}
|
|
848
|
+
interface LayerGraphEdge {
|
|
849
|
+
from: string;
|
|
850
|
+
to: string;
|
|
851
|
+
/** How often: sets the line width. */
|
|
852
|
+
count?: number;
|
|
853
|
+
/** Inferred by a rule rather than known: dashed and labelled. */
|
|
854
|
+
inferred?: boolean;
|
|
855
|
+
/** Label of an inferred edge; `backticks` and numbers are in Geist Mono. */
|
|
856
|
+
label?: string;
|
|
857
|
+
}
|
|
858
|
+
interface LayerGraphProps {
|
|
859
|
+
nodes: LayerGraphNode[];
|
|
860
|
+
edges: LayerGraphEdge[];
|
|
861
|
+
selected?: string | null;
|
|
862
|
+
/** Selecting a box dims everything unrelated and turns its lines accent. */
|
|
863
|
+
onSelect?: (id: string | null) => void;
|
|
864
|
+
/** px. Default 200. */
|
|
865
|
+
nodeWidth?: number;
|
|
866
|
+
/** Text under a box's size bar; {n} is the size. Default 「{n} 個項目」. */
|
|
867
|
+
sizeLabel?: string;
|
|
868
|
+
/** Label of a selected edge; {n} is its count. Default 「{n} 次」. */
|
|
869
|
+
countLabel?: string;
|
|
870
|
+
/** Heading of the shared list. Default 「共用項目」. */
|
|
871
|
+
sharedLabel?: string;
|
|
872
|
+
/** A shared item's line; {a} is how many items use it, {b} the total count. Default 「{a} 個項目使用,共 {b} 次」. */
|
|
873
|
+
sharedMeta?: string;
|
|
874
|
+
/** Label of inferred edges without their own. Default 「推測」. */
|
|
875
|
+
inferredLabel?: string;
|
|
876
|
+
/** Explains inferred edges in the legend (a Term). */
|
|
877
|
+
inferredText?: string;
|
|
878
|
+
/** false hides the legend. */
|
|
879
|
+
legend?: boolean;
|
|
880
|
+
legendItems?: GraphLegendItem[];
|
|
881
|
+
/** Default 「架構圖」. */
|
|
882
|
+
label?: string;
|
|
883
|
+
className?: string;
|
|
884
|
+
}
|
|
885
|
+
/** Architecture as layers of boxes with arrows. Line width shows how often; inferred relations are dashed and labelled;
|
|
886
|
+
* shared items are listed under the diagram instead of drawn. Wider than the screen: scrolls sideways. */
|
|
887
|
+
export declare function LayerGraph(p: LayerGraphProps): React.JSX.Element;
|
|
888
|
+
interface LineSeries {
|
|
889
|
+
name: string;
|
|
890
|
+
values: number[];
|
|
891
|
+
}
|
|
892
|
+
interface LineChartProps {
|
|
893
|
+
/** Up to 3 series (chart-1 to chart-3); a legend appears for 2 or more. */
|
|
894
|
+
series: LineSeries[];
|
|
895
|
+
/** One label per point on the x axis. */
|
|
896
|
+
labels: string[];
|
|
897
|
+
/** Describes the chart for screen readers. */
|
|
898
|
+
label: string;
|
|
899
|
+
/** After each value in the tooltip. */
|
|
900
|
+
unit?: string;
|
|
901
|
+
/** Decimals of the values in the tooltip. Default 0. */
|
|
902
|
+
decimals?: number;
|
|
903
|
+
/** Top of the y axis. Default: a round number above the largest value. */
|
|
904
|
+
max?: number;
|
|
905
|
+
/** Show every nth x label when they would crowd. */
|
|
906
|
+
labelEvery?: number;
|
|
907
|
+
className?: string;
|
|
908
|
+
}
|
|
909
|
+
/** A trend over time: smooth lines, 5 grid lines, a guide and tooltip on hover. */
|
|
910
|
+
export declare function LineChart({ series, labels, label, unit, decimals, max, labelEvery, className }: LineChartProps): React.JSX.Element;
|
|
911
|
+
interface LoadingBarProps {
|
|
912
|
+
/** Announced to screen readers. Default 「載入中」. */
|
|
913
|
+
label?: string;
|
|
914
|
+
className?: string;
|
|
915
|
+
}
|
|
916
|
+
/** Loading with no known end: a drop moving along a thin bar. */
|
|
917
|
+
export declare function LoadingBar({ label, className }: LoadingBarProps): import("react").JSX.Element;
|
|
918
|
+
interface LoginCardProps {
|
|
919
|
+
/** Logo or product name above the title. */
|
|
920
|
+
brand?: React.ReactNode;
|
|
921
|
+
/** Default 「登入」. */
|
|
922
|
+
title?: string;
|
|
923
|
+
onSubmit: (v: {
|
|
924
|
+
account: string;
|
|
925
|
+
password: string;
|
|
926
|
+
}) => void;
|
|
927
|
+
/** Errors from your sign-in check, shown under each field: the cause and the fix. */
|
|
928
|
+
error?: {
|
|
929
|
+
account?: string;
|
|
930
|
+
password?: string;
|
|
931
|
+
} | null;
|
|
932
|
+
/** Adds 「忘記密碼」 beside the password label. */
|
|
933
|
+
forgotHref?: string;
|
|
934
|
+
loading?: boolean;
|
|
935
|
+
className?: string;
|
|
936
|
+
}
|
|
937
|
+
/** A centered sign-in card: account, password with show-password, 「忘記密碼」 beside the password label, errors under each
|
|
938
|
+
* field. Pass error = { account, password } from your sign-in check. */
|
|
939
|
+
export declare function LoginCard(p: LoginCardProps): React.JSX.Element;
|
|
940
|
+
interface MenuItemBase {
|
|
941
|
+
/** A verb: 重新命名, 複製連結. */
|
|
942
|
+
label: string;
|
|
943
|
+
icon?: IconSource;
|
|
944
|
+
/** Shown at the right, e.g. ⌘D. */
|
|
945
|
+
shortcut?: string;
|
|
946
|
+
disabled?: boolean;
|
|
947
|
+
onSelect?: () => void;
|
|
948
|
+
}
|
|
949
|
+
type MenuItem = (MenuItemBase & {
|
|
950
|
+
danger?: false;
|
|
951
|
+
}) | (MenuItemBase & {
|
|
952
|
+
/** Red, last, after a divider. Must be confirmed: onSelect runs after the dialog. */
|
|
953
|
+
danger: true;
|
|
954
|
+
confirm: DangerConfirm;
|
|
955
|
+
});
|
|
956
|
+
interface MenuProps {
|
|
957
|
+
items: MenuItem[];
|
|
958
|
+
/** aria-label and tooltip of the ⋯ button. Default 「更多操作」. */
|
|
959
|
+
label?: string;
|
|
960
|
+
/** Default 'dots-three'. */
|
|
961
|
+
icon?: IconSource;
|
|
962
|
+
/** 'end' lines up right edges (default); flips when the menu would leave the window. */
|
|
963
|
+
align?: 'end' | 'start';
|
|
964
|
+
/** Extra class on the ⋯ button. */
|
|
965
|
+
triggerClassName?: string;
|
|
966
|
+
}
|
|
967
|
+
/** The ⋯ button and its list of actions. Danger items go last, in red, after a divider, and are confirmed. */
|
|
968
|
+
export declare function Menu({ items, label, icon, align, triggerClassName }: MenuProps): React.JSX.Element;
|
|
969
|
+
interface MobileTab {
|
|
970
|
+
id: string;
|
|
971
|
+
label: string;
|
|
972
|
+
icon: IconSource;
|
|
973
|
+
}
|
|
974
|
+
interface MobileTabBarProps {
|
|
975
|
+
/** 3 to 5 top-level pages. */
|
|
976
|
+
items: MobileTab[];
|
|
977
|
+
value: string;
|
|
978
|
+
onChange?: (id: string) => void;
|
|
979
|
+
/** Default 「主要導覽」. */
|
|
980
|
+
label?: string;
|
|
981
|
+
className?: string;
|
|
982
|
+
}
|
|
983
|
+
/** Bottom navigation on phones, in place of the sidebar. The pill slides like a droplet; the selected icon is filled. */
|
|
984
|
+
export declare function MobileTabBar({ items, value, onChange, label, className }: MobileTabBarProps): React.JSX.Element;
|
|
985
|
+
interface MultiSelectOption {
|
|
986
|
+
value: string;
|
|
987
|
+
label: string;
|
|
988
|
+
}
|
|
989
|
+
interface MultiSelectProps {
|
|
990
|
+
label?: string;
|
|
991
|
+
options: MultiSelectOption[];
|
|
992
|
+
value: string[];
|
|
993
|
+
onChange: (value: string[]) => void;
|
|
994
|
+
/** Allow adding values that are not in options (Enter, or the 「新增」 row). */
|
|
995
|
+
creatable?: boolean;
|
|
996
|
+
/** Chips shown before 「+n」. Default 2. */
|
|
997
|
+
maxChips?: number;
|
|
998
|
+
/** Default 「搜尋」. */
|
|
999
|
+
placeholder?: string;
|
|
1000
|
+
/** Default 「找不到符合的選項」. */
|
|
1001
|
+
emptyText?: string;
|
|
1002
|
+
className?: string;
|
|
1003
|
+
}
|
|
1004
|
+
/** Pick several options: chips inside the field, type to filter, Backspace removes the last chip. */
|
|
1005
|
+
export declare function MultiSelect({ label, options, value, onChange, creatable, maxChips, placeholder, emptyText, className }: MultiSelectProps): React.JSX.Element;
|
|
1006
|
+
interface NotificationItem {
|
|
1007
|
+
id: string | number;
|
|
1008
|
+
title: string;
|
|
1009
|
+
body?: string;
|
|
1010
|
+
/** Relative within a week: format.relative(date). */
|
|
1011
|
+
time?: string;
|
|
1012
|
+
/** Group heading, e.g. 今天, 更早. Items must already be newest first. */
|
|
1013
|
+
group?: string;
|
|
1014
|
+
read?: boolean;
|
|
1015
|
+
}
|
|
1016
|
+
interface NotificationBellProps {
|
|
1017
|
+
items: NotificationItem[];
|
|
1018
|
+
onOpen?: (item: NotificationItem) => void;
|
|
1019
|
+
onReadAll?: () => void;
|
|
1020
|
+
/** Default 「沒有通知」. */
|
|
1021
|
+
emptyText?: string;
|
|
1022
|
+
}
|
|
1023
|
+
/** The bell in the top bar: a red count (99+ above 99) and a 360 px panel of notifications grouped by time. */
|
|
1024
|
+
export declare function NotificationBell({ items, onOpen, onReadAll, emptyText }: NotificationBellProps): React.JSX.Element;
|
|
1025
|
+
interface PopoverProps {
|
|
1026
|
+
/** Text of the trigger button. */
|
|
1027
|
+
label: string;
|
|
1028
|
+
icon?: IconSource;
|
|
1029
|
+
/** A number badge on the trigger, e.g. how many filters are on. */
|
|
1030
|
+
count?: number | string;
|
|
1031
|
+
/** Heading inside the popover; also its accessible name. */
|
|
1032
|
+
title?: string;
|
|
1033
|
+
/** Default 'bottom'. */
|
|
1034
|
+
side?: 'top' | 'bottom';
|
|
1035
|
+
/** Default 'end'. */
|
|
1036
|
+
align?: 'end' | 'start' | 'center';
|
|
1037
|
+
/** Content, or a function that receives close(). */
|
|
1038
|
+
children?: React.ReactNode | ((close: () => void) => React.ReactNode);
|
|
1039
|
+
triggerClassName?: string;
|
|
1040
|
+
}
|
|
1041
|
+
/** A small panel with an arrow, opened from a button on hover, click or focus. For extra detail or a few controls. */
|
|
1042
|
+
export declare function Popover({ label, icon, count, title, side, align, children, triggerClassName }: PopoverProps): React.JSX.Element;
|
|
1043
|
+
interface ProgressBarProps {
|
|
1044
|
+
/** 0 to 100. */
|
|
1045
|
+
value: number;
|
|
1046
|
+
label?: string;
|
|
1047
|
+
className?: string;
|
|
1048
|
+
}
|
|
1049
|
+
/** Progress of a task with a known end, with the percentage after the bar. */
|
|
1050
|
+
export declare function ProgressBar({ value, label, className }: ProgressBarProps): import("react").JSX.Element;
|
|
1051
|
+
interface ProgressRingProps {
|
|
1052
|
+
/** 0 to 100. */
|
|
1053
|
+
value: number;
|
|
1054
|
+
/** What is measured; announced to screen readers. */
|
|
1055
|
+
label: string;
|
|
1056
|
+
/** Diameter in px. Default 72. */
|
|
1057
|
+
size?: number;
|
|
1058
|
+
className?: string;
|
|
1059
|
+
}
|
|
1060
|
+
/** A ring that fills to a percentage, for a single figure in a card. */
|
|
1061
|
+
export declare function ProgressRing({ value, label, size, className }: ProgressRingProps): import("react").JSX.Element;
|
|
1062
|
+
type ProjectStatus = 'live' | 'stale' | 'offline';
|
|
1063
|
+
interface ProjectOption {
|
|
1064
|
+
id: string;
|
|
1065
|
+
label: string;
|
|
1066
|
+
/** A second line, e.g. the environment or the last update. */
|
|
1067
|
+
detail?: string;
|
|
1068
|
+
}
|
|
1069
|
+
interface ProjectSwitcherProps {
|
|
1070
|
+
/** The project and environment shown, e.g. 「web · production」. */
|
|
1071
|
+
project: string;
|
|
1072
|
+
/** Whether the data is live. Default 'live'. */
|
|
1073
|
+
status?: ProjectStatus;
|
|
1074
|
+
/** Replaces the status name (即時, 已過期, 離線). */
|
|
1075
|
+
statusLabel?: string;
|
|
1076
|
+
/** With onChange, a list to switch project. */
|
|
1077
|
+
options?: ProjectOption[];
|
|
1078
|
+
value?: string;
|
|
1079
|
+
onChange?: (id: string) => void;
|
|
1080
|
+
/** Under the list, e.g. a link to all projects. */
|
|
1081
|
+
footer?: React.ReactNode;
|
|
1082
|
+
className?: string;
|
|
1083
|
+
}
|
|
1084
|
+
/** The outlined chip in the top bar: which project is shown and whether its data is live; opens a list to switch. */
|
|
1085
|
+
export declare function ProjectSwitcher({ project, status, statusLabel, options, value, onChange, footer, className }: ProjectSwitcherProps): React.JSX.Element;
|
|
1086
|
+
interface RadioOption<V extends string = string> {
|
|
1087
|
+
value: V;
|
|
1088
|
+
label: React.ReactNode;
|
|
1089
|
+
disabled?: boolean;
|
|
1090
|
+
}
|
|
1091
|
+
interface RadioGroupProps<V extends string = string> {
|
|
1092
|
+
/** Shown above the options and used as the group's name. */
|
|
1093
|
+
label?: string;
|
|
1094
|
+
value?: V;
|
|
1095
|
+
onChange?: (value: V) => void;
|
|
1096
|
+
/** 2 to 5 options, all visible. Use Select for more. */
|
|
1097
|
+
options: RadioOption<V>[];
|
|
1098
|
+
disabled?: boolean;
|
|
1099
|
+
className?: string;
|
|
1100
|
+
}
|
|
1101
|
+
/** One choice out of a few visible options. Arrow keys move between them. */
|
|
1102
|
+
export declare function RadioGroup<V extends string = string>({ label, value, onChange, options, disabled, className }: RadioGroupProps<V>): React.JSX.Element;
|
|
1103
|
+
interface SearchFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value'> {
|
|
1104
|
+
value: string;
|
|
1105
|
+
onChange: (value: string) => void;
|
|
1106
|
+
/** aria-label. Default 「搜尋」. */
|
|
1107
|
+
label?: string;
|
|
1108
|
+
}
|
|
1109
|
+
/** A search box with a clear button. Filter as the person types. */
|
|
1110
|
+
export declare function SearchField({ value, onChange, className, label, ...native }: SearchFieldProps): React.JSX.Element;
|
|
1111
|
+
interface SelectOption<V extends string = string> {
|
|
1112
|
+
value: V;
|
|
1113
|
+
label: string;
|
|
1114
|
+
disabled?: boolean;
|
|
1115
|
+
}
|
|
1116
|
+
interface SelectProps<V extends string = string> {
|
|
1117
|
+
/** Shown above the trigger. Without it, pass aria-label. */
|
|
1118
|
+
label?: string;
|
|
1119
|
+
'aria-label'?: string;
|
|
1120
|
+
value?: V | null;
|
|
1121
|
+
onChange?: (value: V) => void;
|
|
1122
|
+
options: SelectOption<V>[];
|
|
1123
|
+
/** A search box at the top of the list. Default: on when there are more than 8 options. */
|
|
1124
|
+
searchable?: boolean;
|
|
1125
|
+
/** Default 「請選擇」. */
|
|
1126
|
+
placeholder?: string;
|
|
1127
|
+
/** Default 「搜尋」. */
|
|
1128
|
+
searchPlaceholder?: string;
|
|
1129
|
+
/** Red asterisk after the label. */
|
|
1130
|
+
required?: boolean;
|
|
1131
|
+
disabled?: boolean;
|
|
1132
|
+
/** Form field name; the value is submitted with the form. */
|
|
1133
|
+
name?: string;
|
|
1134
|
+
className?: string;
|
|
1135
|
+
}
|
|
1136
|
+
/** Pick one option from a list. Use it instead of a native <select>; a search box appears above 8 options. */
|
|
1137
|
+
export declare function Select<V extends string = string>(props: SelectProps<V>): React.JSX.Element;
|
|
1138
|
+
interface SettingsCategory {
|
|
1139
|
+
id: string;
|
|
1140
|
+
label: string;
|
|
1141
|
+
content: React.ReactNode;
|
|
1142
|
+
}
|
|
1143
|
+
interface SettingsLayoutProps {
|
|
1144
|
+
title?: string;
|
|
1145
|
+
categories: SettingsCategory[];
|
|
1146
|
+
/** Controlled category id. */
|
|
1147
|
+
value?: string;
|
|
1148
|
+
onChange?: (id: string) => void;
|
|
1149
|
+
/** Text of the 「已儲存」 toast; empty hides it. Changes save on their own, so there is no save button. */
|
|
1150
|
+
toast?: string;
|
|
1151
|
+
className?: string;
|
|
1152
|
+
}
|
|
1153
|
+
/** A settings page: categories on the left, their sections on the right. Changes save at once. */
|
|
1154
|
+
export declare function SettingsLayout({ title, categories, value, onChange, toast, className }: SettingsLayoutProps): React.JSX.Element;
|
|
1155
|
+
interface SettingsSectionProps {
|
|
1156
|
+
title?: string;
|
|
1157
|
+
/** One sentence under the title. */
|
|
1158
|
+
description?: string;
|
|
1159
|
+
children?: React.ReactNode;
|
|
1160
|
+
className?: string;
|
|
1161
|
+
}
|
|
1162
|
+
/** One group of settings with a heading. It is a card on its own; inside a Card it drops its shadow. */
|
|
1163
|
+
export declare function SettingsSection({ title, description, children, className }: SettingsSectionProps): React.JSX.Element;
|
|
1164
|
+
interface SkeletonProps {
|
|
1165
|
+
/** Default 100%. */
|
|
1166
|
+
width?: number | string;
|
|
1167
|
+
/** Default 16 px, one line of text. */
|
|
1168
|
+
height?: number | string;
|
|
1169
|
+
}
|
|
1170
|
+
/** A gray shimmering block that holds the place of content while it loads. Show it at once. */
|
|
1171
|
+
export declare function Skeleton({ width, height }: SkeletonProps): import("react").JSX.Element;
|
|
1172
|
+
interface SuggestionProps {
|
|
1173
|
+
/** Default 「建議修正」. */
|
|
1174
|
+
title?: string;
|
|
1175
|
+
/** The current line, shown with −. Text in `backticks` is code. */
|
|
1176
|
+
before?: string;
|
|
1177
|
+
/** The proposed line, shown with +. */
|
|
1178
|
+
after: string;
|
|
1179
|
+
/** What the copy button copies. Default: after. */
|
|
1180
|
+
copyText?: string;
|
|
1181
|
+
/** Default 「複製修正」. */
|
|
1182
|
+
copyLabel?: string;
|
|
1183
|
+
onCopy?: (text: string) => void;
|
|
1184
|
+
onCopyError?: () => void;
|
|
1185
|
+
refHref?: RefHref;
|
|
1186
|
+
onRef?: OnRef;
|
|
1187
|
+
isRef?: (span: string) => boolean;
|
|
1188
|
+
className?: string;
|
|
1189
|
+
}
|
|
1190
|
+
/** A proposed fix: the old line (−) above the new one (+), with a copy button at the top right. */
|
|
1191
|
+
export declare function Suggestion({ title, before, after, copyText: copyValue, copyLabel, onCopy, onCopyError, refHref, onRef, isRef, className }: SuggestionProps): React.JSX.Element;
|
|
1192
|
+
interface SwitchProps {
|
|
1193
|
+
checked?: boolean;
|
|
1194
|
+
onChange?: (checked: boolean) => void;
|
|
1195
|
+
/** What it turns on; becomes aria-label. Put the visible text next to it in the row. */
|
|
1196
|
+
label: string;
|
|
1197
|
+
disabled?: boolean;
|
|
1198
|
+
className?: string;
|
|
1199
|
+
}
|
|
1200
|
+
/** An on/off setting that applies at once. The thumb stretches like a droplet while it moves. */
|
|
1201
|
+
export declare function Switch({ checked, onChange, label, disabled, className }: SwitchProps): React.JSX.Element;
|
|
1202
|
+
interface TabItem<V extends string = string> {
|
|
1203
|
+
id: V;
|
|
1204
|
+
label: string;
|
|
1205
|
+
/** A count after the label, e.g. how many rows a view has. */
|
|
1206
|
+
count?: number;
|
|
1207
|
+
}
|
|
1208
|
+
interface TabsProps<V extends string = string> {
|
|
1209
|
+
items: TabItem<V>[];
|
|
1210
|
+
value: V;
|
|
1211
|
+
onChange?: (id: V) => void;
|
|
1212
|
+
/** aria-label of the tab list. */
|
|
1213
|
+
label?: string;
|
|
1214
|
+
className?: string;
|
|
1215
|
+
}
|
|
1216
|
+
/** Views of the same content. The underline moves like a droplet; arrow keys move between tabs. */
|
|
1217
|
+
export declare function Tabs<V extends string = string>({ items, value, onChange, label, className }: TabsProps<V>): React.JSX.Element;
|
|
1218
|
+
interface TagProps {
|
|
1219
|
+
children?: React.ReactNode;
|
|
1220
|
+
className?: string;
|
|
1221
|
+
}
|
|
1222
|
+
/** What kind of thing an item is (「外部」「範本」): small gray text. Status uses Badge instead. */
|
|
1223
|
+
export declare function Tag({ children, className }: TagProps): React.JSX.Element;
|
|
1224
|
+
interface TermProps {
|
|
1225
|
+
/** The word or label that needs explaining. */
|
|
1226
|
+
children?: React.ReactNode;
|
|
1227
|
+
/** Heading of the explanation. Default: children when it is text. */
|
|
1228
|
+
title?: string;
|
|
1229
|
+
/** The explanation, at most 2 short sentences; `backticks` are code. */
|
|
1230
|
+
text?: string;
|
|
1231
|
+
/** Other content instead of text. */
|
|
1232
|
+
content?: React.ReactNode;
|
|
1233
|
+
/** An evidence line, shown as a code block. */
|
|
1234
|
+
code?: string;
|
|
1235
|
+
/** One link-style action at the bottom. */
|
|
1236
|
+
action?: {
|
|
1237
|
+
label: string;
|
|
1238
|
+
onClick?: () => void;
|
|
1239
|
+
};
|
|
1240
|
+
refHref?: RefHref;
|
|
1241
|
+
onRef?: OnRef;
|
|
1242
|
+
isRef?: (span: string) => boolean;
|
|
1243
|
+
className?: string;
|
|
1244
|
+
}
|
|
1245
|
+
/** A word followed by a small question mark that opens its explanation: a floating card from 600 px, a sheet from the bottom on phones. */
|
|
1246
|
+
export declare function Term({ children, title, text, content, code, action, refHref, onRef, isRef, className }: TermProps): React.JSX.Element;
|
|
1247
|
+
interface TextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'onChange' | 'value'> {
|
|
1248
|
+
label?: string;
|
|
1249
|
+
hint?: string;
|
|
1250
|
+
value: string;
|
|
1251
|
+
onChange: (value: string) => void;
|
|
1252
|
+
/** Shown as a counter. Default 200. */
|
|
1253
|
+
maxLength?: number;
|
|
1254
|
+
required?: boolean;
|
|
1255
|
+
}
|
|
1256
|
+
/** Multi-line text that grows up to 8 lines, with a character counter. */
|
|
1257
|
+
export declare function TextArea({ label, hint, value, onChange, maxLength, className, id, required, ...native }: TextAreaProps): React.JSX.Element;
|
|
1258
|
+
interface TextFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
1259
|
+
/** Above the field, always visible. Never only a placeholder. */
|
|
1260
|
+
label: string;
|
|
1261
|
+
/** Red asterisk after the label. */
|
|
1262
|
+
required?: boolean;
|
|
1263
|
+
/** One short line under the field. */
|
|
1264
|
+
hint?: string;
|
|
1265
|
+
/** The cause and the fix: 「日期格式不正確,請寫成 2026/11/14」. Turns the border red. */
|
|
1266
|
+
error?: string;
|
|
1267
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
1268
|
+
}
|
|
1269
|
+
/** A labelled one-line input with a hint or an error under it. */
|
|
1270
|
+
export declare function TextField({ label, hint, error, id, className, required, disabled, ...native }: TextFieldProps): React.JSX.Element;
|
|
1271
|
+
type ThemeSetting = 'auto' | 'light' | 'dark';
|
|
1272
|
+
/** Switches the theme on <html data-theme> and remembers it. */
|
|
1273
|
+
export declare function setTheme(t: ThemeSetting): void;
|
|
1274
|
+
/** Derives every accent token from one color (自訂強調色的換算 in docs/guidelines.md).
|
|
1275
|
+
* Returns false for anything but #rrggbb. quiet: apply without storing. */
|
|
1276
|
+
export declare function setAccent(hex: string, quiet?: boolean): boolean;
|
|
1277
|
+
/** Applies the stored theme and accent; call once when the page starts. */
|
|
1278
|
+
export declare function initTheme(): void;
|
|
1279
|
+
interface ThemePickerProps {
|
|
1280
|
+
/** Controlled value. Without it, the picker reads and sets the stored theme itself. */
|
|
1281
|
+
value?: ThemeSetting;
|
|
1282
|
+
/** Without it, picking applies the theme with setTheme. */
|
|
1283
|
+
onChange?: (theme: ThemeSetting) => void;
|
|
1284
|
+
/** Default 「主題」. */
|
|
1285
|
+
label?: string;
|
|
1286
|
+
className?: string;
|
|
1287
|
+
}
|
|
1288
|
+
/** Three preview cards (自動、淺色、深色) for the settings page under 外觀. */
|
|
1289
|
+
export declare function ThemePicker({ value, onChange, label, className }: ThemePickerProps): React.JSX.Element;
|
|
1290
|
+
interface ToastProps {
|
|
1291
|
+
/** What happened, in the past tense: 「已刪除 3 筆」. */
|
|
1292
|
+
children?: React.ReactNode;
|
|
1293
|
+
/** Usually 「復原」. */
|
|
1294
|
+
actionLabel?: string;
|
|
1295
|
+
onAction?: () => void;
|
|
1296
|
+
}
|
|
1297
|
+
/** A short confirmation at the bottom right. The caller shows it for 3 s. */
|
|
1298
|
+
export declare function Toast({ children, actionLabel, onAction }: ToastProps): React.JSX.Element;
|
|
1299
|
+
interface TooltipProps {
|
|
1300
|
+
/** Short text, also announced as the trigger's description. Never the only place important information lives. */
|
|
1301
|
+
label: string;
|
|
1302
|
+
/** Preferred side; flips when there is no room. Default 'top'. */
|
|
1303
|
+
side?: 'top' | 'bottom';
|
|
1304
|
+
/** One focusable element that accepts a ref (a button, IconButton, Button, a link). */
|
|
1305
|
+
children: React.ReactElement;
|
|
1306
|
+
/** false: the label only repeats the trigger's own name (an IconButton's aria-label), so it is not added as its description. Default true. */
|
|
1307
|
+
describe?: boolean;
|
|
1308
|
+
}
|
|
1309
|
+
/** Dark label above the element (below when there is no room), with an arrow. Appears at once on hover and focus. */
|
|
1310
|
+
export declare function Tooltip({ label, side, describe, children }: TooltipProps): React.JSX.Element;
|
|
1311
|
+
interface TopBarProps {
|
|
1312
|
+
/** The page title, shown once: either here or as the page's own heading. */
|
|
1313
|
+
title?: string;
|
|
1314
|
+
breadcrumb?: BreadcrumbItem[];
|
|
1315
|
+
/** Opens search (CommandPalette). false hides the search entry. */
|
|
1316
|
+
onSearch?: (() => void) | false;
|
|
1317
|
+
/** Default 「搜尋」. */
|
|
1318
|
+
searchLabel?: string;
|
|
1319
|
+
/** Right side: NotificationBell, ProjectSwitcher, the account menu. */
|
|
1320
|
+
children?: React.ReactNode;
|
|
1321
|
+
className?: string;
|
|
1322
|
+
}
|
|
1323
|
+
/** The bar at the top of a dashboard page: title or breadcrumb on the left, search and tools on the right. */
|
|
1324
|
+
export declare function TopBar({ title, breadcrumb, onSearch, searchLabel, children, className }: TopBarProps): React.JSX.Element;
|
|
1325
|
+
interface TourStep {
|
|
1326
|
+
/** A data-tour name ('search' matches [data-tour="search"]), a CSS selector (first visible match), a ref or an element.
|
|
1327
|
+
* Leave it out for a step in the middle of the screen. */
|
|
1328
|
+
target?: string | React.RefObject<Element | null> | Element;
|
|
1329
|
+
/** Names the part: 「搜尋」. */
|
|
1330
|
+
title: string;
|
|
1331
|
+
/** What it does, 1 short sentence; `backticks` are code. */
|
|
1332
|
+
text: string;
|
|
1333
|
+
/** Default 'bottom'; flips when there is no room. */
|
|
1334
|
+
side?: 'bottom' | 'top';
|
|
1335
|
+
/** Space around the highlighted part in px. Default 6. */
|
|
1336
|
+
padding?: number;
|
|
1337
|
+
}
|
|
1338
|
+
interface TourProps {
|
|
1339
|
+
open: boolean;
|
|
1340
|
+
steps: TourStep[];
|
|
1341
|
+
onClose?: (reason: 'done' | 'skip') => void;
|
|
1342
|
+
/** 「略過」 and Esc end the tour early. Default true. */
|
|
1343
|
+
skippable?: boolean;
|
|
1344
|
+
/** Controlled step index. */
|
|
1345
|
+
step?: number;
|
|
1346
|
+
onStepChange?: (index: number) => void;
|
|
1347
|
+
}
|
|
1348
|
+
/** Opens the tour once per browser: { open, start, close, seen }. Pass close to Tour's onClose; start() shows it again. */
|
|
1349
|
+
export declare function useTour(key: string): {
|
|
1350
|
+
open: boolean;
|
|
1351
|
+
start: () => void;
|
|
1352
|
+
close: () => void;
|
|
1353
|
+
seen: boolean;
|
|
1354
|
+
};
|
|
1355
|
+
/** The first-use walkthrough: the page goes dark except the part being introduced, with a card beside it. */
|
|
1356
|
+
export declare function Tour({ open, steps, onClose, skippable, step: controlled, onStepChange }: TourProps): React.JSX.Element | null;
|
|
1357
|
+
type TreeSort = 'newest' | 'oldest' | 'name' | false;
|
|
1358
|
+
interface TreeNode {
|
|
1359
|
+
id: string;
|
|
1360
|
+
name: string;
|
|
1361
|
+
/** A folder (files kind) or an expandable item (plain kind). */
|
|
1362
|
+
children?: TreeNode[];
|
|
1363
|
+
/** Overrides the extension taken from the name. */
|
|
1364
|
+
ext?: string;
|
|
1365
|
+
date?: Date | number | string;
|
|
1366
|
+
/** Bytes. */
|
|
1367
|
+
size?: number;
|
|
1368
|
+
/** New to this person: the date turns accent and bold; folders say 「2 個新」. */
|
|
1369
|
+
unseen?: boolean;
|
|
1370
|
+
/** kind="plain": location shown under the name, shortened with format.path. */
|
|
1371
|
+
path?: string;
|
|
1372
|
+
/** kind="plain": text under the name instead of path; its numbers are in Geist Mono. */
|
|
1373
|
+
meta?: string;
|
|
1374
|
+
/** kind="plain": category tags after the name. Tag only what differs from most items. */
|
|
1375
|
+
tags?: React.ReactNode[];
|
|
1376
|
+
/** Expandable before its children are loaded (with loadChildren). */
|
|
1377
|
+
hasChildren?: boolean;
|
|
1378
|
+
/** kind="plain": name in the secondary color. */
|
|
1379
|
+
muted?: boolean;
|
|
1380
|
+
/** kind="plain": icon before the name. */
|
|
1381
|
+
icon?: IconSource;
|
|
1382
|
+
}
|
|
1383
|
+
interface TreeListProps {
|
|
1384
|
+
items: TreeNode[];
|
|
1385
|
+
/** 'files' (default): folders and files with date and size. 'plain': any other tree, such as a call tree. */
|
|
1386
|
+
kind?: 'files' | 'plain';
|
|
1387
|
+
/** kind="plain": the selected row. */
|
|
1388
|
+
selectedId?: string;
|
|
1389
|
+
onSelect?: (node: TreeNode) => void;
|
|
1390
|
+
/** kind="plain": IconButtons at the row's right end. */
|
|
1391
|
+
rowActions?: (node: TreeNode) => React.ReactNode;
|
|
1392
|
+
/** kind="plain": show 「全部展開」. */
|
|
1393
|
+
toggleAll?: boolean;
|
|
1394
|
+
title?: React.ReactNode;
|
|
1395
|
+
/** Accessible name when there is no title. */
|
|
1396
|
+
label?: string;
|
|
1397
|
+
/** Buttons at the top right. */
|
|
1398
|
+
actions?: React.ReactNode;
|
|
1399
|
+
/** Default 'newest' for files, false (as given) for plain. */
|
|
1400
|
+
sort?: TreeSort;
|
|
1401
|
+
/** 'single' keeps one folder open per level; choose it when folders are many and messy. Default 'multi'. */
|
|
1402
|
+
expand?: 'multi' | 'single';
|
|
1403
|
+
defaultOpen?: string[];
|
|
1404
|
+
/** Second line under the title, e.g. 「17 個檔案」. */
|
|
1405
|
+
subtitle?: React.ReactNode;
|
|
1406
|
+
/** Fixed height (px or a CSS length such as '100%'): the header stays and the list scrolls inside. Needed inside a fixed-height panel. */
|
|
1407
|
+
height?: number | string;
|
|
1408
|
+
/** No card background, shadow or radius, for a tree inside a panel that is not a Card. Inside a Card this happens by itself. */
|
|
1409
|
+
bare?: boolean;
|
|
1410
|
+
/** Controlled open ids; update them in onToggle. */
|
|
1411
|
+
open?: string[];
|
|
1412
|
+
onToggle?: (node: TreeNode, isOpen: boolean, openIds: string[]) => void;
|
|
1413
|
+
/** Controlled mode: 「全部展開/全部收合」 reports every open id here. */
|
|
1414
|
+
onToggleAll?: (isOpen: boolean, openIds: string[]) => void;
|
|
1415
|
+
/** Loads the children of a node with hasChildren the first time it opens. */
|
|
1416
|
+
loadChildren?: (node: TreeNode) => TreeNode[] | Promise<TreeNode[]>;
|
|
1417
|
+
/** Files kind: checkboxes on hover; a folder's checkbox selects every file inside. */
|
|
1418
|
+
selectable?: boolean;
|
|
1419
|
+
selected?: string[];
|
|
1420
|
+
onSelectChange?: (ids: string[]) => void;
|
|
1421
|
+
bulkActions?: (files: TreeNode[], clear: () => void) => React.ReactNode;
|
|
1422
|
+
/** Adds 「下載」 to each file and to the bulk bar. */
|
|
1423
|
+
onDownload?: (files: TreeNode[]) => void;
|
|
1424
|
+
onOpen?: (file: TreeNode) => void;
|
|
1425
|
+
emptyText?: string;
|
|
1426
|
+
className?: string;
|
|
1427
|
+
}
|
|
1428
|
+
/** Folders and files (or any tree) that expand in place, with guide lines, keyboard navigation and lazy children. It is a card on its own. */
|
|
1429
|
+
export declare function TreeList(p: TreeListProps): React.JSX.Element;
|
|
1430
|
+
/** Droplet motion of tab and sidebar indicators: lead duration in ms and how much longer the trailing edge takes. */
|
|
1431
|
+
export declare const MOTION: {
|
|
1432
|
+
readonly dur: 200;
|
|
1433
|
+
readonly stretch: 2.2;
|
|
1434
|
+
};
|
|
1435
|
+
export { type AccentPickerProps, type ActionBarAction, type ActionBarProps, type AlertProps, type AlertTone, type AppShellProps, type BadgeProps, type BadgeStatus, type BarChartProps, type BarDatum, type BreadcrumbItem, type BreadcrumbProps, type ButtonProps, type CalendarProps, type CardProps, type CheckboxProps, type CodeLanguage, type CodeTextProps, type CodeViewProps, type CommandPaletteProps, type CustomIcon, type DangerConfirm, type DangerZoneProps, type DataTableColumn, type DataTableFilter, type DataTableProps, type DataTableView, type DatePickerProps, type DateRange, type DateRangePickerProps, type DayState, type Decimals, type DetailListItem, type DetailListProps, type DialogProps, type DrawerProps, type EmptyStateProps, type ErrorPageProps, type FileUploadProps, type FilterOption, type FilterValue, type FormGridProps, type GraphLegendItem, type GraphLegendProps, type GridProps, type IconButtonProps, type IconName, type IconProps, type IconSource, type InlineCodeProps, type KpiCardProps, type LayerGraphEdge, type LayerGraphNode, type LayerGraphProps, type LineChartProps, type LineSeries, type LoadingBarProps, type LoginCardProps, type MenuItem, type MenuProps, type MobileTab, type MobileTabBarProps, type MultiSelectOption, type MultiSelectProps, type NavItem, type NavSection, type NotificationBellProps, type NotificationItem, type OnRef, type PageProps, type PaletteItem, type PopoverProps, type ProgressBarProps, type ProgressRingProps, type ProjectOption, type ProjectStatus, type ProjectSwitcherProps, type RadioGroupProps, type RadioOption, type RangeValue, type RefHref, type Row, type RowKey, type SearchFieldProps, type SelectOption, type SelectProps, type SettingsCategory, type SettingsLayoutProps, type SettingsSectionProps, type SideNavProps, type SkeletonProps, type SuggestionProps, type SwitchProps, type TabItem, type TabsProps, type TagProps, type TermProps, type TextAreaProps, type TextFieldProps, type ThemePickerProps, type ThemeSetting, type ToastProps, type Token, type TokenClass, type Tokenizer, type TooltipProps, type TopBarProps, type Total, type TourProps, type TourStep, type TreeListProps, type TreeNode, type UploadFile, addMessages, format, setLocale, tr as t };
|