7k-design-system 1.3.1 → 1.4.0-edge.e8e4f1e
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/CHANGELOG.md +7 -0
- package/DESIGN.md +2 -2
- package/SKILL.md +2 -2
- package/dist/react/components/Banner.d.ts +2 -0
- package/dist/react/components/ButtonGroup.d.ts +3 -0
- package/dist/react/components/ColorSwatch.d.ts +2 -0
- package/dist/react/components/Form.d.ts +3 -0
- package/dist/react/components/Range.d.ts +2 -0
- package/dist/react/components/Tag.d.ts +2 -0
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.ts +6 -0
- package/dist/react/index.js +223 -86
- package/dist/react/types.d.ts +40 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [1.4.0](https://github.com/7K-Group/7k-design-system/compare/v1.3.1...v1.4.0) (2026-10-16)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **react:** Tag, Banner, Range, ColorSwatch, Form, ButtonGroup components ([#69](https://github.com/7K-Group/7k-design-system/issues/69)) ([bd31aac](https://github.com/7K-Group/7k-design-system/commit/bd31aac80c715f48d825d1f02ca998632f389ab0))
|
|
7
|
+
|
|
1
8
|
## [1.3.1](https://github.com/7K-Group/7k-design-system/compare/v1.3.0...v1.3.1) (2026-10-13)
|
|
2
9
|
|
|
3
10
|
|
package/DESIGN.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
> Category: Custom · Surface: web, mobile, desktop
|
|
5
5
|
> Font: Geist + Geist Mono + Geist Pixel · Major neon: #FF0FF · Secondary neon: cyan (thematic per project) · Logo: 7K · Theme: Dark-first
|
|
6
6
|
> 1-bit textures: 10 patterns · 1-bit components: 40+ · 1-bit animations: 20+ keyframes
|
|
7
|
-
> React UI kit: Button, Input, Badge, Card, Modal, Drawer, Toast, Tooltip, Alert, Tabs, Nav, Checkbox, Radio, Toggle, Select, Textarea, ThemeToggle, ThemeProvider, ProjectProvider, useTheme, useProject
|
|
7
|
+
> React UI kit: Button, Input, Badge, Card, Modal, Drawer, Toast, Tooltip, Alert, Tabs, Nav, Checkbox, Radio, Toggle, Select, Textarea, Tag, Banner, Range, ColorSwatch, FormGroup, InputGroup, ButtonGroup, ButtonSplit, ThemeToggle, ThemeProvider, ProjectProvider, useTheme, useProject
|
|
8
8
|
> Build: Vite + PostCSS + TypeScript · Test: Vitest + Testing Library · Docs: Storybook
|
|
9
9
|
|
|
10
10
|
## Source context
|
|
@@ -25,7 +25,7 @@ Key constraints derived from the source:
|
|
|
25
25
|
- **1-bit manga influence** → 10-texture background pattern library (scanline, halftone, dot matrix, stripes, crosshatch, checkerboard, noise, vignette). All textures are CSS gradients — no images, no SVG humans.
|
|
26
26
|
- **Abstract 1-bit animations** → 20+ animation keyframes organized as ambient (continuous) and trigger (burst) categories. Step timing for retro feel, reduced-motion collapse.
|
|
27
27
|
- **1-bit component system** → 40+ components with zero radius, 2px white borders, invert hover state. Unified black/white visual language with thin accent layer modifiers for color moments.
|
|
28
|
-
- **React UI kit** → TypeScript React components (Button, Input, Badge, Card, Modal, Drawer, Toast, Tooltip, Alert, Tabs, Nav, Checkbox, Radio, Toggle, Select, Textarea, ThemeToggle) with ThemeProvider, ProjectProvider, useTheme, and useProject hooks.
|
|
28
|
+
- **React UI kit** → TypeScript React components (Button, Input, Badge, Card, Modal, Drawer, Toast, Tooltip, Alert, Tabs, Nav, Checkbox, Radio, Toggle, Select, Textarea, Tag, Banner, Range, ColorSwatch, FormGroup, InputGroup, ButtonGroup, ButtonSplit, ThemeToggle) with ThemeProvider, ProjectProvider, useTheme, and useProject hooks.
|
|
29
29
|
- **Modular CSS** → 10 source files in `src/css/` compiled into `dist/7k-design-system.css`.
|
|
30
30
|
|
|
31
31
|
## Package Structure
|
package/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: 7k-design-system
|
|
3
|
-
description: Dark-first, neon-accented design system for multi-project tech company 7K. Three-font system (Geist sans + Geist Mono + Geist Pixel 5 geometric variants), #FF0FF major neon + cyan secondary (thematic per project), Tokyo neon atmosphere with high-contrast texture punctuation. Background textures on components, surface & callout utilities, isometric geometry animations, 40+ components, 20+ animation keyframes. React TypeScript UI kit (Button, Input, Badge, Card, Modal, Drawer, Toast, Tooltip, Alert, Tabs, Nav, Checkbox, Radio, Toggle, Select, Textarea, ThemeToggle, ThemeProvider, ProjectProvider, useTheme, useProject). Production-ready npm package with Vite + PostCSS build, Vitest test suite, Storybook documentation.
|
|
3
|
+
description: Dark-first, neon-accented design system for multi-project tech company 7K. Three-font system (Geist sans + Geist Mono + Geist Pixel 5 geometric variants), #FF0FF major neon + cyan secondary (thematic per project), Tokyo neon atmosphere with high-contrast texture punctuation. Background textures on components, surface & callout utilities, isometric geometry animations, 40+ components, 20+ animation keyframes. React TypeScript UI kit (Button, Input, Badge, Card, Modal, Drawer, Toast, Tooltip, Alert, Tabs, Nav, Checkbox, Radio, Toggle, Select, Textarea, Tag, Banner, Range, ColorSwatch, FormGroup, InputGroup, ButtonGroup, ButtonSplit, ThemeToggle, ThemeProvider, ProjectProvider, useTheme, useProject). Production-ready npm package with Vite + PostCSS build, Vitest test suite, Storybook documentation.
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -17,7 +17,7 @@ This package is organized as a Claude Design-style reusable skill. Each file bel
|
|
|
17
17
|
| `src/css/tokens.css` | All design tokens: 11-step color ramps, semantic role mapping, typography, spacing, motion, layout | Single source of truth for all token values |
|
|
18
18
|
| `src/css/components.css` | 40+ component classes + modern neon button system + textured component variants | Zero radius, 2px borders, invert hover, accent modifiers, texture overlays |
|
|
19
19
|
| `src/css/callouts.css` | Surface & callout system — outlined surfaces, gutters, motion lines, callouts, screentone overlays | High-contrast layout primitives |
|
|
20
|
-
| `src/react/` | TypeScript React UI kit — Button, Input, Badge, Card, Modal, Drawer, Toast, Tooltip, Alert, Tabs, Nav, Checkbox, Radio, Toggle, Select, Textarea, ThemeToggle, ThemeProvider, ProjectProvider, useTheme, useProject | Thin wrappers over CSS classes with ref forwarding and ARIA attributes |
|
|
20
|
+
| `src/react/` | TypeScript React UI kit — Button, Input, Badge, Card, Modal, Drawer, Toast, Tooltip, Alert, Tabs, Nav, Checkbox, Radio, Toggle, Select, Textarea, Tag, Banner, Range, ColorSwatch, FormGroup, InputGroup, ButtonGroup, ButtonSplit, ThemeToggle, ThemeProvider, ProjectProvider, useTheme, useProject | Thin wrappers over CSS classes with ref forwarding and ARIA attributes |
|
|
21
21
|
| `src/stories/` | Storybook documentation — Overview, Tokens, Components, Textures | MDX + CSF stories for interactive documentation |
|
|
22
22
|
|
|
23
23
|
## Source context
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ButtonGroupProps } from '../types';
|
|
2
|
+
export declare function ButtonGroup({ className, style, children }: ButtonGroupProps): import("react").JSX.Element;
|
|
3
|
+
export declare function ButtonSplit({ className, style, children }: ButtonGroupProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { FormGroupProps, InputGroupProps } from '../types';
|
|
2
|
+
export declare function FormGroup({ label, error, className, style, children }: FormGroupProps): import("react").JSX.Element;
|
|
3
|
+
export declare function InputGroup({ addon, addonPosition, className, style, children, }: InputGroupProps): import("react").JSX.Element;
|
package/dist/react/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));let c=require("react");c=s(c,1);let l=require("react/jsx-runtime");var u=(0,c.forwardRef)(({children:e,variant:t=`primary`,size:n=`md`,disabled:r=!1,loading:i=!1,onClick:a,type:o=`button`,className:s=``,style:c,"aria-label":u,"aria-describedby":d,...f},p)=>{let m=n===`sm`?`btn-sm`:n===`lg`?`btn-lg`:``,h=[`btn`,`btn-${t}`,m,i?`btn-loading`:``,s].filter(Boolean).join(` `);return(0,l.jsx)(`button`,{ref:p,type:o,className:h,style:c,disabled:r||i,onClick:a,"aria-label":u,"aria-describedby":d,"aria-busy":i||void 0,...f,children:e})});u.displayName=`Button`;var d=(0,c.forwardRef)(({type:e=`text`,placeholder:t,disabled:n=!1,value:r,onChange:i,className:a=``,style:o,id:s,label:u,error:d,"aria-describedby":f,...p},m)=>{let h=(0,c.useId)(),g=s??h,_=d?`${g}-error`:void 0,v=[f,_].filter(Boolean).join(` `)||void 0,y=[`input`,d?`error`:``,a].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:`form-group`,style:o,children:[u&&(0,l.jsx)(`label`,{htmlFor:g,className:`form-label`,children:u}),(0,l.jsx)(`input`,{ref:m,id:g,type:e,className:y,placeholder:t,disabled:n,value:r,onChange:e=>i?.(e.target.value),"aria-invalid":d?!0:void 0,"aria-describedby":v,...p}),d&&(0,l.jsx)(`span`,{id:_,className:`field-error`,role:`alert`,children:d})]})});d.displayName=`Input`;var f=(0,c.forwardRef)(({children:e,variant:t=`default`,role:n=`status`,className:r=``,style:i,...a},o)=>{let s=[`badge`,t==="default"?``:`badge-${t}`,r].filter(Boolean).join(` `);return(0,l.jsx)(`span`,{ref:o,className:s,style:i,role:n,...a,children:e})});f.displayName=`Badge`;var p={icon:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,l.jsx)(`path`,{d:`M12 6v6l4 2`})]}),close:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})}),"chevron-down":(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M6 9l6 6 6-6`})}),"chevron-up":(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M6 15l6-6 6 6`})}),"chevron-left":(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M15 18l-6-6 6-6`})}),"chevron-right":(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M9 18l6-6-6-6`})}),check:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M20 6L9 17l-5-5`})}),minus:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M5 12h14`})}),plus:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M12 5v14M5 12h14`})}),menu:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M3 12h18M3 6h18M3 18h18`})}),sun:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`5`}),(0,l.jsx)(`path`,{d:`M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42`})]}),moon:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z`})}),info:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,l.jsx)(`path`,{d:`M12 16v-4M12 8h.01`})]}),warning:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`path`,{d:`M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z`}),(0,l.jsx)(`path`,{d:`M12 9v4M12 17h.01`})]}),danger:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,l.jsx)(`path`,{d:`M15 9l-6 6M9 9l6 6`})]}),success:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,l.jsx)(`path`,{d:`M8 12l3 3 5-6`})]})};function m({name:e,size:t=24,className:n=``,style:r}){let i=p[e];return i?(0,l.jsx)(`span`,{className:n,style:{display:`inline-flex`,width:t,height:t,lineHeight:0,...r},children:i}):null}var h=(0,c.createContext)(void 0);function g(){let e=(0,c.useContext)(h);if(!e)throw Error(`useTheme must be used within a ThemeProvider`);return e}function _({className:e=``}){let{theme:t,toggleTheme:n}=g(),r=t===`dark`;return(0,l.jsx)(`button`,{onClick:n,className:`btn theme-toggle ${e}`,style:{width:32,height:32,padding:0},title:r?`Switch to light theme`:`Switch to dark theme`,"aria-label":r?`Switch to light theme`:`Switch to dark theme`,children:(0,l.jsx)(m,{name:r?`sun`:`moon`,size:14})})}var v={halftone:`card-halftone`,scanline:`card-scanline`,noise:`card-noise`,crosshatch:`card-crosshatch`,dots:`card-dots`,texture:`card-textured`},y=(0,c.forwardRef)(({children:e,texture:t,hover:n=!0,className:r=``,style:i,...a},o)=>{let s=[`card`,t?v[t]||v.texture:``,n?``:`card-static`,r].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{ref:o,className:s,style:i,...a,children:e})});y.displayName=`Card`;var b=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`div`,{ref:i,className:`card-header ${t}`,style:n,...r,children:e}));b.displayName=`CardHeader`;var x=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`div`,{ref:i,className:`card-body ${t}`,style:n,...r,children:e}));x.displayName=`CardBody`;var S={halftone:`modal-halftone`,scanline:`modal-scanline`,noise:`modal-noise`,texture:`modal-textured`},C=(0,c.forwardRef)(({children:e,open:t=!1,onClose:n,texture:r,role:i=`dialog`,"aria-labelledby":a,"aria-describedby":o,className:s=``,style:u,...d},f)=>{let p=(0,c.useRef)(null),m=(0,c.useRef)(null);if((0,c.useEffect)(()=>{if(t){m.current=document.activeElement,p.current?.focus(),document.body.style.overflow=`hidden`;let e=e=>{if(e.key===`Escape`){e.stopPropagation(),n?.();return}if(e.key===`Tab`&&p.current){let t=p.current.querySelectorAll(`a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])`);if(t.length===0){e.preventDefault();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``}}return document.body.style.overflow=``,m.current?.focus(),()=>{document.body.style.overflow=``}},[t,n]),!t)return null;let h=[`modal`,r?S[r]||S.texture:``,s].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:`modal-backdrop`,onClick:n,role:`presentation`,style:{position:`fixed`,inset:0,display:`grid`,placeItems:`center`,background:`rgba(0,0,0,0.7)`,zIndex:`var(--z-modal)`},children:(0,l.jsx)(`div`,{ref:e=>{p.current=e,typeof f==`function`?f(e):f&&(f.current=e)},className:h,style:u,role:i,"aria-modal":`true`,"aria-labelledby":a,"aria-describedby":o,tabIndex:-1,onClick:e=>e.stopPropagation(),...d,children:e})})});C.displayName=`Modal`;var w=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`div`,{ref:i,className:`modal-header ${t}`,style:n,...r,children:e}));w.displayName=`ModalHeader`;var T=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`div`,{ref:i,className:`modal-footer ${t}`,style:n,...r,children:e}));T.displayName=`ModalFooter`;var E={halftone:`drawer-halftone`,scanline:`drawer-scanline`,texture:`drawer-textured`},D=(0,c.forwardRef)(({children:e,open:t=!1,onClose:n,side:r=`right`,texture:i,role:a=`dialog`,"aria-labelledby":o,className:s=``,style:u,...d},f)=>{let p=(0,c.useRef)(null),m=(0,c.useRef)(null);if((0,c.useEffect)(()=>{if(t){m.current=document.activeElement,p.current?.focus(),document.body.style.overflow=`hidden`;let e=e=>{e.key===`Escape`&&(e.stopPropagation(),n?.())};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``,m.current?.focus()}}return()=>{document.body.style.overflow=``}},[t,n]),!t)return null;let h=[`drawer`,i?E[i]||E.texture:``,s].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:`drawer-backdrop`,onClick:n,role:`presentation`,style:{position:`fixed`,inset:0,display:`flex`,justifyContent:r===`left`?`flex-start`:`flex-end`,background:`rgba(0,0,0,0.7)`,zIndex:`var(--z-modal)`},children:(0,l.jsx)(`div`,{ref:e=>{p.current=e,typeof f==`function`?f(e):f&&(f.current=e)},className:h,style:u,role:a,"aria-modal":`true`,"aria-labelledby":o,tabIndex:-1,onClick:e=>e.stopPropagation(),...d,children:e})})});D.displayName=`Drawer`;var O={default:``,success:`toast-success`,error:`toast-error`,warning:`toast-warning`,info:`toast-info`},k={halftone:`toast-halftone`,texture:`toast-textured`},A=(0,c.forwardRef)(({children:e,variant:t=`default`,onDismiss:n,texture:r,role:i=`status`,className:a=``,style:o,...s},c)=>{let u=[`toast`,O[t],r?k[r]||k.texture:``,a].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{ref:c,className:u,style:o,role:i,...s,children:[(0,l.jsx)(`span`,{className:`toast-icon`,"aria-hidden":`true`}),(0,l.jsx)(`span`,{className:`toast-content`,children:e}),n&&(0,l.jsx)(`button`,{className:`toast-dismiss`,onClick:n,"aria-label":`Dismiss notification`,children:`×`})]})});A.displayName=`Toast`;var ee={top:{bottom:`100%`,left:`50%`,transform:`translateX(-50%)`,marginBottom:8},right:{left:`100%`,top:`50%`,transform:`translateY(-50%)`,marginLeft:8},bottom:{top:`100%`,left:`50%`,transform:`translateX(-50%)`,marginTop:8},left:{right:`100%`,top:`50%`,transform:`translateY(-50%)`,marginRight:8}};function te({children:e,content:t,position:n=`top`,className:r=``,style:i}){let[a,o]=(0,c.useState)(!1),s=(0,c.useRef)(null);return(0,l.jsxs)(`span`,{ref:s,className:`tooltip-trigger ${r}`,style:{position:`relative`,display:`inline-flex`,...i},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onFocus:()=>o(!0),onBlur:()=>o(!1),children:[e,a&&(0,l.jsx)(`span`,{className:`tooltip`,role:`tooltip`,style:{position:`absolute`,zIndex:`var(--z-overlay)`,whiteSpace:`nowrap`,...ee[n]},children:t})]})}var j={default:``,success:`alert-success`,warning:`alert-warning`,danger:`alert-danger`,info:`alert-info`},M=(0,c.forwardRef)(({children:e,variant:t=`default`,onClose:n,role:r=`alert`,className:i=``,style:a,...o},s)=>{let c=[`alert`,j[t],i].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{ref:s,className:c,style:a,role:r,...o,children:[(0,l.jsx)(`span`,{className:`alert-content`,children:e}),n&&(0,l.jsx)(`button`,{className:`alert-close`,onClick:n,"aria-label":`Dismiss alert`,children:`×`})]})});M.displayName=`Alert`;var N=(0,c.createContext)(null);function P(){let e=(0,c.useContext)(N);if(!e)throw Error(`Tab components must be used within Tabs`);return e}function F({children:e,defaultIndex:t=0,index:n,onChange:r,className:i=``,style:a}){let[o,s]=(0,c.useState)(t),u=n===void 0?o:n,d=(0,c.useId)();return(0,l.jsx)(N.Provider,{value:{selectedIndex:u,setSelectedIndex:e=>{n===void 0&&s(e),r?.(e)},baseId:d},children:(0,l.jsx)(`div`,{className:`tabs ${i}`,style:a,children:e})})}function I({children:e,className:t=``,style:n}){return(0,l.jsx)(`div`,{className:`tab-list ${t}`,role:`tablist`,style:n,children:e})}function L({children:e,index:t,className:n=``,style:r}){let{selectedIndex:i,setSelectedIndex:a,baseId:o}=P(),s=t??0,c=i===s;return(0,l.jsx)(`button`,{role:`tab`,"aria-selected":c,"aria-controls":`${o}-panel-${s}`,id:`${o}-tab-${s}`,"data-tab-index":s,className:`tab ${c?`active`:``} ${n}`,style:r,tabIndex:c?0:-1,onClick:()=>a(s),onKeyDown:e=>{let t=Array.from(e.currentTarget.closest(`[role="tablist"]`)?.querySelectorAll(`[role="tab"]`)??[]),n=t.indexOf(e.currentTarget);if(n===-1)return;let r=e=>{let n=t[(e+t.length)%t.length];n.focus(),a(Number(n.dataset.tabIndex??e))};switch(e.key){case`ArrowRight`:case`ArrowDown`:e.preventDefault(),r(n+1);break;case`ArrowLeft`:case`ArrowUp`:e.preventDefault(),r(n-1);break;case`Home`:e.preventDefault(),r(0);break;case`End`:e.preventDefault(),r(t.length-1)}},children:e})}function R({children:e,index:t,className:n=``,style:r}){let{selectedIndex:i,baseId:a}=P(),o=t??0;return i===o?(0,l.jsx)(`div`,{role:`tabpanel`,id:`${a}-panel-${o}`,"aria-labelledby":`${a}-tab-${o}`,className:`tab-panel ${n}`,style:r,tabIndex:0,children:e}):null}var z=(0,c.forwardRef)(({children:e,orientation:t=`horizontal`,className:n=``,style:r,...i},a)=>{let o=[`nav`,t===`vertical`?`nav-vertical`:`nav-horizontal`,n].filter(Boolean).join(` `);return(0,l.jsx)(`nav`,{ref:a,className:o,style:r,...i,children:e})});z.displayName=`Nav`;var B=(0,c.forwardRef)(({children:e,active:t=!1,href:n=`#`,className:r=``,style:i,...a},o)=>{let s=[`nav-item`,t?`active`:``,r].filter(Boolean).join(` `);return(0,l.jsx)(`a`,{ref:o,href:n,className:s,style:i,...a,children:e})});B.displayName=`NavItem`;var V=(0,c.forwardRef)(({label:e,indeterminate:t=!1,className:n=``,style:r,checked:i,...a},o)=>{let s=[`checkbox`,i?`checked`:``,n].filter(Boolean).join(` `);return(0,l.jsxs)(`label`,{className:s,style:r,children:[(0,l.jsx)(`input`,{ref:e=>{e&&(e.indeterminate=t),typeof o==`function`&&o(e)},type:`checkbox`,className:`sr-only`,checked:i,...a}),(0,l.jsx)(`span`,{className:`checkbox-box`,"aria-hidden":`true`}),e&&(0,l.jsx)(`span`,{className:`checkbox-text`,children:e})]})});V.displayName=`Checkbox`;var H=(0,c.forwardRef)(({label:e,className:t=``,style:n,checked:r,...i},a)=>{let o=[`radio`,r?`selected`:``,t].filter(Boolean).join(` `);return(0,l.jsxs)(`label`,{className:o,style:n,children:[(0,l.jsx)(`input`,{ref:a,type:`radio`,className:`sr-only`,checked:r,...i}),(0,l.jsx)(`span`,{className:`radio-circle`,"aria-hidden":`true`}),e&&(0,l.jsx)(`span`,{className:`radio-text`,children:e})]})});H.displayName=`Radio`;var U=(0,c.forwardRef)(({label:e,checked:t,onChange:n,className:r=``,style:i,...a},o)=>{let s=[`toggle`,t?`on`:``,r].filter(Boolean).join(` `);return(0,l.jsxs)(`label`,{className:s,style:i,children:[(0,l.jsx)(`input`,{ref:o,type:`checkbox`,role:`switch`,className:`sr-only`,checked:t,onChange:e=>n?.(e.target.checked),...a}),(0,l.jsx)(`span`,{className:`toggle-track`,"aria-hidden":`true`,children:(0,l.jsx)(`span`,{className:`toggle-thumb`})}),e&&(0,l.jsx)(`span`,{className:`toggle-text`,children:e})]})});U.displayName=`Toggle`;var W=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`select`,{ref:i,className:`select-native ${t}`,style:n,...r,children:e}));W.displayName=`Select`;var G=(0,c.forwardRef)(({className:e=``,style:t,...n},r)=>(0,l.jsx)(`textarea`,{ref:r,className:`textarea ${e}`,style:t,...n}));G.displayName=`Textarea`;var K={halftone:`texture-halftone`,scanline:`texture-scanline`,noise:`texture-noise`,crosshatch:`texture-crosshatch`,dots:`texture-dots`,"grid-dots":`texture-grid-dots`,texture:`texture-overlay`};function q({children:e,texture:t=`halftone`,opacity:n,animated:r=!1,className:i=``,style:a}){let o=[K[t===!1||t===null?`texture`:t]||K.texture,r?`texture-animated`:``,i].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:o,style:{...a,...n===void 0?{}:{"--texture-opacity":n}},children:e})}var J={grid:{static:`iso-grid`,animated:`iso-grid-animated`},"grid-dense":{static:`iso-grid-dense`,animated:`iso-grid-dense-animated`},cubes:{static:`iso-cubes`,animated:`iso-cubes-animated`},terrain:{static:`iso-terrain`,animated:`iso-terrain-animated`},pipes:{static:`iso-pipes`,animated:`iso-pipes-animated`},hex:{static:`iso-hex`,animated:`iso-hex-animated`},city:{static:`iso-city`,animated:`iso-city-animated`},wave:{static:`iso-wave`,animated:`iso-wave-animated`}};function Y({children:e,pattern:t=`grid`,animated:n=!1,className:r=``,style:i}){let a=J[t]||J.grid,o=[a.static,n?a.animated:``,r].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:o,style:i,children:e})}function X({size:e=`md`,className:t=``,style:n}){let r=[`spinner`,e===`sm`?`spinner-sm`:e===`lg`?`spinner-lg`:``,t].filter(Boolean).join(` `);return(0,l.jsx)(`span`,{role:`status`,"aria-label":`Loading`,className:r,style:n})}function Z({width:e,height:t=16,className:n=``,style:r}){let i=[`skeleton`,n].filter(Boolean).join(` `);return(0,l.jsx)(`span`,{"aria-hidden":`true`,className:i,style:{width:e,height:t,...r}})}function ne({src:e,alt:t=``,initials:n,size:r=`md`,circle:i=!1,className:a=``,style:o}){let s=[`avatar`,r===`sm`?`avatar-sm`:r===`lg`?`avatar-lg`:``,i?`avatar-circle`:``,a].filter(Boolean).join(` `);return(0,l.jsx)(`span`,{className:s,style:o,children:e?(0,l.jsx)(`img`,{src:e,alt:t}):n??t.slice(0,2)})}function re({value:e,max:t=100,variant:n,className:r=``,style:i}){let a=Math.min(100,Math.max(0,e/t*100)),o=[`progress`,n?`progress-${n}`:``,r].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{role:`progressbar`,"aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":t,className:o,style:i,children:(0,l.jsx)(`div`,{className:`progress-bar`,style:{width:`${a}%`}})})}var ie=[`7kgroup`,`7kminato`,`inari`],ae=`7k-project`;function oe(e){return typeof e==`string`&&ie.includes(e)}var Q=(0,c.createContext)({project:`7kgroup`,setProject:()=>{}});function se({children:e,defaultProject:t=`7kgroup`,storageKey:n=ae}){let[r,i]=(0,c.useState)(()=>{if(typeof window>`u`)return t;let e=localStorage.getItem(n);return oe(e)?e:t});(0,c.useEffect)(()=>{document.documentElement.setAttribute(`data-project`,r),localStorage.setItem(n,r)},[r,n]);let a=(0,c.useCallback)(e=>{i(e)},[]);return(0,l.jsx)(Q.Provider,{value:{project:r,setProject:a},children:e})}function $(){return(0,c.useContext)(Q)}var ce=[{id:`stroke-1`,d:`M0 0 C5.31124964 0.603148 10.48703511 1.43913427 15.70556641 2.60717773 C16.43345084 2.76700921 17.16133528 2.92684069 17.91127682 3.09151554 C20.30879661 3.61883334 22.7051582 4.15123171 25.1015625 4.68359375 C26.80517693 5.05913826 28.50886821 5.43433426 30.21263123 5.8092041 C34.7498531 6.80842764 39.28611201 7.81195236 43.82210159 8.81675339 C51.28033334 10.46849791 58.73958849 12.11562021 66.19889259 13.76251411 C68.04881424 14.17100274 69.89869699 14.57966759 71.74854088 14.98850822 C83.02899365 17.48103879 94.31557491 19.93611433 105.62109375 22.3125 C107.79802212 22.77283097 109.97494311 23.23319683 112.15185547 23.69360352 C116.00363238 24.50743675 119.85834657 25.30477983 123.71533203 26.09350586 C125.3845784 26.44579716 127.05369683 26.79869553 128.72265625 27.15234375 C129.83367958 27.37150452 129.83367958 27.37150452 130.96714783 27.59509277 C132.96508789 28.02709961 132.96508789 28.02709961 136 29 C136.33 29.99 136.66 30.98 137 32 C129.29851279 34.38264441 121.53802394 36.48456869 113.73828125 38.51953125 C112.44506913 38.85815768 111.15188757 39.19690088 109.85873413 39.53575134 C106.39552234 40.44257301 102.93164295 41.3468178 99.467556 42.25028992 C97.30259146 42.81508493 95.13780023 43.38053979 92.97305298 43.94616699 C65.30194833 51.17500901 37.60064857 58.2829979 9.86859131 65.2746582 C6.95503557 66.01136955 4.04311103 66.75428619 1.13134766 67.49804688 C-0.69756438 67.96234502 -2.52650191 68.42654277 -4.35546875 68.890625 C-5.18959793 69.1051532 -6.02372711 69.3196814 -6.88313293 69.54071045 C-9.99400234 70.32656685 -12.77765467 71 -16 71 C-12.92929924 54.77377074 -9.40553704 38.66561099 -5.75 22.5625 C-5.52395081 21.56295288 -5.29790161 20.56340576 -5.06500244 19.53356934 C-4.41628654 16.66878444 -3.7636237 13.80493209 -3.109375 10.94140625 C-2.91163483 10.06849442 -2.71389465 9.19558258 -2.51016235 8.29621887 C-1.115605 2.23121 -1.115605 2.23121 0 0 Z `,transform:`translate(26,51)`},{id:`stroke-2`,d:`M0 0 C-1.67248293 10.01430524 -4.81990605 19.54309491 -7.84765625 29.2109375 C-8.4257994 31.07021702 -9.00346387 32.92964545 -9.58067322 34.78921509 C-11.09330629 39.65840935 -12.61175033 44.52577089 -14.13165283 49.3927002 C-16.27778373 56.26859344 -18.41607032 63.14693086 -20.55503845 70.02505493 C-21.69252479 73.68276675 -22.8322997 77.33975309 -23.97389221 80.9961853 C-24.49310597 82.66200356 -25.01230729 84.3278257 -25.53149414 85.99365234 C-25.76787598 86.74902283 -26.00425781 87.50439331 -26.24780273 88.28265381 C-27.25246686 91.50973417 -28.17985248 94.71940994 -29 98 C-49.13 98 -69.26 98 -90 98 C-89.08735353 94.34941413 -88.08326569 92.14101086 -86.21875 88.94140625 C-85.33932739 87.4243811 -85.33932739 87.4243811 -84.44213867 85.87670898 C-83.48078003 84.23617554 -83.48078003 84.23617554 -82.5 82.5625 C-81.83653564 81.42176025 -81.17307129 80.28102051 -80.48950195 79.10571289 C-78.70177289 76.03315466 -76.90744295 72.96450671 -75.11090088 69.89709473 C-74.00188698 68.00322241 -72.89407958 66.10864941 -71.78662109 64.21386719 C-64.64885447 52.00358705 -57.4869888 39.80737281 -50.30541992 27.62280273 C-49.79458862 26.75570679 -49.79458862 26.75570679 -49.2734375 25.87109375 C-48.90790771 25.28473145 -48.54237793 24.69836914 -48.16577148 24.09423828 C-46.89109403 21.91410493 -46.89109403 21.91410493 -45.85180664 19.07373047 C-43.51839101 13.84292684 -41.33140906 10.25401282 -35.90917969 8.10131836 C-30.9167507 6.46669422 -25.81795263 5.35419438 -20.6875 4.25 C-18.90454999 3.82731719 -17.122629 3.40026875 -15.34179688 2.96875 C-2.90837515 0 -2.90837515 0 0 0 Z `,transform:`translate(158,96)`},{id:`blob-1`,d:`M0 0 C-1.43234259 3.83404835 -3.20394594 7.29062018 -5.23828125 10.83984375 C-6.211604 12.5417688 -6.211604 12.5417688 -7.20458984 14.27807617 C-7.90704252 15.49799011 -8.60968357 16.7177956 -9.3125 17.9375 C-10.03607495 19.19826337 -10.75954386 20.45908761 -11.48291016 21.7199707 C-17.41002821 32.0360915 -23.44411364 42.28753807 -29.52587891 52.51318359 C-30.98773375 54.97930706 -32.43927165 57.45117766 -33.88671875 59.92578125 C-34.33998535 60.70026611 -34.79325195 61.47475098 -35.26025391 62.27270508 C-36.09331585 63.69753149 -36.92514175 65.12308176 -37.75537109 66.54956055 C-40.04520076 70.46097972 -42.44977773 74.25273462 -45 78 C-50.07599137 74.46218783 -53.33453539 69.89206823 -57 65 C-58.53804041 62.97640538 -60.07999024 60.95577855 -61.625 58.9375 C-62.04023926 58.39496582 -62.45547852 57.85243164 -62.88330078 57.29345703 C-66.36160697 52.7738662 -69.95070177 48.35075295 -73.5625 43.9375 C-77.55147174 39.0540138 -81.50205965 34.14957782 -85.3125 29.125 C-86.03050781 28.17882812 -86.74851562 27.23265625 -87.48828125 26.2578125 C-89 24 -89 24 -89 22 C-85.42579333 21.07287008 -81.8515694 20.14580673 -78.27734375 19.21875 C-77.16125229 18.92924469 -76.04516083 18.63973938 -74.89524841 18.34146118 C-68.75872985 16.74984654 -62.62199379 15.1590777 -56.48486328 13.56982422 C-41.73019206 9.75106531 -41.73019206 9.75106531 -26.98371887 5.90081787 C-24.09145469 5.1418846 -21.19838391 4.38605777 -18.3052063 3.63061523 C-16.41473273 3.13540794 -14.52558699 2.63514046 -12.63647461 2.13476562 C-10.97177124 1.70067383 -10.97177124 1.70067383 -9.2734375 1.2578125 C-8.33935059 1.0117627 -7.40526367 0.76571289 -6.44287109 0.51220703 C-4 0 -4 0 0 0 Z `,transform:`translate(102,111)`},{id:`blob-2`,d:`M0 0 C6.0218352 1.73771685 11.46488166 4.56608463 17.05859375 7.33984375 C18.12110855 7.86260391 19.18362335 8.38536407 20.27833557 8.92396545 C23.66650824 10.59155047 27.05214804 12.26419708 30.4375 13.9375 C33.81962136 15.60652692 37.20228435 17.2744345 40.58595276 18.94032288 C42.68828272 19.9756357 44.7896776 21.01285013 46.88999939 22.05223083 C51.87620309 24.51034073 56.86222845 26.87564724 62 29 C61.43189471 34.79859195 60.26320265 39.97686594 58.4375 45.5 C58.08655273 46.59054688 58.08655273 46.59054688 57.72851562 47.703125 C57.15867219 49.47080261 56.58024596 51.23570969 56 53 C46.3204691 51.52601868 36.80148214 49.49993648 27.25 47.375 C25.76308304 47.0465932 24.27610421 46.71846643 22.7890625 46.390625 C19.19199117 45.59696823 15.59576525 44.79955605 12 44 C10.44527314 38.86073216 8.89724042 33.71951208 7.35522461 28.57641602 C6.83034259 26.82912627 6.30367432 25.08237204 5.77514648 23.33618164 C5.01329429 20.81797651 4.2580068 18.2978795 3.50390625 15.77734375 C3.26845596 15.00414291 3.03300568 14.23094208 2.79042053 13.43431091 C1.45836043 8.95540698 0.54040163 4.64315228 0 0 Z `,transform:`translate(111,17)`},{id:`blob-3`,d:`M0 0 C1.71425579 5.6400991 3.42311068 11.28179516 5.12695312 16.92504883 C5.70749658 18.84509566 6.28952054 20.76469549 6.87304688 22.68383789 C7.71091932 25.44040974 8.54347661 28.19853855 9.375 30.95703125 C9.63748535 31.81649857 9.8999707 32.67596588 10.17041016 33.56147766 C10.53078369 34.76238289 10.53078369 34.76238289 10.8984375 35.98754883 C11.21820557 37.04344963 11.21820557 37.04344963 11.54443359 38.12068176 C12 40 12 40 12 43 C4.19873204 42.31050991 -3.31933205 40.78209336 -10.96875 39.12890625 C-12.29867465 38.84351716 -13.62863128 38.55827702 -14.95861816 38.2731781 C-17.72603652 37.67869802 -20.49264423 37.08060107 -23.25878906 36.48022461 C-26.80899611 35.71025821 -30.36166632 34.9523694 -33.91509247 34.19741917 C-36.65289273 33.6138849 -39.38898738 33.02265354 -42.12464905 32.42918205 C-44.07186153 32.0086336 -46.02072887 31.59577132 -47.96960449 31.18299866 C-49.14172485 30.92610764 -50.31384521 30.66921661 -51.52148438 30.40454102 C-52.55801147 30.18105484 -53.59453857 29.95756866 -54.66247559 29.72731018 C-55.43385864 29.48729782 -56.2052417 29.24728546 -57 29 C-57.33 28.34 -57.66 27.68 -58 27 C-57.08057617 26.56300781 -57.08057617 26.56300781 -56.14257812 26.1171875 C-41.32711212 19.0810423 -41.32711212 19.0810423 -26.625 11.8125 C-20.99064284 8.97258449 -15.32501509 6.20591616 -9.625 3.5 C-8.8923291 3.1491333 -8.1596582 2.7982666 -7.40478516 2.43676758 C-2.2362567 0 -2.2362567 0 0 0 Z `,transform:`translate(98,14)`},{id:`blob-4`,d:`M0 0 C2.24002181 2.24002181 2.45082686 3.1646128 3.11328125 6.18334961 C3.30688232 7.04862778 3.5004834 7.91390594 3.69995117 8.80540466 C3.90209229 9.74489456 4.1042334 10.68438446 4.3125 11.65234375 C4.52688721 12.62224747 4.74127441 13.59215118 4.9621582 14.59144592 C5.41604476 16.65110903 5.86638389 18.71155655 6.31347656 20.77270508 C6.99078773 23.89503247 7.67792925 27.01505623 8.3671875 30.13476562 C8.80787659 32.14049657 9.24799807 34.14635233 9.6875 36.15234375 C9.88964111 37.07361557 10.09178223 37.99488739 10.30004883 38.94407654 C11.67118136 45.27311846 12.87807116 51.6222017 14 58 C2.81113703 61.65634825 -8.53429664 64.3657014 -20 67 C-19.3294196 59.88425139 -17.09664011 53.25199721 -15 46.4453125 C-14.59989789 45.13502886 -14.20016419 43.82463267 -13.80078125 42.51412964 C-12.96679201 39.78152421 -12.12928768 37.05003021 -11.2890625 34.31933594 C-10.2105854 30.81377395 -9.13961319 27.30597387 -8.07104492 23.79738045 C-7.24825293 21.09783944 -6.42226487 18.39928521 -5.59521484 15.70104599 C-5.19886693 14.40706524 -4.80335699 13.11282752 -4.40869141 11.81833267 C-3.8589483 10.01740832 -3.30459218 8.21789404 -2.75 6.41845703 C-2.43546875 5.39366241 -2.1209375 4.3688678 -1.796875 3.3130188 C-1 1 -1 1 0 0 Z `,transform:`translate(179,68)`},{id:`blob-5`,d:`M0 0 C0 4.13451443 -2.1839165 6.12255584 -4.6875 9.1875 C-5.17790771 9.79972412 -5.66831543 10.41194824 -6.17358398 11.04272461 C-7.77390181 13.03551151 -9.38541085 15.01876258 -11 17 C-11.53979492 17.66354492 -12.07958984 18.32708984 -12.63574219 19.01074219 C-14.82765052 21.7045544 -17.02015927 24.39786833 -19.21582031 27.08862305 C-26.00991117 35.43318627 -32.61724571 43.92838421 -38.84375 52.70703125 C-39.41609375 53.34705078 -39.41609375 53.34705078 -40 54 C-40.66 54 -41.32 54 -42 54 C-41.36203146 48.57570043 -40.13437376 43.55378766 -38.56640625 38.328125 C-38.32840805 37.52389099 -38.09040985 36.71965698 -37.84519958 35.89105225 C-37.34414963 34.20284521 -36.84061571 32.51537359 -36.3347168 30.82861328 C-35.56130014 28.2459934 -34.79872799 25.66033926 -34.03710938 23.07421875 C-33.54752064 21.42949517 -33.05730802 19.78495715 -32.56640625 18.140625 C-32.3392543 17.3687384 -32.11210236 16.59685181 -31.87806702 15.80157471 C-30.87795999 12.49041113 -29.9327526 9.8991289 -28 7 C-25.20263672 6.0168457 -25.20263672 6.0168457 -21.6796875 5.17578125 C-19.79443359 4.71655273 -19.79443359 4.71655273 -17.87109375 4.24804688 C-16.53912224 3.93594285 -15.20709016 3.6240972 -13.875 3.3125 C-12.53489546 2.99001409 -11.19504774 2.66645895 -9.85546875 2.34179688 C-6.57269188 1.55062403 -3.28767054 0.7705379 0 0 Z `,transform:`translate(183,140)`}],le={"7kgroup":null,"7kminato":`blob-3`,inari:`blob-2`},ue={"7kgroup":`var(--accent-7kgroup)`,"7kminato":`var(--accent-7kminato)`,inari:`var(--accent-inari)`};function de({size:e=32,className:t=``,style:n}){let{project:r}=$(),i=le[r];return(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 208 207`,width:e,height:e,className:t,style:n,role:`img`,"aria-label":`${r} icon`,"data-project":r,children:ce.map(e=>(0,l.jsx)(`path`,{d:e.d,transform:e.transform,fill:e.id===i?ue[r]:e.id.startsWith(`stroke`)?`var(--accent-7kgroup)`:`var(--icon-blob)`},e.id))})}function fe({options:e,value:t,onChange:n,placeholder:r=`Select…`,disabled:i=!1,className:a=``,style:o}){let s=(0,c.useId)(),[u,d]=(0,c.useState)(!1),[f,p]=(0,c.useState)(-1),m=(0,c.useRef)(null),h=e.find(e=>e.value===t);(0,c.useEffect)(()=>{if(!u)return;let e=e=>{m.current?.contains(e.target)||d(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[u]);let g=t=>{let r=e[t];!r||r.disabled||(n?.(r.value),d(!1))},_=t=>{p(n=>{let r=n;for(let n=0;n<e.length&&(r=(r+t+e.length)%e.length,e[r].disabled);n++);return r})};return(0,l.jsxs)(`div`,{ref:m,className:`listbox ${a}`,style:o,onKeyDown:n=>{if(!i){if(!u&&[`Enter`,` `,`ArrowDown`,`ArrowUp`].includes(n.key)){n.preventDefault(),p(Math.max(0,e.findIndex(e=>e.value===t))),d(!0);return}if(u)switch(n.key){case`ArrowDown`:n.preventDefault(),_(1);break;case`ArrowUp`:n.preventDefault(),_(-1);break;case`Enter`:case` `:n.preventDefault(),g(f);break;case`Escape`:n.preventDefault(),d(!1)}}},children:[(0,l.jsxs)(`button`,{type:`button`,id:s,className:`listbox-trigger`,"aria-haspopup":`listbox`,"aria-expanded":u,disabled:i,onClick:()=>{p(Math.max(0,e.findIndex(e=>e.value===t))),d(e=>!e)},children:[(0,l.jsx)(`span`,{className:h?``:`listbox-placeholder`,children:h?.label??r}),(0,l.jsx)(`span`,{"aria-hidden":`true`,className:`listbox-chevron${u?` open`:``}`,children:`▾`})]}),u&&(0,l.jsx)(`ul`,{role:`listbox`,"aria-labelledby":s,className:`listbox-options`,children:e.map((e,n)=>(0,l.jsx)(`li`,{role:`option`,"aria-selected":e.value===t,"aria-disabled":e.disabled||void 0,className:[`listbox-option`,e.value===t?`selected`:``,n===f?`highlight`:``].filter(Boolean).join(` `),onMouseEnter:()=>p(n),onClick:()=>g(n),children:e.label},e.value))})]})}function pe({value:e,label:t,trend:n,accent:r=!1,status:i,className:a=``,style:o}){let s=[`stat`,r?`stat-accent`:``,i?`stat-${i}`:``,a].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:s,style:o,children:[(0,l.jsx)(`span`,{className:`stat-value`,children:e}),(0,l.jsx)(`span`,{className:`stat-label`,children:t}),n!=null&&(0,l.jsx)(`span`,{className:`stat-trend`,children:n})]})}function me({title:e,body:t,action:n,icon:r,className:i=``,style:a}){let o=[`empty`,i].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:o,style:a,children:[r==null?null:(0,l.jsx)(`span`,{className:`empty-icon`,children:r}),(0,l.jsx)(`h3`,{className:`empty-title`,children:e}),t!=null&&(0,l.jsx)(`span`,{className:`empty-text`,children:t}),n!=null&&(0,l.jsx)(`span`,{className:`empty-action`,children:n})]})}function he({columns:e,rows:t,rowKey:n,loading:r=!1,skeletonRows:i=6,empty:a,onSort:o,sortKey:s,sortDirection:c,pagination:u,className:d=``,style:f}){let p=(e,t)=>typeof n==`function`?n(e,t):String(e[n]);if((typeof process>`u`||process.env.NODE_ENV!==`production`)&&!r){let e=new Set;t.forEach((t,n)=>{let r=p(t,n);(r===`undefined`||e.has(r))&&console.warn(`DataTable: duplicate or missing rowKey "${r}" at row ${n}`),e.add(r)})}let m=[`datatable`,d].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:m,style:f,children:[(0,l.jsxs)(`table`,{className:`table`,children:[(0,l.jsx)(`thead`,{children:(0,l.jsx)(`tr`,{children:e.map(e=>(0,l.jsx)(`th`,{style:e.width==null?void 0:{width:e.width},"aria-sort":e.sortable&&o&&s===e.key?c===`desc`?`descending`:`ascending`:void 0,children:e.sortable&&o?(0,l.jsxs)(`button`,{type:`button`,className:`table-sort`,onClick:()=>o(e.key),children:[e.label,s===e.key?c===`desc`?` ↓`:` ↑`:``]}):e.label},e.key))})}),(0,l.jsxs)(`tbody`,{children:[r?Array.from({length:i},(t,n)=>(0,l.jsx)(`tr`,{children:e.map(e=>(0,l.jsx)(`td`,{children:(0,l.jsx)(Z,{height:12})},e.key))},`skeleton-${n}`)):t.map((t,n)=>(0,l.jsx)(`tr`,{children:e.map(e=>(0,l.jsx)(`td`,{className:e.mono?`mono`:void 0,"data-label":e.mobileLabel??(typeof e.label==`string`?e.label:void 0),children:e.render?e.render(t,n):String(t[e.key]??``)},e.key))},p(t,n))),!r&&t.length===0&&a!=null&&(0,l.jsx)(`tr`,{children:(0,l.jsx)(`td`,{colSpan:e.length,children:a})})]})]}),u!=null&&(0,l.jsx)(`div`,{className:`datatable-pagination`,children:u})]})}var ge=`7k-theme`;function _e({children:e,defaultTheme:t=`dark`,storageKey:n=ge}){let[r,i]=(0,c.useState)(()=>{if(typeof window>`u`)return t;let e=localStorage.getItem(n);return e===`light`||e===`dark`?e:t});(0,c.useLayoutEffect)(()=>{document.documentElement.setAttribute(`data-theme`,r),localStorage.setItem(n,r)},[r,n]);let a={theme:r,toggleTheme:(0,c.useCallback)(()=>{i(e=>e===`dark`?`light`:`dark`)},[]),setTheme:(0,c.useCallback)(e=>{i(e)},[])};return(0,l.jsx)(h.Provider,{value:a,children:e})}exports.Alert=M,exports.Avatar=ne,exports.Badge=f,exports.Button=u,exports.Card=y,exports.CardBody=x,exports.CardHeader=b,exports.Checkbox=V,exports.DataTable=he,exports.Drawer=D,exports.EmptyState=me,exports.Icon=m,exports.Input=d,exports.IsometricBackground=Y,exports.Listbox=fe,exports.Modal=C,exports.ModalFooter=T,exports.ModalHeader=w,exports.Nav=z,exports.NavItem=B,exports.Progress=re,exports.ProjectContext=Q,exports.ProjectIcon=de,exports.ProjectProvider=se,exports.Radio=H,exports.Select=W,exports.Skeleton=Z,exports.Spinner=X,exports.Stat=pe,exports.Tab=L,exports.TabList=I,exports.TabPanel=R,exports.Tabs=F,exports.Textarea=G,exports.TextureOverlay=q,exports.ThemeContext=h,exports.ThemeProvider=_e,exports.ThemeToggle=_,exports.Toast=A,exports.Toggle=U,exports.Tooltip=te,exports.useProject=$,exports.useTheme=g;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));let c=require("react");c=s(c,1);let l=require("react/jsx-runtime");var u=(0,c.forwardRef)(({children:e,variant:t=`primary`,size:n=`md`,disabled:r=!1,loading:i=!1,onClick:a,type:o=`button`,texture:s,className:c=``,style:u,"aria-label":d,"aria-describedby":f,...p},m)=>{let h={sm:`btn-sm`,lg:`btn-lg`,icon:`btn-icon`,"icon-lg":`btn-lg-icon`},g=`btn-${t}`,_=s?`btn-${s}`:``,v=[`btn`,g,h[n]??``,_,i?`btn-loading`:``,c].filter(Boolean).join(` `);return(0,l.jsx)(`button`,{ref:m,type:o,className:v,style:u,disabled:r||i,onClick:a,"aria-label":d,"aria-describedby":f,"aria-busy":i||void 0,...p,children:e})});u.displayName=`Button`;var d=(0,c.forwardRef)(({type:e=`text`,placeholder:t,disabled:n=!1,value:r,onChange:i,className:a=``,style:o,id:s,label:u,error:d,"aria-describedby":f,...p},m)=>{let h=(0,c.useId)(),g=s??h,_=d?`${g}-error`:void 0,v=[f,_].filter(Boolean).join(` `)||void 0,y=[`input`,d?`error`:``,a].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:`form-group`,style:o,children:[u&&(0,l.jsx)(`label`,{htmlFor:g,className:`form-label`,children:u}),(0,l.jsx)(`input`,{ref:m,id:g,type:e,className:y,placeholder:t,disabled:n,value:r,onChange:e=>i?.(e.target.value),"aria-invalid":d?!0:void 0,"aria-describedby":v,...p}),d&&(0,l.jsx)(`span`,{id:_,className:`field-error`,role:`alert`,children:d})]})});d.displayName=`Input`;var f=(0,c.forwardRef)(({children:e,variant:t=`default`,role:n=`status`,className:r=``,style:i,...a},o)=>{let s=[`badge`,t==="default"?``:`badge-${t}`,r].filter(Boolean).join(` `);return(0,l.jsx)(`span`,{ref:o,className:s,style:i,role:n,...a,children:e})});f.displayName=`Badge`;var p={icon:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,l.jsx)(`path`,{d:`M12 6v6l4 2`})]}),close:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})}),"chevron-down":(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M6 9l6 6 6-6`})}),"chevron-up":(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M6 15l6-6 6 6`})}),"chevron-left":(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M15 18l-6-6 6-6`})}),"chevron-right":(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M9 18l6-6-6-6`})}),check:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M20 6L9 17l-5-5`})}),minus:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M5 12h14`})}),plus:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M12 5v14M5 12h14`})}),menu:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M3 12h18M3 6h18M3 18h18`})}),sun:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`5`}),(0,l.jsx)(`path`,{d:`M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42`})]}),moon:(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,l.jsx)(`path`,{d:`M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z`})}),info:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,l.jsx)(`path`,{d:`M12 16v-4M12 8h.01`})]}),warning:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`path`,{d:`M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z`}),(0,l.jsx)(`path`,{d:`M12 9v4M12 17h.01`})]}),danger:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,l.jsx)(`path`,{d:`M15 9l-6 6M9 9l6 6`})]}),success:(0,l.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,l.jsx)(`path`,{d:`M8 12l3 3 5-6`})]})};function m({name:e,size:t=24,className:n=``,style:r}){let i=p[e];return i?(0,l.jsx)(`span`,{className:n,style:{display:`inline-flex`,width:t,height:t,lineHeight:0,...r},children:i}):null}var h=(0,c.createContext)(void 0);function g(){let e=(0,c.useContext)(h);if(!e)throw Error(`useTheme must be used within a ThemeProvider`);return e}function _({className:e=``}){let{theme:t,toggleTheme:n}=g(),r=t===`dark`;return(0,l.jsx)(`button`,{onClick:n,className:`btn theme-toggle ${e}`,style:{width:32,height:32,padding:0},title:r?`Switch to light theme`:`Switch to dark theme`,"aria-label":r?`Switch to light theme`:`Switch to dark theme`,children:(0,l.jsx)(m,{name:r?`sun`:`moon`,size:14})})}var v={halftone:`card-halftone`,scanline:`card-scanline`,noise:`card-noise`,crosshatch:`card-crosshatch`,dots:`card-dots`,texture:`card-textured`},y=(0,c.forwardRef)(({children:e,texture:t,hover:n=!0,className:r=``,style:i,...a},o)=>{let s=[`card`,t?v[t]||v.texture:``,n?``:`card-static`,r].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{ref:o,className:s,style:i,...a,children:e})});y.displayName=`Card`;var b=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`div`,{ref:i,className:`card-header ${t}`,style:n,...r,children:e}));b.displayName=`CardHeader`;var x=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`div`,{ref:i,className:`card-body ${t}`,style:n,...r,children:e}));x.displayName=`CardBody`;var S={halftone:`modal-halftone`,scanline:`modal-scanline`,noise:`modal-noise`,texture:`modal-textured`},C=(0,c.forwardRef)(({children:e,open:t=!1,onClose:n,texture:r,role:i=`dialog`,"aria-labelledby":a,"aria-describedby":o,className:s=``,style:u,...d},f)=>{let p=(0,c.useRef)(null),m=(0,c.useRef)(null);if((0,c.useEffect)(()=>{if(t){m.current=document.activeElement,p.current?.focus(),document.body.style.overflow=`hidden`;let e=e=>{if(e.key===`Escape`){e.stopPropagation(),n?.();return}if(e.key===`Tab`&&p.current){let t=p.current.querySelectorAll(`a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])`);if(t.length===0){e.preventDefault();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``}}return document.body.style.overflow=``,m.current?.focus(),()=>{document.body.style.overflow=``}},[t,n]),!t)return null;let h=[`modal`,r?S[r]||S.texture:``,s].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:`modal-backdrop`,onClick:n,role:`presentation`,style:{position:`fixed`,inset:0,display:`grid`,placeItems:`center`,background:`rgba(0,0,0,0.7)`,zIndex:`var(--z-modal)`},children:(0,l.jsx)(`div`,{ref:e=>{p.current=e,typeof f==`function`?f(e):f&&(f.current=e)},className:h,style:u,role:i,"aria-modal":`true`,"aria-labelledby":a,"aria-describedby":o,tabIndex:-1,onClick:e=>e.stopPropagation(),...d,children:e})})});C.displayName=`Modal`;var w=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`div`,{ref:i,className:`modal-header ${t}`,style:n,...r,children:e}));w.displayName=`ModalHeader`;var T=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`div`,{ref:i,className:`modal-footer ${t}`,style:n,...r,children:e}));T.displayName=`ModalFooter`;var E={halftone:`drawer-halftone`,scanline:`drawer-scanline`,texture:`drawer-textured`},D=(0,c.forwardRef)(({children:e,open:t=!1,onClose:n,side:r=`right`,texture:i,role:a=`dialog`,"aria-labelledby":o,className:s=``,style:u,...d},f)=>{let p=(0,c.useRef)(null),m=(0,c.useRef)(null);if((0,c.useEffect)(()=>{if(t){m.current=document.activeElement,p.current?.focus(),document.body.style.overflow=`hidden`;let e=e=>{e.key===`Escape`&&(e.stopPropagation(),n?.())};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``,m.current?.focus()}}return()=>{document.body.style.overflow=``}},[t,n]),!t)return null;let h=[`drawer`,i?E[i]||E.texture:``,s].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:`drawer-backdrop`,onClick:n,role:`presentation`,style:{position:`fixed`,inset:0,display:`flex`,justifyContent:r===`left`?`flex-start`:`flex-end`,background:`rgba(0,0,0,0.7)`,zIndex:`var(--z-modal)`},children:(0,l.jsx)(`div`,{ref:e=>{p.current=e,typeof f==`function`?f(e):f&&(f.current=e)},className:h,style:u,role:a,"aria-modal":`true`,"aria-labelledby":o,tabIndex:-1,onClick:e=>e.stopPropagation(),...d,children:e})})});D.displayName=`Drawer`;var O={neutral:``,success:`toast-success`,warning:`toast-warning`,danger:`toast-error`,info:`toast-info`},k={halftone:`toast-halftone`,texture:`toast-textured`},A=(0,c.forwardRef)(({children:e,variant:t=`neutral`,onDismiss:n,texture:r,role:i=`status`,className:a=``,style:o,...s},c)=>{let u=[`toast`,O[t],r?k[r]||k.texture:``,a].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{ref:c,className:u,style:o,role:i,...s,children:[(0,l.jsx)(`span`,{className:`toast-icon`,"aria-hidden":`true`}),(0,l.jsx)(`span`,{className:`toast-content`,children:e}),n&&(0,l.jsx)(`button`,{className:`toast-dismiss`,onClick:n,"aria-label":`Dismiss notification`,children:`×`})]})});A.displayName=`Toast`;var ee={top:{bottom:`100%`,left:`50%`,transform:`translateX(-50%)`,marginBottom:8},right:{left:`100%`,top:`50%`,transform:`translateY(-50%)`,marginLeft:8},bottom:{top:`100%`,left:`50%`,transform:`translateX(-50%)`,marginTop:8},left:{right:`100%`,top:`50%`,transform:`translateY(-50%)`,marginRight:8}};function te({children:e,content:t,position:n=`top`,className:r=``,style:i}){let[a,o]=(0,c.useState)(!1),s=(0,c.useRef)(null);return(0,l.jsxs)(`span`,{ref:s,className:`tooltip-trigger ${r}`,style:{position:`relative`,display:`inline-flex`,...i},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onFocus:()=>o(!0),onBlur:()=>o(!1),children:[e,a&&(0,l.jsx)(`span`,{className:`tooltip`,role:`tooltip`,style:{position:`absolute`,zIndex:`var(--z-overlay)`,whiteSpace:`nowrap`,...ee[n]},children:t})]})}var j={neutral:``,success:`alert-success`,warning:`alert-warning`,danger:`alert-danger`,info:`alert-info`},M=(0,c.forwardRef)(({children:e,variant:t=`neutral`,onClose:n,role:r=`alert`,className:i=``,style:a,...o},s)=>{let c=[`alert`,j[t],i].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{ref:s,className:c,style:a,role:r,...o,children:[(0,l.jsx)(`span`,{className:`alert-content`,children:e}),n&&(0,l.jsx)(`button`,{className:`alert-close`,onClick:n,"aria-label":`Dismiss alert`,children:`×`})]})});M.displayName=`Alert`;var N=(0,c.createContext)(null);function P(){let e=(0,c.useContext)(N);if(!e)throw Error(`Tab components must be used within Tabs`);return e}function ne({children:e,defaultIndex:t=0,index:n,onChange:r,className:i=``,style:a}){let[o,s]=(0,c.useState)(t),u=n===void 0?o:n,d=(0,c.useId)();return(0,l.jsx)(N.Provider,{value:{selectedIndex:u,setSelectedIndex:e=>{n===void 0&&s(e),r?.(e)},baseId:d},children:(0,l.jsx)(`div`,{className:`tabs ${i}`,style:a,children:e})})}function re({children:e,className:t=``,style:n}){return(0,l.jsx)(`div`,{className:`tab-list ${t}`,role:`tablist`,style:n,children:e})}function ie({children:e,index:t,className:n=``,style:r}){let{selectedIndex:i,setSelectedIndex:a,baseId:o}=P(),s=t??0,c=i===s;return(0,l.jsx)(`button`,{role:`tab`,"aria-selected":c,"aria-controls":`${o}-panel-${s}`,id:`${o}-tab-${s}`,"data-tab-index":s,className:`tab ${c?`active`:``} ${n}`,style:r,tabIndex:c?0:-1,onClick:()=>a(s),onKeyDown:e=>{let t=Array.from(e.currentTarget.closest(`[role="tablist"]`)?.querySelectorAll(`[role="tab"]`)??[]),n=t.indexOf(e.currentTarget);if(n===-1)return;let r=e=>{let n=t[(e+t.length)%t.length];n.focus(),a(Number(n.dataset.tabIndex??e))};switch(e.key){case`ArrowRight`:case`ArrowDown`:e.preventDefault(),r(n+1);break;case`ArrowLeft`:case`ArrowUp`:e.preventDefault(),r(n-1);break;case`Home`:e.preventDefault(),r(0);break;case`End`:e.preventDefault(),r(t.length-1)}},children:e})}function F({children:e,index:t,className:n=``,style:r}){let{selectedIndex:i,baseId:a}=P(),o=t??0;return i===o?(0,l.jsx)(`div`,{role:`tabpanel`,id:`${a}-panel-${o}`,"aria-labelledby":`${a}-tab-${o}`,className:`tab-panel ${n}`,style:r,tabIndex:0,children:e}):null}var I=(0,c.forwardRef)(({children:e,orientation:t=`horizontal`,className:n=``,style:r,...i},a)=>{let o=[`nav`,t===`vertical`?`nav-vertical`:`nav-horizontal`,n].filter(Boolean).join(` `);return(0,l.jsx)(`nav`,{ref:a,className:o,style:r,...i,children:e})});I.displayName=`Nav`;var L=(0,c.forwardRef)(({children:e,active:t=!1,href:n=`#`,className:r=``,style:i,...a},o)=>{let s=[`nav-item`,t?`active`:``,r].filter(Boolean).join(` `);return(0,l.jsx)(`a`,{ref:o,href:n,className:s,style:i,...a,children:e})});L.displayName=`NavItem`;var R=(0,c.forwardRef)(({label:e,indeterminate:t=!1,className:n=``,style:r,checked:i,...a},o)=>{let s=[`checkbox`,i?`checked`:``,n].filter(Boolean).join(` `);return(0,l.jsxs)(`label`,{className:s,style:r,children:[(0,l.jsx)(`input`,{ref:e=>{e&&(e.indeterminate=t),typeof o==`function`&&o(e)},type:`checkbox`,className:`sr-only`,checked:i,...a}),(0,l.jsx)(`span`,{className:`checkbox-box`,"aria-hidden":`true`}),e&&(0,l.jsx)(`span`,{className:`checkbox-text`,children:e})]})});R.displayName=`Checkbox`;var z=(0,c.forwardRef)(({label:e,className:t=``,style:n,checked:r,...i},a)=>{let o=[`radio`,r?`selected`:``,t].filter(Boolean).join(` `);return(0,l.jsxs)(`label`,{className:o,style:n,children:[(0,l.jsx)(`input`,{ref:a,type:`radio`,className:`sr-only`,checked:r,...i}),(0,l.jsx)(`span`,{className:`radio-circle`,"aria-hidden":`true`}),e&&(0,l.jsx)(`span`,{className:`radio-text`,children:e})]})});z.displayName=`Radio`;var B=(0,c.forwardRef)(({label:e,checked:t,onChange:n,className:r=``,style:i,...a},o)=>{let s=[`toggle`,t?`on`:``,r].filter(Boolean).join(` `);return(0,l.jsxs)(`label`,{className:s,style:i,children:[(0,l.jsx)(`input`,{ref:o,type:`checkbox`,role:`switch`,className:`sr-only`,checked:t,onChange:e=>n?.(e.target.checked),...a}),(0,l.jsx)(`span`,{className:`toggle-track`,"aria-hidden":`true`,children:(0,l.jsx)(`span`,{className:`toggle-thumb`})}),e&&(0,l.jsx)(`span`,{className:`toggle-text`,children:e})]})});B.displayName=`Toggle`;var V=(0,c.forwardRef)(({children:e,className:t=``,style:n,...r},i)=>(0,l.jsx)(`select`,{ref:i,className:`select-native ${t}`,style:n,...r,children:e}));V.displayName=`Select`;var H=(0,c.forwardRef)(({className:e=``,style:t,...n},r)=>(0,l.jsx)(`textarea`,{ref:r,className:`textarea ${e}`,style:t,...n}));H.displayName=`Textarea`;var U={halftone:`texture-halftone`,scanline:`texture-scanline`,noise:`texture-noise`,crosshatch:`texture-crosshatch`,dots:`texture-dots`,"grid-dots":`texture-grid-dots`,texture:`texture-overlay`};function W({children:e,texture:t=`halftone`,opacity:n,animated:r=!1,className:i=``,style:a}){let o=[U[t===!1||t===null?`texture`:t]||U.texture,r?`texture-animated`:``,i].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:o,style:{...a,...n===void 0?{}:{"--texture-opacity":n}},children:e})}var G={grid:{static:`iso-grid`,animated:`iso-grid-animated`},"grid-dense":{static:`iso-grid-dense`,animated:`iso-grid-dense-animated`},cubes:{static:`iso-cubes`,animated:`iso-cubes-animated`},terrain:{static:`iso-terrain`,animated:`iso-terrain-animated`},pipes:{static:`iso-pipes`,animated:`iso-pipes-animated`},hex:{static:`iso-hex`,animated:`iso-hex-animated`},city:{static:`iso-city`,animated:`iso-city-animated`},wave:{static:`iso-wave`,animated:`iso-wave-animated`}};function K({children:e,pattern:t=`grid`,animated:n=!1,className:r=``,style:i}){let a=G[t]||G.grid,o=[a.static,n?a.animated:``,r].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:o,style:i,children:e})}function q({size:e=`md`,className:t=``,style:n}){let r=[`spinner`,e===`sm`?`spinner-sm`:e===`lg`?`spinner-lg`:``,t].filter(Boolean).join(` `);return(0,l.jsx)(`span`,{role:`status`,"aria-label":`Loading`,className:r,style:n})}function J({width:e,height:t=16,className:n=``,style:r}){let i=[`skeleton`,n].filter(Boolean).join(` `);return(0,l.jsx)(`span`,{"aria-hidden":`true`,className:i,style:{width:e,height:t,...r}})}function Y({src:e,alt:t=``,initials:n,size:r=`md`,circle:i=!1,className:a=``,style:o}){let s=[`avatar`,r===`sm`?`avatar-sm`:r===`lg`?`avatar-lg`:``,i?`avatar-circle`:``,a].filter(Boolean).join(` `);return(0,l.jsx)(`span`,{className:s,style:o,children:e?(0,l.jsx)(`img`,{src:e,alt:t}):n??t.slice(0,2)})}function ae({value:e,max:t=100,variant:n,className:r=``,style:i}){let a=Math.min(100,Math.max(0,e/t*100)),o=[`progress`,n?`progress-${n}`:``,r].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{role:`progressbar`,"aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":t,className:o,style:i,children:(0,l.jsx)(`div`,{className:`progress-bar`,style:{width:`${a}%`}})})}var oe=[`7kgroup`,`7kminato`,`inari`],se=`7k-project`;function ce(e){return typeof e==`string`&&oe.includes(e)}var X=(0,c.createContext)({project:`7kgroup`,setProject:()=>{}});function le({children:e,defaultProject:t=`7kgroup`,storageKey:n=se}){let[r,i]=(0,c.useState)(()=>{if(typeof window>`u`)return t;let e=localStorage.getItem(n);return ce(e)?e:t});(0,c.useEffect)(()=>{document.documentElement.setAttribute(`data-project`,r),localStorage.setItem(n,r)},[r,n]);let a=(0,c.useCallback)(e=>{i(e)},[]);return(0,l.jsx)(X.Provider,{value:{project:r,setProject:a},children:e})}function Z(){return(0,c.useContext)(X)}var Q=[{id:`stroke-1`,d:`M0 0 C5.31124964 0.603148 10.48703511 1.43913427 15.70556641 2.60717773 C16.43345084 2.76700921 17.16133528 2.92684069 17.91127682 3.09151554 C20.30879661 3.61883334 22.7051582 4.15123171 25.1015625 4.68359375 C26.80517693 5.05913826 28.50886821 5.43433426 30.21263123 5.8092041 C34.7498531 6.80842764 39.28611201 7.81195236 43.82210159 8.81675339 C51.28033334 10.46849791 58.73958849 12.11562021 66.19889259 13.76251411 C68.04881424 14.17100274 69.89869699 14.57966759 71.74854088 14.98850822 C83.02899365 17.48103879 94.31557491 19.93611433 105.62109375 22.3125 C107.79802212 22.77283097 109.97494311 23.23319683 112.15185547 23.69360352 C116.00363238 24.50743675 119.85834657 25.30477983 123.71533203 26.09350586 C125.3845784 26.44579716 127.05369683 26.79869553 128.72265625 27.15234375 C129.83367958 27.37150452 129.83367958 27.37150452 130.96714783 27.59509277 C132.96508789 28.02709961 132.96508789 28.02709961 136 29 C136.33 29.99 136.66 30.98 137 32 C129.29851279 34.38264441 121.53802394 36.48456869 113.73828125 38.51953125 C112.44506913 38.85815768 111.15188757 39.19690088 109.85873413 39.53575134 C106.39552234 40.44257301 102.93164295 41.3468178 99.467556 42.25028992 C97.30259146 42.81508493 95.13780023 43.38053979 92.97305298 43.94616699 C65.30194833 51.17500901 37.60064857 58.2829979 9.86859131 65.2746582 C6.95503557 66.01136955 4.04311103 66.75428619 1.13134766 67.49804688 C-0.69756438 67.96234502 -2.52650191 68.42654277 -4.35546875 68.890625 C-5.18959793 69.1051532 -6.02372711 69.3196814 -6.88313293 69.54071045 C-9.99400234 70.32656685 -12.77765467 71 -16 71 C-12.92929924 54.77377074 -9.40553704 38.66561099 -5.75 22.5625 C-5.52395081 21.56295288 -5.29790161 20.56340576 -5.06500244 19.53356934 C-4.41628654 16.66878444 -3.7636237 13.80493209 -3.109375 10.94140625 C-2.91163483 10.06849442 -2.71389465 9.19558258 -2.51016235 8.29621887 C-1.115605 2.23121 -1.115605 2.23121 0 0 Z `,transform:`translate(26,51)`},{id:`stroke-2`,d:`M0 0 C-1.67248293 10.01430524 -4.81990605 19.54309491 -7.84765625 29.2109375 C-8.4257994 31.07021702 -9.00346387 32.92964545 -9.58067322 34.78921509 C-11.09330629 39.65840935 -12.61175033 44.52577089 -14.13165283 49.3927002 C-16.27778373 56.26859344 -18.41607032 63.14693086 -20.55503845 70.02505493 C-21.69252479 73.68276675 -22.8322997 77.33975309 -23.97389221 80.9961853 C-24.49310597 82.66200356 -25.01230729 84.3278257 -25.53149414 85.99365234 C-25.76787598 86.74902283 -26.00425781 87.50439331 -26.24780273 88.28265381 C-27.25246686 91.50973417 -28.17985248 94.71940994 -29 98 C-49.13 98 -69.26 98 -90 98 C-89.08735353 94.34941413 -88.08326569 92.14101086 -86.21875 88.94140625 C-85.33932739 87.4243811 -85.33932739 87.4243811 -84.44213867 85.87670898 C-83.48078003 84.23617554 -83.48078003 84.23617554 -82.5 82.5625 C-81.83653564 81.42176025 -81.17307129 80.28102051 -80.48950195 79.10571289 C-78.70177289 76.03315466 -76.90744295 72.96450671 -75.11090088 69.89709473 C-74.00188698 68.00322241 -72.89407958 66.10864941 -71.78662109 64.21386719 C-64.64885447 52.00358705 -57.4869888 39.80737281 -50.30541992 27.62280273 C-49.79458862 26.75570679 -49.79458862 26.75570679 -49.2734375 25.87109375 C-48.90790771 25.28473145 -48.54237793 24.69836914 -48.16577148 24.09423828 C-46.89109403 21.91410493 -46.89109403 21.91410493 -45.85180664 19.07373047 C-43.51839101 13.84292684 -41.33140906 10.25401282 -35.90917969 8.10131836 C-30.9167507 6.46669422 -25.81795263 5.35419438 -20.6875 4.25 C-18.90454999 3.82731719 -17.122629 3.40026875 -15.34179688 2.96875 C-2.90837515 0 -2.90837515 0 0 0 Z `,transform:`translate(158,96)`},{id:`blob-1`,d:`M0 0 C-1.43234259 3.83404835 -3.20394594 7.29062018 -5.23828125 10.83984375 C-6.211604 12.5417688 -6.211604 12.5417688 -7.20458984 14.27807617 C-7.90704252 15.49799011 -8.60968357 16.7177956 -9.3125 17.9375 C-10.03607495 19.19826337 -10.75954386 20.45908761 -11.48291016 21.7199707 C-17.41002821 32.0360915 -23.44411364 42.28753807 -29.52587891 52.51318359 C-30.98773375 54.97930706 -32.43927165 57.45117766 -33.88671875 59.92578125 C-34.33998535 60.70026611 -34.79325195 61.47475098 -35.26025391 62.27270508 C-36.09331585 63.69753149 -36.92514175 65.12308176 -37.75537109 66.54956055 C-40.04520076 70.46097972 -42.44977773 74.25273462 -45 78 C-50.07599137 74.46218783 -53.33453539 69.89206823 -57 65 C-58.53804041 62.97640538 -60.07999024 60.95577855 -61.625 58.9375 C-62.04023926 58.39496582 -62.45547852 57.85243164 -62.88330078 57.29345703 C-66.36160697 52.7738662 -69.95070177 48.35075295 -73.5625 43.9375 C-77.55147174 39.0540138 -81.50205965 34.14957782 -85.3125 29.125 C-86.03050781 28.17882812 -86.74851562 27.23265625 -87.48828125 26.2578125 C-89 24 -89 24 -89 22 C-85.42579333 21.07287008 -81.8515694 20.14580673 -78.27734375 19.21875 C-77.16125229 18.92924469 -76.04516083 18.63973938 -74.89524841 18.34146118 C-68.75872985 16.74984654 -62.62199379 15.1590777 -56.48486328 13.56982422 C-41.73019206 9.75106531 -41.73019206 9.75106531 -26.98371887 5.90081787 C-24.09145469 5.1418846 -21.19838391 4.38605777 -18.3052063 3.63061523 C-16.41473273 3.13540794 -14.52558699 2.63514046 -12.63647461 2.13476562 C-10.97177124 1.70067383 -10.97177124 1.70067383 -9.2734375 1.2578125 C-8.33935059 1.0117627 -7.40526367 0.76571289 -6.44287109 0.51220703 C-4 0 -4 0 0 0 Z `,transform:`translate(102,111)`},{id:`blob-2`,d:`M0 0 C6.0218352 1.73771685 11.46488166 4.56608463 17.05859375 7.33984375 C18.12110855 7.86260391 19.18362335 8.38536407 20.27833557 8.92396545 C23.66650824 10.59155047 27.05214804 12.26419708 30.4375 13.9375 C33.81962136 15.60652692 37.20228435 17.2744345 40.58595276 18.94032288 C42.68828272 19.9756357 44.7896776 21.01285013 46.88999939 22.05223083 C51.87620309 24.51034073 56.86222845 26.87564724 62 29 C61.43189471 34.79859195 60.26320265 39.97686594 58.4375 45.5 C58.08655273 46.59054688 58.08655273 46.59054688 57.72851562 47.703125 C57.15867219 49.47080261 56.58024596 51.23570969 56 53 C46.3204691 51.52601868 36.80148214 49.49993648 27.25 47.375 C25.76308304 47.0465932 24.27610421 46.71846643 22.7890625 46.390625 C19.19199117 45.59696823 15.59576525 44.79955605 12 44 C10.44527314 38.86073216 8.89724042 33.71951208 7.35522461 28.57641602 C6.83034259 26.82912627 6.30367432 25.08237204 5.77514648 23.33618164 C5.01329429 20.81797651 4.2580068 18.2978795 3.50390625 15.77734375 C3.26845596 15.00414291 3.03300568 14.23094208 2.79042053 13.43431091 C1.45836043 8.95540698 0.54040163 4.64315228 0 0 Z `,transform:`translate(111,17)`},{id:`blob-3`,d:`M0 0 C1.71425579 5.6400991 3.42311068 11.28179516 5.12695312 16.92504883 C5.70749658 18.84509566 6.28952054 20.76469549 6.87304688 22.68383789 C7.71091932 25.44040974 8.54347661 28.19853855 9.375 30.95703125 C9.63748535 31.81649857 9.8999707 32.67596588 10.17041016 33.56147766 C10.53078369 34.76238289 10.53078369 34.76238289 10.8984375 35.98754883 C11.21820557 37.04344963 11.21820557 37.04344963 11.54443359 38.12068176 C12 40 12 40 12 43 C4.19873204 42.31050991 -3.31933205 40.78209336 -10.96875 39.12890625 C-12.29867465 38.84351716 -13.62863128 38.55827702 -14.95861816 38.2731781 C-17.72603652 37.67869802 -20.49264423 37.08060107 -23.25878906 36.48022461 C-26.80899611 35.71025821 -30.36166632 34.9523694 -33.91509247 34.19741917 C-36.65289273 33.6138849 -39.38898738 33.02265354 -42.12464905 32.42918205 C-44.07186153 32.0086336 -46.02072887 31.59577132 -47.96960449 31.18299866 C-49.14172485 30.92610764 -50.31384521 30.66921661 -51.52148438 30.40454102 C-52.55801147 30.18105484 -53.59453857 29.95756866 -54.66247559 29.72731018 C-55.43385864 29.48729782 -56.2052417 29.24728546 -57 29 C-57.33 28.34 -57.66 27.68 -58 27 C-57.08057617 26.56300781 -57.08057617 26.56300781 -56.14257812 26.1171875 C-41.32711212 19.0810423 -41.32711212 19.0810423 -26.625 11.8125 C-20.99064284 8.97258449 -15.32501509 6.20591616 -9.625 3.5 C-8.8923291 3.1491333 -8.1596582 2.7982666 -7.40478516 2.43676758 C-2.2362567 0 -2.2362567 0 0 0 Z `,transform:`translate(98,14)`},{id:`blob-4`,d:`M0 0 C2.24002181 2.24002181 2.45082686 3.1646128 3.11328125 6.18334961 C3.30688232 7.04862778 3.5004834 7.91390594 3.69995117 8.80540466 C3.90209229 9.74489456 4.1042334 10.68438446 4.3125 11.65234375 C4.52688721 12.62224747 4.74127441 13.59215118 4.9621582 14.59144592 C5.41604476 16.65110903 5.86638389 18.71155655 6.31347656 20.77270508 C6.99078773 23.89503247 7.67792925 27.01505623 8.3671875 30.13476562 C8.80787659 32.14049657 9.24799807 34.14635233 9.6875 36.15234375 C9.88964111 37.07361557 10.09178223 37.99488739 10.30004883 38.94407654 C11.67118136 45.27311846 12.87807116 51.6222017 14 58 C2.81113703 61.65634825 -8.53429664 64.3657014 -20 67 C-19.3294196 59.88425139 -17.09664011 53.25199721 -15 46.4453125 C-14.59989789 45.13502886 -14.20016419 43.82463267 -13.80078125 42.51412964 C-12.96679201 39.78152421 -12.12928768 37.05003021 -11.2890625 34.31933594 C-10.2105854 30.81377395 -9.13961319 27.30597387 -8.07104492 23.79738045 C-7.24825293 21.09783944 -6.42226487 18.39928521 -5.59521484 15.70104599 C-5.19886693 14.40706524 -4.80335699 13.11282752 -4.40869141 11.81833267 C-3.8589483 10.01740832 -3.30459218 8.21789404 -2.75 6.41845703 C-2.43546875 5.39366241 -2.1209375 4.3688678 -1.796875 3.3130188 C-1 1 -1 1 0 0 Z `,transform:`translate(179,68)`},{id:`blob-5`,d:`M0 0 C0 4.13451443 -2.1839165 6.12255584 -4.6875 9.1875 C-5.17790771 9.79972412 -5.66831543 10.41194824 -6.17358398 11.04272461 C-7.77390181 13.03551151 -9.38541085 15.01876258 -11 17 C-11.53979492 17.66354492 -12.07958984 18.32708984 -12.63574219 19.01074219 C-14.82765052 21.7045544 -17.02015927 24.39786833 -19.21582031 27.08862305 C-26.00991117 35.43318627 -32.61724571 43.92838421 -38.84375 52.70703125 C-39.41609375 53.34705078 -39.41609375 53.34705078 -40 54 C-40.66 54 -41.32 54 -42 54 C-41.36203146 48.57570043 -40.13437376 43.55378766 -38.56640625 38.328125 C-38.32840805 37.52389099 -38.09040985 36.71965698 -37.84519958 35.89105225 C-37.34414963 34.20284521 -36.84061571 32.51537359 -36.3347168 30.82861328 C-35.56130014 28.2459934 -34.79872799 25.66033926 -34.03710938 23.07421875 C-33.54752064 21.42949517 -33.05730802 19.78495715 -32.56640625 18.140625 C-32.3392543 17.3687384 -32.11210236 16.59685181 -31.87806702 15.80157471 C-30.87795999 12.49041113 -29.9327526 9.8991289 -28 7 C-25.20263672 6.0168457 -25.20263672 6.0168457 -21.6796875 5.17578125 C-19.79443359 4.71655273 -19.79443359 4.71655273 -17.87109375 4.24804688 C-16.53912224 3.93594285 -15.20709016 3.6240972 -13.875 3.3125 C-12.53489546 2.99001409 -11.19504774 2.66645895 -9.85546875 2.34179688 C-6.57269188 1.55062403 -3.28767054 0.7705379 0 0 Z `,transform:`translate(183,140)`}],ue={"7kgroup":null,"7kminato":`blob-3`,inari:`blob-2`},de={"7kgroup":`var(--accent-7kgroup)`,"7kminato":`var(--accent-7kminato)`,inari:`var(--accent-inari)`};function fe({size:e=32,className:t=``,style:n}){let{project:r}=Z(),i=ue[r];return(0,l.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 208 207`,width:e,height:e,className:t,style:n,role:`img`,"aria-label":`${r} icon`,"data-project":r,children:Q.map(e=>(0,l.jsx)(`path`,{d:e.d,transform:e.transform,fill:e.id===i?de[r]:e.id.startsWith(`stroke`)?`var(--accent-7kgroup)`:`var(--icon-blob)`},e.id))})}function pe({options:e,value:t,onChange:n,placeholder:r=`Select…`,disabled:i=!1,className:a=``,style:o}){let s=(0,c.useId)(),[u,d]=(0,c.useState)(!1),[f,p]=(0,c.useState)(-1),m=(0,c.useRef)(null),h=e.find(e=>e.value===t);(0,c.useEffect)(()=>{if(!u)return;let e=e=>{m.current?.contains(e.target)||d(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[u]);let g=t=>{let r=e[t];!r||r.disabled||(n?.(r.value),d(!1))},_=t=>{p(n=>{let r=n;for(let n=0;n<e.length&&(r=(r+t+e.length)%e.length,e[r].disabled);n++);return r})};return(0,l.jsxs)(`div`,{ref:m,className:`listbox ${a}`,style:o,onKeyDown:n=>{if(!i){if(!u&&[`Enter`,` `,`ArrowDown`,`ArrowUp`].includes(n.key)){n.preventDefault(),p(Math.max(0,e.findIndex(e=>e.value===t))),d(!0);return}if(u)switch(n.key){case`ArrowDown`:n.preventDefault(),_(1);break;case`ArrowUp`:n.preventDefault(),_(-1);break;case`Enter`:case` `:n.preventDefault(),g(f);break;case`Escape`:n.preventDefault(),d(!1)}}},children:[(0,l.jsxs)(`button`,{type:`button`,id:s,className:`listbox-trigger`,"aria-haspopup":`listbox`,"aria-expanded":u,disabled:i,onClick:()=>{p(Math.max(0,e.findIndex(e=>e.value===t))),d(e=>!e)},children:[(0,l.jsx)(`span`,{className:h?``:`listbox-placeholder`,children:h?.label??r}),(0,l.jsx)(`span`,{"aria-hidden":`true`,className:`listbox-chevron${u?` open`:``}`,children:`▾`})]}),u&&(0,l.jsx)(`ul`,{role:`listbox`,"aria-labelledby":s,className:`listbox-options`,children:e.map((e,n)=>(0,l.jsx)(`li`,{role:`option`,"aria-selected":e.value===t,"aria-disabled":e.disabled||void 0,className:[`listbox-option`,e.value===t?`selected`:``,n===f?`highlight`:``].filter(Boolean).join(` `),onMouseEnter:()=>p(n),onClick:()=>g(n),children:e.label},e.value))})]})}function me({value:e,label:t,trend:n,accent:r=!1,status:i,className:a=``,style:o}){let s=[`stat`,r?`stat-accent`:``,i?`stat-${i}`:``,a].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:s,style:o,children:[(0,l.jsx)(`span`,{className:`stat-value`,children:e}),(0,l.jsx)(`span`,{className:`stat-label`,children:t}),n!=null&&(0,l.jsx)(`span`,{className:`stat-trend`,children:n})]})}function he({title:e,body:t,action:n,icon:r,className:i=``,style:a}){let o=[`empty`,i].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:o,style:a,children:[r==null?null:(0,l.jsx)(`span`,{className:`empty-icon`,children:r}),(0,l.jsx)(`h3`,{className:`empty-title`,children:e}),t!=null&&(0,l.jsx)(`span`,{className:`empty-text`,children:t}),n!=null&&(0,l.jsx)(`span`,{className:`empty-action`,children:n})]})}function ge({columns:e,rows:t,rowKey:n,loading:r=!1,skeletonRows:i=6,empty:a,onSort:o,sortKey:s,sortDirection:c,pagination:u,className:d=``,style:f}){let p=(e,t)=>typeof n==`function`?n(e,t):String(e[n]);if((typeof process>`u`||process.env.NODE_ENV!==`production`)&&!r){let e=new Set;t.forEach((t,n)=>{let r=p(t,n);(r===`undefined`||e.has(r))&&console.warn(`DataTable: duplicate or missing rowKey "${r}" at row ${n}`),e.add(r)})}let m=[`datatable`,d].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:m,style:f,children:[(0,l.jsxs)(`table`,{className:`table`,children:[(0,l.jsx)(`thead`,{children:(0,l.jsx)(`tr`,{children:e.map(e=>(0,l.jsx)(`th`,{style:e.width==null?void 0:{width:e.width},"aria-sort":e.sortable&&o&&s===e.key?c===`desc`?`descending`:`ascending`:void 0,children:e.sortable&&o?(0,l.jsxs)(`button`,{type:`button`,className:`table-sort`,onClick:()=>o(e.key),children:[e.label,s===e.key?c===`desc`?` ↓`:` ↑`:``]}):e.label},e.key))})}),(0,l.jsxs)(`tbody`,{children:[r?Array.from({length:i},(t,n)=>(0,l.jsx)(`tr`,{children:e.map(e=>(0,l.jsx)(`td`,{children:(0,l.jsx)(J,{height:12})},e.key))},`skeleton-${n}`)):t.map((t,n)=>(0,l.jsx)(`tr`,{children:e.map(e=>(0,l.jsx)(`td`,{className:e.mono?`mono`:void 0,"data-label":e.mobileLabel??(typeof e.label==`string`?e.label:void 0),children:e.render?e.render(t,n):String(t[e.key]??``)},e.key))},p(t,n))),!r&&t.length===0&&a!=null&&(0,l.jsx)(`tr`,{children:(0,l.jsx)(`td`,{colSpan:e.length,children:a})})]})]}),u!=null&&(0,l.jsx)(`div`,{className:`datatable-pagination`,children:u})]})}function _e({variant:e=`solid`,className:t=``,style:n,children:r}){let i=[`tag`,e===`solid`?``:`tag-${e}`,t].filter(Boolean).join(` `);return(0,l.jsx)(`span`,{className:i,style:n,children:r})}function ve({tone:e,count:t,onDismiss:n,className:r=``,style:i,children:a,...o}){let s=[`banner`,e?{success:`banner-success`,warning:`banner-warning`,danger:`banner-error`,error:`banner-error`}[e]:``,r].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:s,style:i,...o,children:[t!==void 0&&(0,l.jsx)(`span`,{className:`banner-count`,children:t}),a,n&&(0,l.jsx)(`button`,{className:`banner-dismiss`,onClick:n,"aria-label":`Dismiss banner`,children:`×`})]})}var $=(0,c.forwardRef)(({className:e=``,style:t,...n},r)=>(0,l.jsx)(`input`,{ref:r,type:`range`,className:`range ${e}`.trim(),style:t,...n}));$.displayName=`Range`;function ye({color:e,selected:t,onClick:n,className:r=``,style:i,...a}){let o=[`color-swatch`,t?`selected`:``,r].filter(Boolean).join(` `);return(0,l.jsx)(`button`,{type:`button`,className:o,style:{background:e,...i},onClick:n,"aria-pressed":t,...a})}function be({label:e,error:t,className:n=``,style:r,children:i}){let a=[`form-group`,n].filter(Boolean).join(` `);return(0,l.jsxs)(`div`,{className:a,style:r,children:[e&&(0,l.jsx)(`span`,{className:`form-label`,children:e}),i,t&&(0,l.jsx)(`span`,{className:`field-error`,children:t})]})}function xe({addon:e,addonPosition:t=`prefix`,className:n=``,style:r,children:i}){let a=[`input-group`,n].filter(Boolean).join(` `),o=e?(0,l.jsx)(`span`,{className:`input-addon`,children:e}):null;return(0,l.jsxs)(`div`,{className:a,style:r,children:[t===`prefix`&&o,i,t===`suffix`&&o]})}function Se({className:e=``,style:t,children:n}){let r=[`btn-group`,e].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:r,style:t,role:`group`,children:n})}function Ce({className:e=``,style:t,children:n}){let r=[`btn-split`,e].filter(Boolean).join(` `);return(0,l.jsx)(`div`,{className:r,style:t,role:`group`,children:n})}var we=`7k-theme`;function Te({children:e,defaultTheme:t=`dark`,storageKey:n=we}){let[r,i]=(0,c.useState)(()=>{if(typeof window>`u`)return t;let e=localStorage.getItem(n);return e===`light`||e===`dark`?e:t});(0,c.useLayoutEffect)(()=>{document.documentElement.setAttribute(`data-theme`,r),localStorage.setItem(n,r)},[r,n]);let a={theme:r,toggleTheme:(0,c.useCallback)(()=>{i(e=>e===`dark`?`light`:`dark`)},[]),setTheme:(0,c.useCallback)(e=>{i(e)},[])};return(0,l.jsx)(h.Provider,{value:a,children:e})}exports.Alert=M,exports.Avatar=Y,exports.Badge=f,exports.Banner=ve,exports.Button=u,exports.ButtonGroup=Se,exports.ButtonSplit=Ce,exports.Card=y,exports.CardBody=x,exports.CardHeader=b,exports.Checkbox=R,exports.ColorSwatch=ye,exports.DataTable=ge,exports.Drawer=D,exports.EmptyState=he,exports.FormGroup=be,exports.Icon=m,exports.Input=d,exports.InputGroup=xe,exports.IsometricBackground=K,exports.Listbox=pe,exports.Modal=C,exports.ModalFooter=T,exports.ModalHeader=w,exports.Nav=I,exports.NavItem=L,exports.Progress=ae,exports.ProjectContext=X,exports.ProjectIcon=fe,exports.ProjectProvider=le,exports.Radio=z,exports.Range=$,exports.Select=V,exports.Skeleton=J,exports.Spinner=q,exports.Stat=me,exports.Tab=ie,exports.TabList=re,exports.TabPanel=F,exports.Tabs=ne,exports.Tag=_e,exports.Textarea=H,exports.TextureOverlay=W,exports.ThemeContext=h,exports.ThemeProvider=Te,exports.ThemeToggle=_,exports.Toast=A,exports.Toggle=B,exports.Tooltip=te,exports.useProject=Z,exports.useTheme=g;
|
package/dist/react/index.d.ts
CHANGED
|
@@ -27,6 +27,12 @@ export * from './components/Listbox';
|
|
|
27
27
|
export * from './components/Stat';
|
|
28
28
|
export * from './components/EmptyState';
|
|
29
29
|
export * from './components/DataTable';
|
|
30
|
+
export * from './components/Tag';
|
|
31
|
+
export * from './components/Banner';
|
|
32
|
+
export * from './components/Range';
|
|
33
|
+
export * from './components/ColorSwatch';
|
|
34
|
+
export * from './components/Form';
|
|
35
|
+
export * from './components/ButtonGroup';
|
|
30
36
|
export * from './theme/useTheme';
|
|
31
37
|
export * from './theme/useProject';
|
|
32
38
|
export * from './theme/ThemeContext';
|
package/dist/react/index.js
CHANGED
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
import { createContext as e, forwardRef as t, useCallback as n, useContext as r, useEffect as i, useId as a, useLayoutEffect as o, useRef as s, useState as c } from "react";
|
|
2
2
|
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
3
3
|
//#region src/react/components/Button.tsx
|
|
4
|
-
var d = t(({ children: e, variant: t = "primary", size: n = "md", disabled: r = !1, loading: i = !1, onClick: a, type: o = "button",
|
|
5
|
-
let
|
|
4
|
+
var d = t(({ children: e, variant: t = "primary", size: n = "md", disabled: r = !1, loading: i = !1, onClick: a, type: o = "button", texture: s, className: c = "", style: u, "aria-label": d, "aria-describedby": f, ...p }, m) => {
|
|
5
|
+
let h = {
|
|
6
|
+
sm: "btn-sm",
|
|
7
|
+
lg: "btn-lg",
|
|
8
|
+
icon: "btn-icon",
|
|
9
|
+
"icon-lg": "btn-lg-icon"
|
|
10
|
+
}, g = `btn-${t}`, _ = s ? `btn-${s}` : "", v = [
|
|
6
11
|
"btn",
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
g,
|
|
13
|
+
h[n] ?? "",
|
|
14
|
+
_,
|
|
9
15
|
i ? "btn-loading" : "",
|
|
10
|
-
|
|
16
|
+
c
|
|
11
17
|
].filter(Boolean).join(" ");
|
|
12
18
|
return /* @__PURE__ */ l("button", {
|
|
13
|
-
ref:
|
|
19
|
+
ref: m,
|
|
14
20
|
type: o,
|
|
15
|
-
className:
|
|
16
|
-
style:
|
|
21
|
+
className: v,
|
|
22
|
+
style: u,
|
|
17
23
|
disabled: r || i,
|
|
18
24
|
onClick: a,
|
|
19
|
-
"aria-label":
|
|
20
|
-
"aria-describedby":
|
|
25
|
+
"aria-label": d,
|
|
26
|
+
"aria-describedby": f,
|
|
21
27
|
"aria-busy": i || void 0,
|
|
22
|
-
...
|
|
28
|
+
...p,
|
|
23
29
|
children: e
|
|
24
30
|
});
|
|
25
31
|
});
|
|
@@ -463,20 +469,20 @@ var D = {
|
|
|
463
469
|
O.displayName = "Drawer";
|
|
464
470
|
//#endregion
|
|
465
471
|
//#region src/react/components/Toast.tsx
|
|
466
|
-
var
|
|
467
|
-
|
|
472
|
+
var k = {
|
|
473
|
+
neutral: "",
|
|
468
474
|
success: "toast-success",
|
|
469
|
-
error: "toast-error",
|
|
470
475
|
warning: "toast-warning",
|
|
476
|
+
danger: "toast-error",
|
|
471
477
|
info: "toast-info"
|
|
472
|
-
},
|
|
478
|
+
}, A = {
|
|
473
479
|
halftone: "toast-halftone",
|
|
474
480
|
texture: "toast-textured"
|
|
475
|
-
},
|
|
481
|
+
}, j = t(({ children: e, variant: t = "neutral", onDismiss: n, texture: r, role: i = "status", className: a = "", style: o, ...s }, c) => {
|
|
476
482
|
let d = [
|
|
477
483
|
"toast",
|
|
478
|
-
|
|
479
|
-
r ?
|
|
484
|
+
k[t],
|
|
485
|
+
r ? A[r] || A.texture : "",
|
|
480
486
|
a
|
|
481
487
|
].filter(Boolean).join(" ");
|
|
482
488
|
return /* @__PURE__ */ u("div", {
|
|
@@ -503,10 +509,10 @@ var ee = {
|
|
|
503
509
|
]
|
|
504
510
|
});
|
|
505
511
|
});
|
|
506
|
-
|
|
512
|
+
j.displayName = "Toast";
|
|
507
513
|
//#endregion
|
|
508
514
|
//#region src/react/components/Tooltip.tsx
|
|
509
|
-
var
|
|
515
|
+
var ee = {
|
|
510
516
|
top: {
|
|
511
517
|
bottom: "100%",
|
|
512
518
|
left: "50%",
|
|
@@ -532,7 +538,7 @@ var te = {
|
|
|
532
538
|
marginRight: 8
|
|
533
539
|
}
|
|
534
540
|
};
|
|
535
|
-
function
|
|
541
|
+
function te({ children: e, content: t, position: n = "top", className: r = "", style: i }) {
|
|
536
542
|
let [a, o] = c(!1), d = s(null);
|
|
537
543
|
return /* @__PURE__ */ u("span", {
|
|
538
544
|
ref: d,
|
|
@@ -553,7 +559,7 @@ function ne({ children: e, content: t, position: n = "top", className: r = "", s
|
|
|
553
559
|
position: "absolute",
|
|
554
560
|
zIndex: "var(--z-overlay)",
|
|
555
561
|
whiteSpace: "nowrap",
|
|
556
|
-
...
|
|
562
|
+
...ee[n]
|
|
557
563
|
},
|
|
558
564
|
children: t
|
|
559
565
|
})]
|
|
@@ -561,16 +567,16 @@ function ne({ children: e, content: t, position: n = "top", className: r = "", s
|
|
|
561
567
|
}
|
|
562
568
|
//#endregion
|
|
563
569
|
//#region src/react/components/Alert.tsx
|
|
564
|
-
var
|
|
565
|
-
|
|
570
|
+
var M = {
|
|
571
|
+
neutral: "",
|
|
566
572
|
success: "alert-success",
|
|
567
573
|
warning: "alert-warning",
|
|
568
574
|
danger: "alert-danger",
|
|
569
575
|
info: "alert-info"
|
|
570
|
-
},
|
|
576
|
+
}, N = t(({ children: e, variant: t = "neutral", onClose: n, role: r = "alert", className: i = "", style: a, ...o }, s) => {
|
|
571
577
|
let c = [
|
|
572
578
|
"alert",
|
|
573
|
-
|
|
579
|
+
M[t],
|
|
574
580
|
i
|
|
575
581
|
].filter(Boolean).join(" ");
|
|
576
582
|
return /* @__PURE__ */ u("div", {
|
|
@@ -590,18 +596,18 @@ var j = {
|
|
|
590
596
|
})]
|
|
591
597
|
});
|
|
592
598
|
});
|
|
593
|
-
|
|
599
|
+
N.displayName = "Alert";
|
|
594
600
|
//#endregion
|
|
595
601
|
//#region src/react/components/Tabs.tsx
|
|
596
|
-
var
|
|
597
|
-
function
|
|
598
|
-
let e = r(
|
|
602
|
+
var P = e(null);
|
|
603
|
+
function F() {
|
|
604
|
+
let e = r(P);
|
|
599
605
|
if (!e) throw Error("Tab components must be used within Tabs");
|
|
600
606
|
return e;
|
|
601
607
|
}
|
|
602
|
-
function
|
|
608
|
+
function ne({ children: e, defaultIndex: t = 0, index: n, onChange: r, className: i = "", style: o }) {
|
|
603
609
|
let [s, u] = c(t), d = n === void 0 ? s : n, f = a();
|
|
604
|
-
return /* @__PURE__ */ l(
|
|
610
|
+
return /* @__PURE__ */ l(P.Provider, {
|
|
605
611
|
value: {
|
|
606
612
|
selectedIndex: d,
|
|
607
613
|
setSelectedIndex: (e) => {
|
|
@@ -616,7 +622,7 @@ function F({ children: e, defaultIndex: t = 0, index: n, onChange: r, className:
|
|
|
616
622
|
})
|
|
617
623
|
});
|
|
618
624
|
}
|
|
619
|
-
function
|
|
625
|
+
function re({ children: e, className: t = "", style: n }) {
|
|
620
626
|
return /* @__PURE__ */ l("div", {
|
|
621
627
|
className: `tab-list ${t}`,
|
|
622
628
|
role: "tablist",
|
|
@@ -624,8 +630,8 @@ function I({ children: e, className: t = "", style: n }) {
|
|
|
624
630
|
children: e
|
|
625
631
|
});
|
|
626
632
|
}
|
|
627
|
-
function
|
|
628
|
-
let { selectedIndex: i, setSelectedIndex: a, baseId: o } =
|
|
633
|
+
function ie({ children: e, index: t, className: n = "", style: r }) {
|
|
634
|
+
let { selectedIndex: i, setSelectedIndex: a, baseId: o } = F(), s = t ?? 0, c = i === s;
|
|
629
635
|
return /* @__PURE__ */ l("button", {
|
|
630
636
|
role: "tab",
|
|
631
637
|
"aria-selected": c,
|
|
@@ -661,8 +667,8 @@ function L({ children: e, index: t, className: n = "", style: r }) {
|
|
|
661
667
|
children: e
|
|
662
668
|
});
|
|
663
669
|
}
|
|
664
|
-
function
|
|
665
|
-
let { selectedIndex: i, baseId: a } =
|
|
670
|
+
function I({ children: e, index: t, className: n = "", style: r }) {
|
|
671
|
+
let { selectedIndex: i, baseId: a } = F(), o = t ?? 0;
|
|
666
672
|
return i === o ? /* @__PURE__ */ l("div", {
|
|
667
673
|
role: "tabpanel",
|
|
668
674
|
id: `${a}-panel-${o}`,
|
|
@@ -675,7 +681,7 @@ function R({ children: e, index: t, className: n = "", style: r }) {
|
|
|
675
681
|
}
|
|
676
682
|
//#endregion
|
|
677
683
|
//#region src/react/components/Nav.tsx
|
|
678
|
-
var
|
|
684
|
+
var L = t(({ children: e, orientation: t = "horizontal", className: n = "", style: r, ...i }, a) => {
|
|
679
685
|
let o = [
|
|
680
686
|
"nav",
|
|
681
687
|
t === "vertical" ? "nav-vertical" : "nav-horizontal",
|
|
@@ -689,8 +695,8 @@ var z = t(({ children: e, orientation: t = "horizontal", className: n = "", styl
|
|
|
689
695
|
children: e
|
|
690
696
|
});
|
|
691
697
|
});
|
|
692
|
-
|
|
693
|
-
var
|
|
698
|
+
L.displayName = "Nav";
|
|
699
|
+
var R = t(({ children: e, active: t = !1, href: n = "#", className: r = "", style: i, ...a }, o) => {
|
|
694
700
|
let s = [
|
|
695
701
|
"nav-item",
|
|
696
702
|
t ? "active" : "",
|
|
@@ -705,10 +711,10 @@ var B = t(({ children: e, active: t = !1, href: n = "#", className: r = "", styl
|
|
|
705
711
|
children: e
|
|
706
712
|
});
|
|
707
713
|
});
|
|
708
|
-
|
|
714
|
+
R.displayName = "NavItem";
|
|
709
715
|
//#endregion
|
|
710
716
|
//#region src/react/components/Checkbox.tsx
|
|
711
|
-
var
|
|
717
|
+
var z = t(({ label: e, indeterminate: t = !1, className: n = "", style: r, checked: i, ...a }, o) => {
|
|
712
718
|
let s = [
|
|
713
719
|
"checkbox",
|
|
714
720
|
i ? "checked" : "",
|
|
@@ -738,10 +744,10 @@ var V = t(({ label: e, indeterminate: t = !1, className: n = "", style: r, check
|
|
|
738
744
|
]
|
|
739
745
|
});
|
|
740
746
|
});
|
|
741
|
-
|
|
747
|
+
z.displayName = "Checkbox";
|
|
742
748
|
//#endregion
|
|
743
749
|
//#region src/react/components/Radio.tsx
|
|
744
|
-
var
|
|
750
|
+
var B = t(({ label: e, className: t = "", style: n, checked: r, ...i }, a) => {
|
|
745
751
|
let o = [
|
|
746
752
|
"radio",
|
|
747
753
|
r ? "selected" : "",
|
|
@@ -769,10 +775,10 @@ var H = t(({ label: e, className: t = "", style: n, checked: r, ...i }, a) => {
|
|
|
769
775
|
]
|
|
770
776
|
});
|
|
771
777
|
});
|
|
772
|
-
|
|
778
|
+
B.displayName = "Radio";
|
|
773
779
|
//#endregion
|
|
774
780
|
//#region src/react/components/Toggle.tsx
|
|
775
|
-
var
|
|
781
|
+
var V = t(({ label: e, checked: t, onChange: n, className: r = "", style: i, ...a }, o) => {
|
|
776
782
|
let s = [
|
|
777
783
|
"toggle",
|
|
778
784
|
t ? "on" : "",
|
|
@@ -803,27 +809,27 @@ var U = t(({ label: e, checked: t, onChange: n, className: r = "", style: i, ...
|
|
|
803
809
|
]
|
|
804
810
|
});
|
|
805
811
|
});
|
|
806
|
-
|
|
812
|
+
V.displayName = "Toggle";
|
|
807
813
|
//#endregion
|
|
808
814
|
//#region src/react/components/Select.tsx
|
|
809
|
-
var
|
|
815
|
+
var H = t(({ children: e, className: t = "", style: n, ...r }, i) => /* @__PURE__ */ l("select", {
|
|
810
816
|
ref: i,
|
|
811
817
|
className: `select-native ${t}`,
|
|
812
818
|
style: n,
|
|
813
819
|
...r,
|
|
814
820
|
children: e
|
|
815
821
|
}));
|
|
816
|
-
|
|
817
|
-
var
|
|
822
|
+
H.displayName = "Select";
|
|
823
|
+
var U = t(({ className: e = "", style: t, ...n }, r) => /* @__PURE__ */ l("textarea", {
|
|
818
824
|
ref: r,
|
|
819
825
|
className: `textarea ${e}`,
|
|
820
826
|
style: t,
|
|
821
827
|
...n
|
|
822
828
|
}));
|
|
823
|
-
|
|
829
|
+
U.displayName = "Textarea";
|
|
824
830
|
//#endregion
|
|
825
831
|
//#region src/react/components/TextureOverlay.tsx
|
|
826
|
-
var
|
|
832
|
+
var W = {
|
|
827
833
|
halftone: "texture-halftone",
|
|
828
834
|
scanline: "texture-scanline",
|
|
829
835
|
noise: "texture-noise",
|
|
@@ -832,9 +838,9 @@ var K = {
|
|
|
832
838
|
"grid-dots": "texture-grid-dots",
|
|
833
839
|
texture: "texture-overlay"
|
|
834
840
|
};
|
|
835
|
-
function
|
|
841
|
+
function G({ children: e, texture: t = "halftone", opacity: n, animated: r = !1, className: i = "", style: a }) {
|
|
836
842
|
let o = [
|
|
837
|
-
|
|
843
|
+
W[t === !1 || t === null ? "texture" : t] || W.texture,
|
|
838
844
|
r ? "texture-animated" : "",
|
|
839
845
|
i
|
|
840
846
|
].filter(Boolean).join(" ");
|
|
@@ -849,7 +855,7 @@ function q({ children: e, texture: t = "halftone", opacity: n, animated: r = !1,
|
|
|
849
855
|
}
|
|
850
856
|
//#endregion
|
|
851
857
|
//#region src/react/components/IsometricBackground.tsx
|
|
852
|
-
var
|
|
858
|
+
var K = {
|
|
853
859
|
grid: {
|
|
854
860
|
static: "iso-grid",
|
|
855
861
|
animated: "iso-grid-animated"
|
|
@@ -883,8 +889,8 @@ var J = {
|
|
|
883
889
|
animated: "iso-wave-animated"
|
|
884
890
|
}
|
|
885
891
|
};
|
|
886
|
-
function
|
|
887
|
-
let a =
|
|
892
|
+
function q({ children: e, pattern: t = "grid", animated: n = !1, className: r = "", style: i }) {
|
|
893
|
+
let a = K[t] || K.grid, o = [
|
|
888
894
|
a.static,
|
|
889
895
|
n ? a.animated : "",
|
|
890
896
|
r
|
|
@@ -897,7 +903,7 @@ function Y({ children: e, pattern: t = "grid", animated: n = !1, className: r =
|
|
|
897
903
|
}
|
|
898
904
|
//#endregion
|
|
899
905
|
//#region src/react/components/Spinner.tsx
|
|
900
|
-
function
|
|
906
|
+
function J({ size: e = "md", className: t = "", style: n }) {
|
|
901
907
|
let r = [
|
|
902
908
|
"spinner",
|
|
903
909
|
e === "sm" ? "spinner-sm" : e === "lg" ? "spinner-lg" : "",
|
|
@@ -912,7 +918,7 @@ function X({ size: e = "md", className: t = "", style: n }) {
|
|
|
912
918
|
}
|
|
913
919
|
//#endregion
|
|
914
920
|
//#region src/react/components/Skeleton.tsx
|
|
915
|
-
function
|
|
921
|
+
function Y({ width: e, height: t = 16, className: n = "", style: r }) {
|
|
916
922
|
let i = ["skeleton", n].filter(Boolean).join(" ");
|
|
917
923
|
return /* @__PURE__ */ l("span", {
|
|
918
924
|
"aria-hidden": "true",
|
|
@@ -926,7 +932,7 @@ function Z({ width: e, height: t = 16, className: n = "", style: r }) {
|
|
|
926
932
|
}
|
|
927
933
|
//#endregion
|
|
928
934
|
//#region src/react/components/Avatar.tsx
|
|
929
|
-
function
|
|
935
|
+
function ae({ src: e, alt: t = "", initials: n, size: r = "md", circle: i = !1, className: a = "", style: o }) {
|
|
930
936
|
let s = [
|
|
931
937
|
"avatar",
|
|
932
938
|
r === "sm" ? "avatar-sm" : r === "lg" ? "avatar-lg" : "",
|
|
@@ -944,7 +950,7 @@ function re({ src: e, alt: t = "", initials: n, size: r = "md", circle: i = !1,
|
|
|
944
950
|
}
|
|
945
951
|
//#endregion
|
|
946
952
|
//#region src/react/components/Progress.tsx
|
|
947
|
-
function
|
|
953
|
+
function oe({ value: e, max: t = 100, variant: n, className: r = "", style: i }) {
|
|
948
954
|
let a = Math.min(100, Math.max(0, e / t * 100)), o = [
|
|
949
955
|
"progress",
|
|
950
956
|
n ? `progress-${n}` : "",
|
|
@@ -965,25 +971,25 @@ function ie({ value: e, max: t = 100, variant: n, className: r = "", style: i })
|
|
|
965
971
|
}
|
|
966
972
|
//#endregion
|
|
967
973
|
//#region src/react/theme/projects.ts
|
|
968
|
-
var
|
|
974
|
+
var se = [
|
|
969
975
|
"7kgroup",
|
|
970
976
|
"7kminato",
|
|
971
977
|
"inari"
|
|
972
|
-
],
|
|
973
|
-
function
|
|
974
|
-
return typeof e == "string" &&
|
|
978
|
+
], ce = "7k-project";
|
|
979
|
+
function le(e) {
|
|
980
|
+
return typeof e == "string" && se.includes(e);
|
|
975
981
|
}
|
|
976
982
|
//#endregion
|
|
977
983
|
//#region src/react/theme/ProjectProvider.tsx
|
|
978
|
-
var
|
|
984
|
+
var X = e({
|
|
979
985
|
project: "7kgroup",
|
|
980
986
|
setProject: () => {}
|
|
981
987
|
});
|
|
982
|
-
function
|
|
988
|
+
function ue({ children: e, defaultProject: t = "7kgroup", storageKey: r = ce }) {
|
|
983
989
|
let [a, o] = c(() => {
|
|
984
990
|
if (typeof window > "u") return t;
|
|
985
991
|
let e = localStorage.getItem(r);
|
|
986
|
-
return
|
|
992
|
+
return le(e) ? e : t;
|
|
987
993
|
});
|
|
988
994
|
i(() => {
|
|
989
995
|
document.documentElement.setAttribute("data-project", a), localStorage.setItem(r, a);
|
|
@@ -991,7 +997,7 @@ function ce({ children: e, defaultProject: t = "7kgroup", storageKey: r = oe })
|
|
|
991
997
|
let s = n((e) => {
|
|
992
998
|
o(e);
|
|
993
999
|
}, []);
|
|
994
|
-
return /* @__PURE__ */ l(
|
|
1000
|
+
return /* @__PURE__ */ l(X.Provider, {
|
|
995
1001
|
value: {
|
|
996
1002
|
project: a,
|
|
997
1003
|
setProject: s
|
|
@@ -1001,12 +1007,12 @@ function ce({ children: e, defaultProject: t = "7kgroup", storageKey: r = oe })
|
|
|
1001
1007
|
}
|
|
1002
1008
|
//#endregion
|
|
1003
1009
|
//#region src/react/theme/useProject.ts
|
|
1004
|
-
function
|
|
1005
|
-
return r(
|
|
1010
|
+
function Z() {
|
|
1011
|
+
return r(X);
|
|
1006
1012
|
}
|
|
1007
1013
|
//#endregion
|
|
1008
1014
|
//#region src/react/components/ProjectIcon.tsx
|
|
1009
|
-
var
|
|
1015
|
+
var Q = [
|
|
1010
1016
|
{
|
|
1011
1017
|
id: "stroke-1",
|
|
1012
1018
|
d: "M0 0 C5.31124964 0.603148 10.48703511 1.43913427 15.70556641 2.60717773 C16.43345084 2.76700921 17.16133528 2.92684069 17.91127682 3.09151554 C20.30879661 3.61883334 22.7051582 4.15123171 25.1015625 4.68359375 C26.80517693 5.05913826 28.50886821 5.43433426 30.21263123 5.8092041 C34.7498531 6.80842764 39.28611201 7.81195236 43.82210159 8.81675339 C51.28033334 10.46849791 58.73958849 12.11562021 66.19889259 13.76251411 C68.04881424 14.17100274 69.89869699 14.57966759 71.74854088 14.98850822 C83.02899365 17.48103879 94.31557491 19.93611433 105.62109375 22.3125 C107.79802212 22.77283097 109.97494311 23.23319683 112.15185547 23.69360352 C116.00363238 24.50743675 119.85834657 25.30477983 123.71533203 26.09350586 C125.3845784 26.44579716 127.05369683 26.79869553 128.72265625 27.15234375 C129.83367958 27.37150452 129.83367958 27.37150452 130.96714783 27.59509277 C132.96508789 28.02709961 132.96508789 28.02709961 136 29 C136.33 29.99 136.66 30.98 137 32 C129.29851279 34.38264441 121.53802394 36.48456869 113.73828125 38.51953125 C112.44506913 38.85815768 111.15188757 39.19690088 109.85873413 39.53575134 C106.39552234 40.44257301 102.93164295 41.3468178 99.467556 42.25028992 C97.30259146 42.81508493 95.13780023 43.38053979 92.97305298 43.94616699 C65.30194833 51.17500901 37.60064857 58.2829979 9.86859131 65.2746582 C6.95503557 66.01136955 4.04311103 66.75428619 1.13134766 67.49804688 C-0.69756438 67.96234502 -2.52650191 68.42654277 -4.35546875 68.890625 C-5.18959793 69.1051532 -6.02372711 69.3196814 -6.88313293 69.54071045 C-9.99400234 70.32656685 -12.77765467 71 -16 71 C-12.92929924 54.77377074 -9.40553704 38.66561099 -5.75 22.5625 C-5.52395081 21.56295288 -5.29790161 20.56340576 -5.06500244 19.53356934 C-4.41628654 16.66878444 -3.7636237 13.80493209 -3.109375 10.94140625 C-2.91163483 10.06849442 -2.71389465 9.19558258 -2.51016235 8.29621887 C-1.115605 2.23121 -1.115605 2.23121 0 0 Z ",
|
|
@@ -1042,17 +1048,17 @@ var le = [
|
|
|
1042
1048
|
d: "M0 0 C0 4.13451443 -2.1839165 6.12255584 -4.6875 9.1875 C-5.17790771 9.79972412 -5.66831543 10.41194824 -6.17358398 11.04272461 C-7.77390181 13.03551151 -9.38541085 15.01876258 -11 17 C-11.53979492 17.66354492 -12.07958984 18.32708984 -12.63574219 19.01074219 C-14.82765052 21.7045544 -17.02015927 24.39786833 -19.21582031 27.08862305 C-26.00991117 35.43318627 -32.61724571 43.92838421 -38.84375 52.70703125 C-39.41609375 53.34705078 -39.41609375 53.34705078 -40 54 C-40.66 54 -41.32 54 -42 54 C-41.36203146 48.57570043 -40.13437376 43.55378766 -38.56640625 38.328125 C-38.32840805 37.52389099 -38.09040985 36.71965698 -37.84519958 35.89105225 C-37.34414963 34.20284521 -36.84061571 32.51537359 -36.3347168 30.82861328 C-35.56130014 28.2459934 -34.79872799 25.66033926 -34.03710938 23.07421875 C-33.54752064 21.42949517 -33.05730802 19.78495715 -32.56640625 18.140625 C-32.3392543 17.3687384 -32.11210236 16.59685181 -31.87806702 15.80157471 C-30.87795999 12.49041113 -29.9327526 9.8991289 -28 7 C-25.20263672 6.0168457 -25.20263672 6.0168457 -21.6796875 5.17578125 C-19.79443359 4.71655273 -19.79443359 4.71655273 -17.87109375 4.24804688 C-16.53912224 3.93594285 -15.20709016 3.6240972 -13.875 3.3125 C-12.53489546 2.99001409 -11.19504774 2.66645895 -9.85546875 2.34179688 C-6.57269188 1.55062403 -3.28767054 0.7705379 0 0 Z ",
|
|
1043
1049
|
transform: "translate(183,140)"
|
|
1044
1050
|
}
|
|
1045
|
-
],
|
|
1051
|
+
], de = {
|
|
1046
1052
|
"7kgroup": null,
|
|
1047
1053
|
"7kminato": "blob-3",
|
|
1048
1054
|
inari: "blob-2"
|
|
1049
|
-
},
|
|
1055
|
+
}, fe = {
|
|
1050
1056
|
"7kgroup": "var(--accent-7kgroup)",
|
|
1051
1057
|
"7kminato": "var(--accent-7kminato)",
|
|
1052
1058
|
inari: "var(--accent-inari)"
|
|
1053
1059
|
};
|
|
1054
|
-
function
|
|
1055
|
-
let { project: r } =
|
|
1060
|
+
function pe({ size: e = 32, className: t = "", style: n }) {
|
|
1061
|
+
let { project: r } = Z(), i = de[r];
|
|
1056
1062
|
return /* @__PURE__ */ l("svg", {
|
|
1057
1063
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1058
1064
|
viewBox: "0 0 208 207",
|
|
@@ -1063,16 +1069,16 @@ function fe({ size: e = 32, className: t = "", style: n }) {
|
|
|
1063
1069
|
role: "img",
|
|
1064
1070
|
"aria-label": `${r} icon`,
|
|
1065
1071
|
"data-project": r,
|
|
1066
|
-
children:
|
|
1072
|
+
children: Q.map((e) => /* @__PURE__ */ l("path", {
|
|
1067
1073
|
d: e.d,
|
|
1068
1074
|
transform: e.transform,
|
|
1069
|
-
fill: e.id === i ?
|
|
1075
|
+
fill: e.id === i ? fe[r] : e.id.startsWith("stroke") ? "var(--accent-7kgroup)" : "var(--icon-blob)"
|
|
1070
1076
|
}, e.id))
|
|
1071
1077
|
});
|
|
1072
1078
|
}
|
|
1073
1079
|
//#endregion
|
|
1074
1080
|
//#region src/react/components/Listbox.tsx
|
|
1075
|
-
function
|
|
1081
|
+
function me({ options: e, value: t, onChange: n, placeholder: r = "Select…", disabled: o = !1, className: d = "", style: f }) {
|
|
1076
1082
|
let p = a(), [m, h] = c(!1), [g, _] = c(-1), v = s(null), y = e.find((e) => e.value === t);
|
|
1077
1083
|
i(() => {
|
|
1078
1084
|
if (!m) return;
|
|
@@ -1161,7 +1167,7 @@ function pe({ options: e, value: t, onChange: n, placeholder: r = "Select…", d
|
|
|
1161
1167
|
}
|
|
1162
1168
|
//#endregion
|
|
1163
1169
|
//#region src/react/components/Stat.tsx
|
|
1164
|
-
function
|
|
1170
|
+
function he({ value: e, label: t, trend: n, accent: r = !1, status: i, className: a = "", style: o }) {
|
|
1165
1171
|
let s = [
|
|
1166
1172
|
"stat",
|
|
1167
1173
|
r ? "stat-accent" : "",
|
|
@@ -1189,7 +1195,7 @@ function me({ value: e, label: t, trend: n, accent: r = !1, status: i, className
|
|
|
1189
1195
|
}
|
|
1190
1196
|
//#endregion
|
|
1191
1197
|
//#region src/react/components/EmptyState.tsx
|
|
1192
|
-
function
|
|
1198
|
+
function ge({ title: e, body: t, action: n, icon: r, className: i = "", style: a }) {
|
|
1193
1199
|
let o = ["empty", i].filter(Boolean).join(" ");
|
|
1194
1200
|
return /* @__PURE__ */ u("div", {
|
|
1195
1201
|
className: o,
|
|
@@ -1216,7 +1222,7 @@ function he({ title: e, body: t, action: n, icon: r, className: i = "", style: a
|
|
|
1216
1222
|
}
|
|
1217
1223
|
//#endregion
|
|
1218
1224
|
//#region src/react/components/DataTable.tsx
|
|
1219
|
-
function
|
|
1225
|
+
function _e({ columns: e, rows: t, rowKey: n, loading: r = !1, skeletonRows: i = 6, empty: a, onSort: o, sortKey: s, sortDirection: c, pagination: d, className: f = "", style: p }) {
|
|
1220
1226
|
let m = (e, t) => typeof n == "function" ? n(e, t) : String(e[n]);
|
|
1221
1227
|
if ((typeof process > "u" || process.env.NODE_ENV !== "production") && !r) {
|
|
1222
1228
|
let e = /* @__PURE__ */ new Set();
|
|
@@ -1240,7 +1246,7 @@ function ge({ columns: e, rows: t, rowKey: n, loading: r = !1, skeletonRows: i =
|
|
|
1240
1246
|
onClick: () => o(e.key),
|
|
1241
1247
|
children: [e.label, s === e.key ? c === "desc" ? " ↓" : " ↑" : ""]
|
|
1242
1248
|
}) : e.label
|
|
1243
|
-
}, e.key)) }) }), /* @__PURE__ */ u("tbody", { children: [r ? Array.from({ length: i }, (t, n) => /* @__PURE__ */ l("tr", { children: e.map((e) => /* @__PURE__ */ l("td", { children: /* @__PURE__ */ l(
|
|
1249
|
+
}, e.key)) }) }), /* @__PURE__ */ u("tbody", { children: [r ? Array.from({ length: i }, (t, n) => /* @__PURE__ */ l("tr", { children: e.map((e) => /* @__PURE__ */ l("td", { children: /* @__PURE__ */ l(Y, { height: 12 }) }, e.key)) }, `skeleton-${n}`)) : t.map((t, n) => /* @__PURE__ */ l("tr", { children: e.map((e) => /* @__PURE__ */ l("td", {
|
|
1244
1250
|
className: e.mono ? "mono" : void 0,
|
|
1245
1251
|
"data-label": e.mobileLabel ?? (typeof e.label == "string" ? e.label : void 0),
|
|
1246
1252
|
children: e.render ? e.render(t, n) : String(t[e.key] ?? "")
|
|
@@ -1255,9 +1261,140 @@ function ge({ columns: e, rows: t, rowKey: n, loading: r = !1, skeletonRows: i =
|
|
|
1255
1261
|
});
|
|
1256
1262
|
}
|
|
1257
1263
|
//#endregion
|
|
1264
|
+
//#region src/react/components/Tag.tsx
|
|
1265
|
+
function ve({ variant: e = "solid", className: t = "", style: n, children: r }) {
|
|
1266
|
+
let i = [
|
|
1267
|
+
"tag",
|
|
1268
|
+
e === "solid" ? "" : `tag-${e}`,
|
|
1269
|
+
t
|
|
1270
|
+
].filter(Boolean).join(" ");
|
|
1271
|
+
return /* @__PURE__ */ l("span", {
|
|
1272
|
+
className: i,
|
|
1273
|
+
style: n,
|
|
1274
|
+
children: r
|
|
1275
|
+
});
|
|
1276
|
+
}
|
|
1277
|
+
//#endregion
|
|
1278
|
+
//#region src/react/components/Banner.tsx
|
|
1279
|
+
function ye({ tone: e, count: t, onDismiss: n, className: r = "", style: i, children: a, ...o }) {
|
|
1280
|
+
let s = [
|
|
1281
|
+
"banner",
|
|
1282
|
+
e ? {
|
|
1283
|
+
success: "banner-success",
|
|
1284
|
+
warning: "banner-warning",
|
|
1285
|
+
danger: "banner-error",
|
|
1286
|
+
error: "banner-error"
|
|
1287
|
+
}[e] : "",
|
|
1288
|
+
r
|
|
1289
|
+
].filter(Boolean).join(" ");
|
|
1290
|
+
return /* @__PURE__ */ u("div", {
|
|
1291
|
+
className: s,
|
|
1292
|
+
style: i,
|
|
1293
|
+
...o,
|
|
1294
|
+
children: [
|
|
1295
|
+
t !== void 0 && /* @__PURE__ */ l("span", {
|
|
1296
|
+
className: "banner-count",
|
|
1297
|
+
children: t
|
|
1298
|
+
}),
|
|
1299
|
+
a,
|
|
1300
|
+
n && /* @__PURE__ */ l("button", {
|
|
1301
|
+
className: "banner-dismiss",
|
|
1302
|
+
onClick: n,
|
|
1303
|
+
"aria-label": "Dismiss banner",
|
|
1304
|
+
children: "×"
|
|
1305
|
+
})
|
|
1306
|
+
]
|
|
1307
|
+
});
|
|
1308
|
+
}
|
|
1309
|
+
//#endregion
|
|
1310
|
+
//#region src/react/components/Range.tsx
|
|
1311
|
+
var $ = t(({ className: e = "", style: t, ...n }, r) => /* @__PURE__ */ l("input", {
|
|
1312
|
+
ref: r,
|
|
1313
|
+
type: "range",
|
|
1314
|
+
className: `range ${e}`.trim(),
|
|
1315
|
+
style: t,
|
|
1316
|
+
...n
|
|
1317
|
+
}));
|
|
1318
|
+
$.displayName = "Range";
|
|
1319
|
+
//#endregion
|
|
1320
|
+
//#region src/react/components/ColorSwatch.tsx
|
|
1321
|
+
function be({ color: e, selected: t, onClick: n, className: r = "", style: i, ...a }) {
|
|
1322
|
+
let o = [
|
|
1323
|
+
"color-swatch",
|
|
1324
|
+
t ? "selected" : "",
|
|
1325
|
+
r
|
|
1326
|
+
].filter(Boolean).join(" ");
|
|
1327
|
+
return /* @__PURE__ */ l("button", {
|
|
1328
|
+
type: "button",
|
|
1329
|
+
className: o,
|
|
1330
|
+
style: {
|
|
1331
|
+
background: e,
|
|
1332
|
+
...i
|
|
1333
|
+
},
|
|
1334
|
+
onClick: n,
|
|
1335
|
+
"aria-pressed": t,
|
|
1336
|
+
...a
|
|
1337
|
+
});
|
|
1338
|
+
}
|
|
1339
|
+
//#endregion
|
|
1340
|
+
//#region src/react/components/Form.tsx
|
|
1341
|
+
function xe({ label: e, error: t, className: n = "", style: r, children: i }) {
|
|
1342
|
+
let a = ["form-group", n].filter(Boolean).join(" ");
|
|
1343
|
+
return /* @__PURE__ */ u("div", {
|
|
1344
|
+
className: a,
|
|
1345
|
+
style: r,
|
|
1346
|
+
children: [
|
|
1347
|
+
e && /* @__PURE__ */ l("span", {
|
|
1348
|
+
className: "form-label",
|
|
1349
|
+
children: e
|
|
1350
|
+
}),
|
|
1351
|
+
i,
|
|
1352
|
+
t && /* @__PURE__ */ l("span", {
|
|
1353
|
+
className: "field-error",
|
|
1354
|
+
children: t
|
|
1355
|
+
})
|
|
1356
|
+
]
|
|
1357
|
+
});
|
|
1358
|
+
}
|
|
1359
|
+
function Se({ addon: e, addonPosition: t = "prefix", className: n = "", style: r, children: i }) {
|
|
1360
|
+
let a = ["input-group", n].filter(Boolean).join(" "), o = e ? /* @__PURE__ */ l("span", {
|
|
1361
|
+
className: "input-addon",
|
|
1362
|
+
children: e
|
|
1363
|
+
}) : null;
|
|
1364
|
+
return /* @__PURE__ */ u("div", {
|
|
1365
|
+
className: a,
|
|
1366
|
+
style: r,
|
|
1367
|
+
children: [
|
|
1368
|
+
t === "prefix" && o,
|
|
1369
|
+
i,
|
|
1370
|
+
t === "suffix" && o
|
|
1371
|
+
]
|
|
1372
|
+
});
|
|
1373
|
+
}
|
|
1374
|
+
//#endregion
|
|
1375
|
+
//#region src/react/components/ButtonGroup.tsx
|
|
1376
|
+
function Ce({ className: e = "", style: t, children: n }) {
|
|
1377
|
+
let r = ["btn-group", e].filter(Boolean).join(" ");
|
|
1378
|
+
return /* @__PURE__ */ l("div", {
|
|
1379
|
+
className: r,
|
|
1380
|
+
style: t,
|
|
1381
|
+
role: "group",
|
|
1382
|
+
children: n
|
|
1383
|
+
});
|
|
1384
|
+
}
|
|
1385
|
+
function we({ className: e = "", style: t, children: n }) {
|
|
1386
|
+
let r = ["btn-split", e].filter(Boolean).join(" ");
|
|
1387
|
+
return /* @__PURE__ */ l("div", {
|
|
1388
|
+
className: r,
|
|
1389
|
+
style: t,
|
|
1390
|
+
role: "group",
|
|
1391
|
+
children: n
|
|
1392
|
+
});
|
|
1393
|
+
}
|
|
1394
|
+
//#endregion
|
|
1258
1395
|
//#region src/react/theme/ThemeProvider.tsx
|
|
1259
|
-
var
|
|
1260
|
-
function
|
|
1396
|
+
var Te = "7k-theme";
|
|
1397
|
+
function Ee({ children: e, defaultTheme: t = "dark", storageKey: r = Te }) {
|
|
1261
1398
|
let [i, a] = c(() => {
|
|
1262
1399
|
if (typeof window > "u") return t;
|
|
1263
1400
|
let e = localStorage.getItem(r);
|
|
@@ -1281,4 +1418,4 @@ function ve({ children: e, defaultTheme: t = "dark", storageKey: r = _e }) {
|
|
|
1281
1418
|
});
|
|
1282
1419
|
}
|
|
1283
1420
|
//#endregion
|
|
1284
|
-
export {
|
|
1421
|
+
export { N as Alert, ae as Avatar, p as Badge, ye as Banner, d as Button, Ce as ButtonGroup, we as ButtonSplit, b as Card, S as CardBody, x as CardHeader, z as Checkbox, be as ColorSwatch, _e as DataTable, O as Drawer, ge as EmptyState, xe as FormGroup, h as Icon, f as Input, Se as InputGroup, q as IsometricBackground, me as Listbox, w as Modal, E as ModalFooter, T as ModalHeader, L as Nav, R as NavItem, oe as Progress, X as ProjectContext, pe as ProjectIcon, ue as ProjectProvider, B as Radio, $ as Range, H as Select, Y as Skeleton, J as Spinner, he as Stat, ie as Tab, re as TabList, I as TabPanel, ne as Tabs, ve as Tag, U as Textarea, G as TextureOverlay, g as ThemeContext, Ee as ThemeProvider, v as ThemeToggle, j as Toast, V as Toggle, te as Tooltip, Z as useProject, _ as useTheme };
|
package/dist/react/types.d.ts
CHANGED
|
@@ -5,7 +5,9 @@ export interface BaseProps {
|
|
|
5
5
|
children?: ReactNode;
|
|
6
6
|
}
|
|
7
7
|
export type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'glow' | 'glow-accent' | 'accent' | 'danger' | 'glow-secondary';
|
|
8
|
-
export type ButtonSize = 'sm' | 'md' | 'lg';
|
|
8
|
+
export type ButtonSize = 'sm' | 'md' | 'lg' | 'icon' | 'icon-lg';
|
|
9
|
+
/** Texture overlay variants forming the Penpot Button texture axis. */
|
|
10
|
+
export type ButtonTexture = 'halftone' | 'scanline' | 'dots';
|
|
9
11
|
export interface ButtonProps extends BaseProps {
|
|
10
12
|
variant?: ButtonVariant;
|
|
11
13
|
size?: ButtonSize;
|
|
@@ -13,10 +15,11 @@ export interface ButtonProps extends BaseProps {
|
|
|
13
15
|
loading?: boolean;
|
|
14
16
|
onClick?: () => void;
|
|
15
17
|
type?: 'button' | 'submit' | 'reset';
|
|
18
|
+
texture?: ButtonTexture;
|
|
16
19
|
'aria-label'?: string;
|
|
17
20
|
'aria-describedby'?: string;
|
|
18
21
|
}
|
|
19
|
-
export type BadgeVariant = 'default' | 'accent' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
|
|
22
|
+
export type BadgeVariant = 'default' | 'accent' | 'success' | 'warning' | 'danger' | 'info' | 'neutral' | 'inverted';
|
|
20
23
|
export interface BadgeProps extends BaseProps {
|
|
21
24
|
variant?: BadgeVariant;
|
|
22
25
|
role?: string;
|
|
@@ -54,7 +57,8 @@ export interface DrawerProps extends BaseProps {
|
|
|
54
57
|
role?: string;
|
|
55
58
|
'aria-labelledby'?: string;
|
|
56
59
|
}
|
|
57
|
-
|
|
60
|
+
/** Matches the Penpot Toast Tone axis; `neutral` is the base tone. */
|
|
61
|
+
export type ToastVariant = 'neutral' | 'success' | 'warning' | 'danger' | 'info';
|
|
58
62
|
export interface ToastProps extends BaseProps {
|
|
59
63
|
variant?: ToastVariant;
|
|
60
64
|
onDismiss?: () => void;
|
|
@@ -65,7 +69,8 @@ export interface TooltipProps extends BaseProps {
|
|
|
65
69
|
content: ReactNode;
|
|
66
70
|
position?: 'top' | 'right' | 'bottom' | 'left';
|
|
67
71
|
}
|
|
68
|
-
|
|
72
|
+
/** Matches the Penpot Alert Tone axis; `neutral` is the base tone. */
|
|
73
|
+
export type AlertVariant = 'neutral' | 'success' | 'warning' | 'danger' | 'info';
|
|
69
74
|
export interface AlertProps extends BaseProps {
|
|
70
75
|
variant?: AlertVariant;
|
|
71
76
|
onClose?: () => void;
|
|
@@ -102,6 +107,37 @@ export interface SelectProps extends BaseProps, Omit<SelectHTMLAttributes<HTMLSe
|
|
|
102
107
|
}
|
|
103
108
|
export interface TextareaProps extends BaseProps, Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className' | 'style'> {
|
|
104
109
|
}
|
|
110
|
+
/** Matches the Penpot Tag Style axis; `solid` is the default style. */
|
|
111
|
+
export type TagStyle = 'solid' | 'outlined' | 'inverted';
|
|
112
|
+
export interface TagProps extends BaseProps {
|
|
113
|
+
variant?: TagStyle;
|
|
114
|
+
}
|
|
115
|
+
/** Matches the Penpot Banner Tone axis; `error` is kept as an alias of `danger`. */
|
|
116
|
+
export type BannerTone = 'success' | 'warning' | 'danger' | 'error';
|
|
117
|
+
export interface BannerProps extends BaseProps {
|
|
118
|
+
tone?: BannerTone;
|
|
119
|
+
count?: number;
|
|
120
|
+
onDismiss?: () => void;
|
|
121
|
+
}
|
|
122
|
+
export interface RangeProps extends BaseProps, Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style' | 'type'> {
|
|
123
|
+
}
|
|
124
|
+
export interface ColorSwatchProps extends BaseProps {
|
|
125
|
+
color: string;
|
|
126
|
+
selected?: boolean;
|
|
127
|
+
onClick?: () => void;
|
|
128
|
+
'aria-label'?: string;
|
|
129
|
+
}
|
|
130
|
+
export interface FormGroupProps extends BaseProps {
|
|
131
|
+
label?: ReactNode;
|
|
132
|
+
error?: string;
|
|
133
|
+
}
|
|
134
|
+
export interface InputGroupProps extends BaseProps {
|
|
135
|
+
addon?: ReactNode;
|
|
136
|
+
addonPosition?: 'prefix' | 'suffix';
|
|
137
|
+
}
|
|
138
|
+
export interface ButtonGroupProps extends BaseProps {
|
|
139
|
+
split?: boolean;
|
|
140
|
+
}
|
|
105
141
|
export interface TextureOverlayProps extends BaseProps {
|
|
106
142
|
texture?: Texture;
|
|
107
143
|
opacity?: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "7k-design-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0-edge.e8e4f1e",
|
|
4
4
|
"description": "Dark-first, neon-accented design system for multi-project tech company 7K. Three-font system (Geist sans + Geist Mono + Geist Pixel 5 geometric variants), #FF0FF brand pulse, Tokyo neon atmosphere with high-contrast texture punctuation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/7k-design-system.css",
|