@rafael_dias/akoma 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,101 @@
1
+ # Akoma
2
+
3
+ A human design system for Vue 3 — calm, clear, and trustworthy. Natural neutrals,
4
+ generous space, quiet personality, and hierarchy built through rhythm before borders.
5
+
6
+ Built with **Vue 3 Composition API + TypeScript**. Styles use CSS variables (no Tailwind).
7
+
8
+ ## Two moods, one family
9
+
10
+ | Mood | Feel | Use for | Activate |
11
+ |------|------|---------|----------|
12
+ | **App** (default) | Tactile, optimistic, relaxed | Products and apps | — |
13
+ | **Site** | Composed, precise, trustworthy | Finance, B2B and institutional sites | `<html data-mood="site">` |
14
+
15
+ Both moods share DM Sans, an optional Lora editorial accent, components, spacing,
16
+ and accessible interaction states. Their palettes, radii, controls, and elevation
17
+ adapt to context. Dark mode works in both via `data-theme="dark"`.
18
+
19
+ ## Quick start
20
+
21
+ ```bash
22
+ npm install
23
+ npm run dev
24
+ ```
25
+
26
+ Interactive docs: [http://localhost:5173](http://localhost:5173)
27
+
28
+ ## Library usage (after publish)
29
+
30
+ ```bash
31
+ npm install @rafael_dias/akoma
32
+ ```
33
+
34
+ ```ts
35
+ import { createApp } from 'vue'
36
+ import { Akoma, AkButton } from '@rafael_dias/akoma'
37
+ import '@rafael_dias/akoma/style.css'
38
+
39
+ createApp(App).use(Akoma).mount('#app')
40
+ ```
41
+
42
+ Or import components à la carte:
43
+
44
+ ```vue
45
+ <script setup lang="ts">
46
+ import { AkButton, AkInput } from '@rafael_dias/akoma'
47
+ </script>
48
+ ```
49
+
50
+ ### Dark mode & mood
51
+
52
+ ```ts
53
+ document.documentElement.dataset.theme = 'dark' // warm dark theme
54
+ document.documentElement.dataset.mood = 'site' // sober "Site" mood
55
+ ```
56
+
57
+ ## Components (v0.3)
58
+
59
+ | Component | Description |
60
+ |-----------|-------------|
61
+ | `AkButton` | Primary / secondary / ghost / danger |
62
+ | `AkBadge` | Status pills |
63
+ | `AkChip` | Filter & category chips |
64
+ | `AkCard` | Elevated surface with slots |
65
+ | `AkInput` | Labeled text field |
66
+ | `AkTextarea` | Multi-line field |
67
+ | `AkEmptyState` | Empty list placeholder |
68
+ | `AkShimmer` | Loading skeleton |
69
+ | `AkAmbientBg` | Soft background orbs |
70
+
71
+ ## Scripts
72
+
73
+ | Command | Description |
74
+ |---------|-------------|
75
+ | `npm run dev` | Interactive documentation |
76
+ | `npm run build` | Build library for npm (`dist/`) |
77
+ | `npm run build:docs` | Build static docs (`dist-docs/`) |
78
+ | `npm run preview` | Preview docs build |
79
+
80
+ ## Project structure
81
+
82
+ ```
83
+ akoma/
84
+ ├── src/ # Library source
85
+ │ ├── components/ # Vue SFCs
86
+ │ ├── styles/ # tokens, base, motion
87
+ │ ├── plugin.ts
88
+ │ └── index.ts
89
+ ├── docs/ # Interactive playground
90
+ ├── vite.config.ts # Docs app
91
+ └── vite.lib.config.ts # npm library build
92
+ ```
93
+
94
+ ## Publish to npm
95
+
96
+ ```bash
97
+ npm run build
98
+ npm publish --access public
99
+ ```
100
+
101
+ The package is published publicly as `@rafael_dias/akoma`.
package/dist/akoma.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};let n=require("vue");var r=[`type`,`disabled`,`aria-busy`],i={key:0,class:`ak-button__spinner`,"aria-hidden":`true`},a={key:1,class:`ak-button__icon`},o={class:`ak-button__label`},s=(0,n.defineComponent)({__name:`AkButton`,props:{variant:{default:`primary`},size:{default:`md`},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},type:{default:`button`},block:{type:Boolean,default:!1}},setup(e){return(t,s)=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{class:(0,n.normalizeClass)([`ak-button tap-scale`,[`ak-button--${e.variant}`,`ak-button--${e.size}`,{"ak-button--block":e.block,"ak-button--loading":e.loading}]]),type:e.type,disabled:e.disabled||e.loading,"aria-busy":e.loading||void 0},[e.loading?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,i)):(0,n.createCommentVNode)(``,!0),t.$slots.icon&&!e.loading?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,a,[(0,n.renderSlot)(t.$slots,`icon`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`span`,o,[(0,n.renderSlot)(t.$slots,`default`,{},void 0,!0)])],10,r))}}),c=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},l=c(s,[[`__scopeId`,`data-v-78a39ccd`]]),u=c((0,n.defineComponent)({__name:`AkBadge`,props:{variant:{default:`neutral`},label:{}},setup(e){return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{class:(0,n.normalizeClass)([`ak-badge`,`ak-badge--${e.variant}`])},[(0,n.renderSlot)(t.$slots,`default`,{},()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)],!0)],2))}}),[[`__scopeId`,`data-v-02933f09`]]),d=[`disabled`,`aria-pressed`],f=c((0,n.defineComponent)({__name:`AkChip`,props:{active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},color:{}},emits:[`click`],setup(e,{emit:t}){let r=t;return(t,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{type:`button`,class:(0,n.normalizeClass)([`ak-chip tap-scale`,{"ak-chip--active":e.active}]),style:(0,n.normalizeStyle)(e.active&&e.color?{"--ak-chip-active-bg":e.color}:void 0),disabled:e.disabled,"aria-pressed":e.active,onClick:i[0]||=e=>r(`click`,e)},[(0,n.renderSlot)(t.$slots,`default`,{},void 0,!0)],14,d))}}),[[`__scopeId`,`data-v-c782362c`]]),p={key:0,class:`ak-card__media`},m={key:1,class:`ak-card__header`},h={key:2,class:`ak-card__body`},g={key:3,class:`ak-card__footer`},_=c((0,n.defineComponent)({__name:`AkCard`,props:{interactive:{type:Boolean,default:!1},padding:{default:`md`}},setup(e){return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`article`,{class:(0,n.normalizeClass)([`ak-card`,[`ak-card--pad-${e.padding}`,{"ak-card--interactive tap-scale":e.interactive}]])},[t.$slots.media?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,p,[(0,n.renderSlot)(t.$slots,`media`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),t.$slots.header?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,m,[(0,n.renderSlot)(t.$slots,`header`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),t.$slots.default?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,h,[(0,n.renderSlot)(t.$slots,`default`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),t.$slots.footer?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,g,[(0,n.renderSlot)(t.$slots,`footer`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-0eb2f676`]]),v={key:0,class:`ak-field__label`},y={key:0,class:`ak-field__required`,"aria-hidden":`true`},b=[`id`,`type`,`value`,`placeholder`,`disabled`,`required`,`name`,`autocomplete`,`aria-invalid`,`aria-describedby`],x=[`id`],S=c((0,n.defineComponent)({__name:`AkInput`,props:{modelValue:{default:``},label:{},placeholder:{},hint:{},error:{},type:{default:`text`},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},size:{default:`md`},autocomplete:{},name:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.useId)(),o=(0,n.computed)(()=>`ak-input-${a}`),s=(0,n.computed)(()=>r.hint||r.error?`ak-input-hint-${a}`:void 0);function c(e){let t=e.target;i(`update:modelValue`,t.value)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`label`,{class:(0,n.normalizeClass)([`ak-field`,{"ak-field--disabled":e.disabled,"ak-field--error":!!e.error}])},[e.label?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,v,[(0,n.createTextVNode)((0,n.toDisplayString)(e.label)+` `,1),e.required?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,y,`*`)):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`input`,{id:o.value,class:(0,n.normalizeClass)([`ak-field__control`,`ak-field__control--${e.size}`]),type:e.type,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,required:e.required,name:e.name,autocomplete:e.autocomplete,"aria-invalid":!!e.error||void 0,"aria-describedby":s.value,onInput:c},null,42,b),e.error||e.hint?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:1,id:s.value,class:`ak-field__hint`},(0,n.toDisplayString)(e.error||e.hint),9,x)):(0,n.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-60d7d2d0`]]),C={key:0,class:`ak-field__label`},w={key:0,class:`ak-field__required`,"aria-hidden":`true`},T=[`id`,`value`,`placeholder`,`disabled`,`required`,`name`,`rows`,`aria-invalid`,`aria-describedby`],E=[`id`],D=c((0,n.defineComponent)({__name:`AkTextarea`,props:{modelValue:{default:``},label:{},placeholder:{},hint:{},error:{},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},rows:{default:4},name:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.useId)(),o=(0,n.computed)(()=>`ak-textarea-${a}`),s=(0,n.computed)(()=>r.hint||r.error?`ak-textarea-hint-${a}`:void 0);function c(e){let t=e.target;i(`update:modelValue`,t.value)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`label`,{class:(0,n.normalizeClass)([`ak-field`,{"ak-field--disabled":e.disabled,"ak-field--error":!!e.error}])},[e.label?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,C,[(0,n.createTextVNode)((0,n.toDisplayString)(e.label)+` `,1),e.required?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,w,`*`)):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`textarea`,{id:o.value,class:`ak-field__control`,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,required:e.required,name:e.name,rows:e.rows,"aria-invalid":!!e.error||void 0,"aria-describedby":s.value,onInput:c},null,40,T),e.error||e.hint?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:1,id:s.value,class:`ak-field__hint`},(0,n.toDisplayString)(e.error||e.hint),9,E)):(0,n.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-d34da198`]]),O={class:`ak-empty`},k={class:`ak-empty__icon`,"aria-hidden":`true`},A={key:0,class:`ak-empty__glyph`},j={class:`ak-empty__title`},M={key:0,class:`ak-empty__description`},N={key:1,class:`ak-empty__action`},P=c((0,n.defineComponent)({__name:`AkEmptyState`,props:{title:{},description:{}},setup(e){return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,O,[(0,n.createElementVNode)(`div`,k,[r[0]||=(0,n.createElementVNode)(`span`,{class:`ak-empty__ring ak-empty__ring--outer`},null,-1),r[1]||=(0,n.createElementVNode)(`span`,{class:`ak-empty__ring ak-empty__ring--inner`},null,-1),t.$slots.icon?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,A,[(0,n.renderSlot)(t.$slots,`icon`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0)]),(0,n.createElementVNode)(`h3`,j,(0,n.toDisplayString)(e.title),1),e.description?((0,n.openBlock)(),(0,n.createElementBlock)(`p`,M,(0,n.toDisplayString)(e.description),1)):(0,n.createCommentVNode)(``,!0),t.$slots.action?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,N,[(0,n.renderSlot)(t.$slots,`action`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0)]))}}),[[`__scopeId`,`data-v-b8b16929`]]),F=c((0,n.defineComponent)({__name:`AkShimmer`,props:{width:{default:`100%`},height:{default:`16px`},radius:{default:`md`}},setup(e){function t(e){return e===`sm`||e===`md`||e===`lg`||e===`full`?`var(--radius-${e})`:e}return(r,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:`ak-shimmer`,style:(0,n.normalizeStyle)({width:e.width,height:e.height,borderRadius:t(e.radius)}),"aria-hidden":`true`},null,4))}}),[[`__scopeId`,`data-v-de7bd16d`]]),I=c((0,n.defineComponent)({__name:`AkAmbientBg`,props:{contained:{type:Boolean,default:!1}},setup(e){return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)([`ambient`,{"ambient--contained":e.contained}]),"aria-hidden":`true`},[...r[0]||=[(0,n.createElementVNode)(`span`,{class:`ambient__orb ambient__orb--1`},null,-1),(0,n.createElementVNode)(`span`,{class:`ambient__orb ambient__orb--2`},null,-1),(0,n.createElementVNode)(`span`,{class:`ambient__orb ambient__orb--3`},null,-1)]],2))}}),[[`__scopeId`,`data-v-b34dece3`]]),L=t({AkAmbientBg:()=>I,AkBadge:()=>u,AkButton:()=>l,AkCard:()=>_,AkChip:()=>f,AkEmptyState:()=>P,AkInput:()=>S,AkShimmer:()=>F,AkTextarea:()=>D}),R={install(e,t={}){let n=t.prefix??``;for(let[t,r]of Object.entries(L))e.component(`${n}${t}`,r)}};exports.AkAmbientBg=I,exports.AkBadge=u,exports.AkButton=l,exports.AkCard=_,exports.AkChip=f,exports.AkEmptyState=P,exports.AkInput=S,exports.AkShimmer=F,exports.AkTextarea=D,exports.Akoma=R;
package/dist/akoma.css ADDED
@@ -0,0 +1,2 @@
1
+ @import "https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400..700&family=Lora:ital,wght@0,500;0,600;1,500&display=swap";:root{--font-display:"DM Sans", system-ui, -apple-system, sans-serif;--font-body:"DM Sans", system-ui, -apple-system, sans-serif;--font-editorial:"Lora", Georgia, serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-full:9999px;--page-pad-x:20px;--page-pad-top:28px;--page-pad-bottom:24px;--shell-max:480px;--nav-height:68px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.22, 1, .36, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--transition:.18s cubic-bezier(.4, 0, .2, 1);--bg:#f8f6f1;--bg-elevated:#fffefa;--bg-soft:#f0ede6;--bg-muted:#e5e0d6;--bg-tinted:#f1eefb;--text:#29312d;--text-secondary:#65706a;--text-tertiary:#929b95;--text-inverse:#fffefa;--border:#29312d12;--border-strong:#29312d24;--accent:#6658b8;--accent-hover:#5548a3;--accent-soft:#ece9f8;--accent-contrast:#fff;--cat-1:#5d8ca8;--cat-2:#8a72b4;--cat-3:#b98136;--cat-4:#568269;--cat-5:#b86e7f;--cat-6:#7c7a72;--success:#327257;--success-soft:#e5f2eb;--warning:#8b641e;--warning-soft:#f8efd9;--danger:#a94f46;--danger-soft:#fae9e6;--info:#426f8e;--info-soft:#e6f0f6;--shadow-sm:0 1px 2px #312c230a, 0 8px 22px #312c230e;--shadow-md:0 2px 4px #312c230a, 0 18px 44px #312c2317;--shadow-nav:0 -8px 32px #312c2312;--radius-sm:12px;--radius-md:18px;--radius-lg:28px;--button-radius:var(--radius-full);--card-radius:24px;--field-radius:16px;--chip-radius:var(--radius-full);--badge-radius:var(--radius-full);--card-bg:var(--bg-elevated);--card-border:transparent;--card-shadow:var(--shadow-sm);--field-bg:var(--bg-soft);--field-bg-hover:var(--bg-muted);--field-border:transparent;--control-border:var(--border-strong);--focus-ring:0 0 0 4px #6658b826;--button-shadow:0 6px 18px #6658b833;--nav-glass:#fffefae6;--fill-strong:#29312d;--on-fill-strong:#fffefa;--toast-bg:#29312d;--toast-fg:#fffefa;--orb-1:#6658b821;--orb-2:#5682691f;--orb-3:#dda85e1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=app]{--bg:#f8f6f1;--bg-elevated:#fffefa;--bg-soft:#f0ede6;--bg-muted:#e5e0d6;--bg-tinted:#f1eefb;--text:#29312d;--text-secondary:#65706a;--text-tertiary:#929b95;--text-inverse:#fffefa;--border:#29312d12;--border-strong:#29312d24;--accent:#6658b8;--accent-hover:#5548a3;--accent-soft:#ece9f8;--accent-contrast:#fff;--shadow-sm:0 1px 2px #312c230a, 0 8px 22px #312c230e;--shadow-md:0 2px 4px #312c230a, 0 18px 44px #312c2317;--radius-sm:12px;--radius-md:18px;--radius-lg:28px;--button-radius:var(--radius-full);--card-radius:24px;--field-radius:16px;--chip-radius:var(--radius-full);--badge-radius:var(--radius-full);--card-bg:var(--bg-elevated);--card-border:transparent;--card-shadow:var(--shadow-sm);--field-bg:var(--bg-soft);--field-bg-hover:var(--bg-muted);--field-border:transparent;--focus-ring:0 0 0 4px #6658b826;--button-shadow:0 6px 18px #6658b833}[data-mood=site]{--bg:#f6f7f3;--bg-elevated:#fff;--bg-soft:#edf0ea;--bg-muted:#dfe4dc;--bg-tinted:#e8f0eb;--text:#213129;--text-secondary:#5b6a62;--text-tertiary:#8b978f;--text-inverse:#fff;--border:#21312914;--border-strong:#21312929;--accent:#2e684f;--accent-hover:#245640;--accent-soft:#e2eee7;--accent-contrast:#fff;--cat-1:#4f7f9b;--cat-2:#76639b;--cat-3:#9a702d;--cat-4:#3f7557;--cat-5:#9e596b;--cat-6:#6f756f;--success:#276a4a;--success-soft:#e2f0e8;--warning:#805d18;--warning-soft:#f5ecd4;--danger:#98483f;--danger-soft:#f8e7e4;--info:#386984;--info-soft:#e3eef4;--shadow-sm:0 1px 2px #1c302609, 0 5px 16px #1c30260b;--shadow-md:0 2px 4px #1c30260a, 0 14px 36px #1c302613;--shadow-nav:0 -6px 28px #1c30260e;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--button-radius:10px;--card-radius:16px;--field-radius:10px;--chip-radius:10px;--badge-radius:8px;--card-bg:var(--bg-elevated);--card-border:var(--border);--card-shadow:0 1px 2px #1c302606, 0 8px 24px #1c30260a;--field-bg:var(--bg-elevated);--field-bg-hover:var(--bg-elevated);--field-border:var(--border-strong);--control-border:var(--border-strong);--focus-ring:0 0 0 4px #2e684f21;--button-shadow:0 4px 12px #2e684f29;--nav-glass:#ffffffeb;--fill-strong:#213129;--on-fill-strong:#fff;--toast-bg:#213129;--toast-fg:#fff;--orb-1:#2e684f1a;--orb-2:#4f7f9b14;--orb-3:#9a702d12;--ease-spring:cubic-bezier(.2, .8, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#1d211f;--bg-elevated:#272c29;--bg-soft:#303632;--bg-muted:#3a413c;--bg-tinted:#312e40;--text:#f3f1ec;--text-secondary:#b4bbb6;--text-tertiary:#7f8983;--text-inverse:#202421;--border:#ffffff12;--border-strong:#ffffff24;--accent:#a99ee8;--accent-hover:#bbb2f0;--accent-soft:#39354f;--accent-contrast:#211d38;--success:#78b997;--success-soft:#283e32;--warning:#d4ad61;--warning-soft:#413823;--danger:#df8a81;--danger-soft:#472f2d;--info:#86afc8;--info-soft:#293b46;--shadow-sm:0 1px 2px #00000029, 0 8px 22px #00000024;--shadow-md:0 2px 4px #0000002e, 0 18px 44px #0000003d;--card-border:#ffffff0a;--field-border:#ffffff1a;--control-border:#ffffff24;--focus-ring:0 0 0 4px #a99ee82e;--button-shadow:0 6px 18px #00000038;--nav-glass:#272c29eb;--fill-strong:#f3f1ec;--on-fill-strong:#202421;--toast-bg:#f3f1ec;--toast-fg:#202421;--orb-1:#a99ee81c;--orb-2:#78b99717;--orb-3:#d4ad6114;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-mood=site][data-theme=dark]{--bg:#19211d;--bg-elevated:#232d28;--bg-soft:#2b3731;--bg-muted:#35433b;--bg-tinted:#263b31;--text:#f0f3f0;--text-secondary:#abb7b0;--text-tertiary:#77867d;--text-inverse:#17201b;--accent:#82b99d;--accent-hover:#96c6ae;--accent-soft:#294438;--accent-contrast:#13241c;--success:#76b792;--success-soft:#274236;--warning:#d0ab62;--warning-soft:#413824;--danger:#dc8b82;--danger-soft:#472f2d;--info:#84adc4;--info-soft:#293d47;--shadow-sm:0 1px 2px #00000029, 0 6px 18px #00000021;--shadow-md:0 2px 4px #0000002e, 0 16px 40px #00000038;--card-border:#fff1;--card-shadow:0 1px 2px #0000001f, 0 8px 24px #0000001f;--field-border:#ffffff21;--control-border:#ffffff24;--focus-ring:0 0 0 4px #82b99d29;--button-shadow:0 4px 12px #0003;--nav-glass:#232d28eb;--fill-strong:#f0f3f0;--on-fill-strong:#17201b;--toast-bg:#f0f3f0;--toast-fg:#17201b;--orb-1:#82b99d17;--orb-2:#84adc412;--orb-3:#d0ab620f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}html,body,#app{transition:background-color .28s var(--ease-smooth), color .28s var(--ease-smooth)}body{min-height:100dvh;color:var(--text);background:var(--bg);font-family:var(--font-body);font-feature-settings:"kern" 1, "liga" 1;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:15px;font-weight:400;line-height:1.6;overflow-x:hidden}#app{min-height:100dvh}h1,h2,h3,h4{color:var(--text);font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;font-weight:650;line-height:1.16}p{text-wrap:pretty}button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0}input,textarea,select{color:inherit;font:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}code,pre{font-family:var(--font-mono)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-label{margin-bottom:var(--space-2);color:var(--accent);letter-spacing:.01em;font-size:13px;font-weight:700;display:block}.page-title{max-width:18ch;font-family:var(--font-display);letter-spacing:-.045em;font-size:clamp(34px,7vw,46px);font-weight:650;line-height:1.08}[data-mood=site] .page-title{letter-spacing:-.035em;font-size:clamp(34px,6vw,44px)}.akoma-page{padding:calc(var(--page-pad-top) + var(--safe-top)) var(--page-pad-x) var(--page-pad-bottom)}.akoma-shell{z-index:1;width:100%;max-width:var(--shell-max);padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 12px);flex:1;margin:0 auto;position:relative}.numeric{font-variant-numeric:tabular-nums lining-nums}@media (prefers-reduced-motion:reduce){html,body,#app{transition:none}}.ambient{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.ambient__orb{filter:blur(60px);opacity:.45;border-radius:50%;animation:18s ease-in-out infinite ambient-drift;position:absolute}.ambient__orb--1{background:var(--orb-1);width:280px;height:280px;top:-80px;right:-60px}.ambient__orb--2{background:var(--orb-2);width:220px;height:220px;animation-duration:22s;animation-delay:-6s;bottom:120px;left:-80px}.ambient__orb--3{background:var(--orb-3);width:160px;height:160px;animation-duration:16s;animation-delay:-12s;top:40%;right:10%}@keyframes ambient-drift{0%,to{transform:translate(0)scale(1)}33%{transform:translate(12px,-18px)scale(1.05)}66%{transform:translate(-10px,14px)scale(.95)}}.page-slide-left-enter-active,.page-slide-left-leave-active,.page-slide-right-enter-active,.page-slide-right-leave-active,.page-fade-enter-active,.page-fade-leave-active{transition:opacity .28s var(--ease-out-expo), transform .32s var(--ease-out-expo)}.page-slide-left-enter-from{opacity:0;transform:translate(28px)}.page-slide-left-leave-to{opacity:0;transform:translate(-20px)}.page-slide-right-enter-from{opacity:0;transform:translate(-28px)}.page-slide-right-leave-to{opacity:0;transform:translate(20px)}.page-fade-enter-from,.page-fade-leave-to{opacity:0;transform:translateY(8px)}.reveal{animation:reveal-up .55s var(--ease-out-expo) both}.reveal-d1{animation-delay:60ms}.reveal-d2{animation-delay:.12s}.reveal-d3{animation-delay:.18s}.reveal-d4{animation-delay:.24s}.reveal-d5{animation-delay:.3s}.reveal-d6{animation-delay:.36s}@keyframes reveal-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.list-enter-active{transition:opacity .35s var(--ease-out-expo), transform .4s var(--ease-spring)}.list-leave-active{width:calc(100% - 40px);transition:opacity .2s,transform .25s;position:absolute}.list-enter-from{opacity:0;transform:translateY(12px)scale(.97)}.list-leave-to{opacity:0;transform:scale(.95)}.list-move{transition:transform .4s var(--ease-out-expo)}.tap-scale{transition:transform .18s var(--ease-spring)}.tap-scale:active{transform:scale(.985)}.toast-pop-enter-active{animation:toast-in .45s var(--ease-spring)}.toast-pop-leave-active{animation:toast-out .3s var(--ease-smooth) forwards}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(20px)scale(.85)}60%{transform:translate(-50%)translateY(-4px)scale(1.02)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes toast-out{to{opacity:0;transform:translate(-50%)translateY(12px)scale(.9)}}@media (prefers-reduced-motion:reduce){.ambient__orb,.reveal,.page-slide-left-enter-active,.page-slide-left-leave-active,.page-slide-right-enter-active,.page-slide-right-leave-active,.page-fade-enter-active,.page-fade-leave-active,.list-enter-active,.list-leave-active,.list-move,.toast-pop-enter-active,.toast-pop-leave-active{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}.ak-button[data-v-78a39ccd]{font-family:var(--font-body);letter-spacing:-.01em;border-radius:var(--button-radius);cursor:pointer;transition:background-color var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition), opacity var(--transition), transform var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-weight:650;display:inline-flex;position:relative}.ak-button[data-v-78a39ccd]:hover:not(:disabled){transform:translateY(-1px)}.ak-button[data-v-78a39ccd]:active:not(:disabled){transform:translateY(0)scale(.985)}.ak-button[data-v-78a39ccd]:focus-visible{box-shadow:var(--focus-ring);outline:none}.ak-button[data-v-78a39ccd]:disabled{opacity:.46;cursor:not-allowed;transform:none!important}.ak-button--block[data-v-78a39ccd]{width:100%}.ak-button--sm[data-v-78a39ccd]{min-height:34px;padding:0 15px;font-size:13px}.ak-button--md[data-v-78a39ccd]{min-height:42px;padding:0 20px;font-size:14px}.ak-button--lg[data-v-78a39ccd]{min-height:50px;padding:0 24px;font-size:15px}.ak-button--primary[data-v-78a39ccd]{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--button-shadow)}.ak-button--primary[data-v-78a39ccd]:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--button-shadow)}.ak-button--secondary[data-v-78a39ccd]{background:var(--bg-elevated);color:var(--text);border-color:var(--control-border)}.ak-button--secondary[data-v-78a39ccd]:hover:not(:disabled){background:var(--bg-soft);border-color:#0000}.ak-button--ghost[data-v-78a39ccd]{color:var(--accent);background:0 0}.ak-button--ghost[data-v-78a39ccd]:hover:not(:disabled){background:var(--accent-soft)}.ak-button--danger[data-v-78a39ccd]{background:var(--danger);color:var(--accent-contrast);box-shadow:0 4px 14px color-mix(in srgb, var(--danger) 22%, transparent)}.ak-button--danger[data-v-78a39ccd]:hover:not(:disabled){filter:brightness(.95)}.ak-button__icon[data-v-78a39ccd]{width:1.1em;height:1.1em;display:inline-flex}.ak-button__icon[data-v-78a39ccd] svg{width:100%;height:100%}.ak-button__spinner[data-v-78a39ccd]{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.7s linear infinite ak-spin-78a39ccd}.ak-button--loading .ak-button__label[data-v-78a39ccd]{opacity:.85}@keyframes ak-spin-78a39ccd{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ak-button[data-v-78a39ccd]{transition:none}.ak-button__spinner[data-v-78a39ccd]{opacity:.6;border-right-color:currentColor;animation:none}}.ak-badge[data-v-02933f09]{border-radius:var(--badge-radius);letter-spacing:.005em;align-self:flex-start;align-items:center;width:fit-content;min-height:24px;padding:3px 9px;font-size:11.5px;font-weight:650;line-height:1.3;display:inline-flex}.ak-badge--neutral[data-v-02933f09]{background:var(--bg-soft);color:var(--text-secondary)}.ak-badge--accent[data-v-02933f09]{background:var(--accent-soft);color:var(--accent)}.ak-badge--success[data-v-02933f09]{background:var(--success-soft);color:var(--success)}.ak-badge--warning[data-v-02933f09]{background:var(--warning-soft);color:var(--warning)}.ak-badge--danger[data-v-02933f09]{background:var(--danger-soft);color:var(--danger)}.ak-badge--info[data-v-02933f09]{background:var(--info-soft);color:var(--info)}.ak-chip[data-v-c782362c]{border-radius:var(--chip-radius);min-height:36px;font-family:var(--font-body);color:var(--text-secondary);background:var(--bg-soft);cursor:pointer;transition:background-color var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 15px;font-size:13px;font-weight:650;line-height:1.2;display:inline-flex}.ak-chip[data-v-c782362c]:hover:not(:disabled):not(.ak-chip--active){background:var(--bg-muted);color:var(--text)}.ak-chip--active[data-v-c782362c]{background:var(--ak-chip-active-bg,var(--accent-soft));color:var(--accent);border-color:color-mix(in srgb, var(--accent) 10%, transparent)}.ak-chip--active[style*=--ak-chip-active-bg][data-v-c782362c]{color:var(--accent-contrast)}.ak-chip[data-v-c782362c]:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.ak-chip[data-v-c782362c]:focus-visible{box-shadow:var(--focus-ring);outline:none}.ak-card[data-v-0eb2f676]{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);width:100%;box-shadow:var(--card-shadow);flex-direction:column;display:flex;overflow:hidden}.ak-card--pad-none[data-v-0eb2f676]{padding:0}.ak-card--pad-sm[data-v-0eb2f676]{padding:var(--space-4)}.ak-card--pad-md[data-v-0eb2f676]{padding:var(--space-5)}.ak-card--pad-lg[data-v-0eb2f676]{padding:var(--space-8)}.ak-card--pad-none .ak-card__body[data-v-0eb2f676],.ak-card--pad-none .ak-card__header[data-v-0eb2f676],.ak-card--pad-none .ak-card__footer[data-v-0eb2f676]{padding-left:18px;padding-right:18px}.ak-card--pad-none .ak-card__header[data-v-0eb2f676]{padding-top:16px}.ak-card--pad-none .ak-card__body[data-v-0eb2f676]{padding-bottom:16px}.ak-card--pad-none .ak-card__footer[data-v-0eb2f676]{padding-bottom:18px}.ak-card--interactive[data-v-0eb2f676]{cursor:pointer;transition:border-color var(--transition), box-shadow .22s var(--ease-out-expo), transform .22s var(--ease-out-expo)}.ak-card--interactive[data-v-0eb2f676]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.ak-card--interactive[data-v-0eb2f676]:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.ak-card__media[data-v-0eb2f676]{flex-shrink:0}.ak-card__header[data-v-0eb2f676]{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.ak-card__body[data-v-0eb2f676]{flex:1;min-width:0}.ak-card__footer[data-v-0eb2f676]{margin-top:var(--space-5);align-items:center;gap:var(--space-2);display:flex}@media (prefers-reduced-motion:reduce){.ak-card--interactive[data-v-0eb2f676]{transition:none}}.ak-field[data-v-60d7d2d0]{flex-direction:column;gap:7px;width:100%;display:flex}.ak-field__label[data-v-60d7d2d0]{color:var(--text);letter-spacing:-.005em;font-size:13px;font-weight:650}.ak-field__required[data-v-60d7d2d0]{color:var(--danger);margin-left:2px}.ak-field__control[data-v-60d7d2d0]{border-radius:var(--field-radius);background:var(--field-bg);border:1px solid var(--field-border);width:100%;color:var(--text);transition:border-color var(--transition), box-shadow var(--transition), background-color var(--transition);outline:none}.ak-field__control[data-v-60d7d2d0]::placeholder{color:var(--text-tertiary)}.ak-field__control--sm[data-v-60d7d2d0]{min-height:38px;padding:8px 13px;font-size:14px}.ak-field__control--md[data-v-60d7d2d0]{min-height:44px;padding:11px 15px;font-size:15px}.ak-field__control--lg[data-v-60d7d2d0]{min-height:50px;padding:13px 17px;font-size:16px}.ak-field__control[data-v-60d7d2d0]:hover:not(:disabled):not(:focus){background:var(--field-bg-hover);border-color:var(--control-border)}.ak-field__control[data-v-60d7d2d0]:focus{background:var(--bg-elevated);border-color:var(--accent);box-shadow:var(--focus-ring)}.ak-field--error .ak-field__control[data-v-60d7d2d0]{border-color:var(--danger);background:var(--bg-elevated)}.ak-field--error .ak-field__control[data-v-60d7d2d0]:focus{box-shadow:0 0 0 4px color-mix(in srgb, var(--danger) 14%, transparent)}.ak-field--disabled[data-v-60d7d2d0]{opacity:.6}.ak-field__hint[data-v-60d7d2d0]{color:var(--text-tertiary);padding-left:1px;font-size:12px}.ak-field--error .ak-field__hint[data-v-60d7d2d0]{color:var(--danger)}.ak-field[data-v-d34da198]{flex-direction:column;gap:7px;width:100%;display:flex}.ak-field__label[data-v-d34da198]{color:var(--text);letter-spacing:-.005em;font-size:13px;font-weight:650}.ak-field__required[data-v-d34da198]{color:var(--danger);margin-left:2px}.ak-field__control[data-v-d34da198]{border-radius:var(--field-radius);background:var(--field-bg);border:1px solid var(--field-border);width:100%;min-height:100px;color:var(--text);resize:vertical;transition:border-color var(--transition), box-shadow var(--transition), background-color var(--transition);outline:none;padding:12px 15px;font-size:15px;line-height:1.6}.ak-field__control[data-v-d34da198]::placeholder{color:var(--text-tertiary)}.ak-field__control[data-v-d34da198]:hover:not(:disabled):not(:focus){background:var(--field-bg-hover);border-color:var(--control-border)}.ak-field__control[data-v-d34da198]:focus{background:var(--bg-elevated);border-color:var(--accent);box-shadow:var(--focus-ring)}.ak-field--error .ak-field__control[data-v-d34da198]{border-color:var(--danger);background:var(--bg-elevated)}.ak-field--error .ak-field__control[data-v-d34da198]:focus{box-shadow:0 0 0 4px color-mix(in srgb, var(--danger) 14%, transparent)}.ak-field--disabled[data-v-d34da198]{opacity:.6}.ak-field__hint[data-v-d34da198]{color:var(--text-tertiary);padding-left:1px;font-size:12px}.ak-field--error .ak-field__hint[data-v-d34da198]{color:var(--danger)}.ak-empty[data-v-b8b16929]{text-align:center;padding:var(--space-12) var(--space-8);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);flex-direction:column;align-items:center;display:flex}.ak-empty__icon[data-v-b8b16929]{width:76px;height:70px;margin-bottom:var(--space-5);place-items:center;animation:4s ease-in-out infinite ak-empty-float-b8b16929;display:grid;position:relative}.ak-empty__ring[data-v-b8b16929]{transition:transform .32s var(--ease-out-expo);border:0;position:absolute}.ak-empty__ring--outer[data-v-b8b16929]{background:var(--accent-soft);border-radius:46% 54% 61% 39%/52% 42% 58% 48%;inset:3px 1px 0 4px;transform:rotate(-5deg)}.ak-empty__ring--inner[data-v-b8b16929]{background:color-mix(in srgb, var(--accent) 14%, var(--bg-elevated));border-radius:55% 45% 42% 58%/44% 56% 46% 54%;inset:16px 14px 13px 16px;transform:rotate(8deg)}.ak-empty__glyph[data-v-b8b16929]{z-index:1;color:var(--accent);width:21px;height:21px;display:inline-flex;position:relative}.ak-empty__glyph[data-v-b8b16929] svg{width:100%;height:100%}.ak-empty__title[data-v-b8b16929]{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text);margin-bottom:var(--space-2);font-size:20px;font-weight:650}.ak-empty__description[data-v-b8b16929]{color:var(--text-secondary);max-width:280px;font-size:14px;line-height:1.55}.ak-empty__action[data-v-b8b16929]{margin-top:var(--space-6)}@keyframes ak-empty-float-b8b16929{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)rotate(1deg)}}@media (prefers-reduced-motion:reduce){.ak-empty__icon[data-v-b8b16929]{animation:none}}.ak-shimmer[data-v-de7bd16d]{background:linear-gradient(90deg, var(--bg-muted) 0%, var(--bg-soft) 45%, var(--bg-muted) 90%);background-size:200% 100%;animation:1.4s ease-in-out infinite ak-shimmer-de7bd16d;display:block}@keyframes ak-shimmer-de7bd16d{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.ak-shimmer[data-v-de7bd16d]{animation:none}}.ambient--contained[data-v-b34dece3]{position:absolute}
2
+ /*$vite$:1*/
package/dist/akoma.js ADDED
@@ -0,0 +1,348 @@
1
+ import { computed as e, createCommentVNode as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, defineComponent as a, normalizeClass as o, normalizeStyle as s, openBlock as c, renderSlot as l, toDisplayString as u, useId as d } from "vue";
2
+ //#region \0rolldown/runtime.js
3
+ var f = Object.defineProperty, p = (e, t) => {
4
+ let n = {};
5
+ for (var r in e) f(n, r, {
6
+ get: e[r],
7
+ enumerable: !0
8
+ });
9
+ return t || f(n, Symbol.toStringTag, { value: "Module" }), n;
10
+ }, m = [
11
+ "type",
12
+ "disabled",
13
+ "aria-busy"
14
+ ], h = {
15
+ key: 0,
16
+ class: "ak-button__spinner",
17
+ "aria-hidden": "true"
18
+ }, g = {
19
+ key: 1,
20
+ class: "ak-button__icon"
21
+ }, _ = { class: "ak-button__label" }, v = /*@__PURE__*/ a({
22
+ __name: "AkButton",
23
+ props: {
24
+ variant: { default: "primary" },
25
+ size: { default: "md" },
26
+ disabled: {
27
+ type: Boolean,
28
+ default: !1
29
+ },
30
+ loading: {
31
+ type: Boolean,
32
+ default: !1
33
+ },
34
+ type: { default: "button" },
35
+ block: {
36
+ type: Boolean,
37
+ default: !1
38
+ }
39
+ },
40
+ setup(e) {
41
+ return (i, a) => (c(), n("button", {
42
+ class: o(["ak-button tap-scale", [
43
+ `ak-button--${e.variant}`,
44
+ `ak-button--${e.size}`,
45
+ {
46
+ "ak-button--block": e.block,
47
+ "ak-button--loading": e.loading
48
+ }
49
+ ]]),
50
+ type: e.type,
51
+ disabled: e.disabled || e.loading,
52
+ "aria-busy": e.loading || void 0
53
+ }, [
54
+ e.loading ? (c(), n("span", h)) : t("", !0),
55
+ i.$slots.icon && !e.loading ? (c(), n("span", g, [l(i.$slots, "icon", {}, void 0, !0)])) : t("", !0),
56
+ r("span", _, [l(i.$slots, "default", {}, void 0, !0)])
57
+ ], 10, m));
58
+ }
59
+ }), y = (e, t) => {
60
+ let n = e.__vccOpts || e;
61
+ for (let [e, r] of t) n[e] = r;
62
+ return n;
63
+ }, b = /*#__PURE__*/ y(v, [["__scopeId", "data-v-78a39ccd"]]), x = /*#__PURE__*/ y(/* @__PURE__ */ a({
64
+ __name: "AkBadge",
65
+ props: {
66
+ variant: { default: "neutral" },
67
+ label: {}
68
+ },
69
+ setup(e) {
70
+ return (t, r) => (c(), n("span", { class: o(["ak-badge", `ak-badge--${e.variant}`]) }, [l(t.$slots, "default", {}, () => [i(u(e.label), 1)], !0)], 2));
71
+ }
72
+ }), [["__scopeId", "data-v-02933f09"]]), S = ["disabled", "aria-pressed"], C = /*#__PURE__*/ y(/* @__PURE__ */ a({
73
+ __name: "AkChip",
74
+ props: {
75
+ active: {
76
+ type: Boolean,
77
+ default: !1
78
+ },
79
+ disabled: {
80
+ type: Boolean,
81
+ default: !1
82
+ },
83
+ color: {}
84
+ },
85
+ emits: ["click"],
86
+ setup(e, { emit: t }) {
87
+ let r = t;
88
+ return (t, i) => (c(), n("button", {
89
+ type: "button",
90
+ class: o(["ak-chip tap-scale", { "ak-chip--active": e.active }]),
91
+ style: s(e.active && e.color ? { "--ak-chip-active-bg": e.color } : void 0),
92
+ disabled: e.disabled,
93
+ "aria-pressed": e.active,
94
+ onClick: i[0] ||= (e) => r("click", e)
95
+ }, [l(t.$slots, "default", {}, void 0, !0)], 14, S));
96
+ }
97
+ }), [["__scopeId", "data-v-c782362c"]]), w = {
98
+ key: 0,
99
+ class: "ak-card__media"
100
+ }, T = {
101
+ key: 1,
102
+ class: "ak-card__header"
103
+ }, E = {
104
+ key: 2,
105
+ class: "ak-card__body"
106
+ }, D = {
107
+ key: 3,
108
+ class: "ak-card__footer"
109
+ }, O = /*#__PURE__*/ y(/* @__PURE__ */ a({
110
+ __name: "AkCard",
111
+ props: {
112
+ interactive: {
113
+ type: Boolean,
114
+ default: !1
115
+ },
116
+ padding: { default: "md" }
117
+ },
118
+ setup(e) {
119
+ return (r, i) => (c(), n("article", { class: o(["ak-card", [`ak-card--pad-${e.padding}`, { "ak-card--interactive tap-scale": e.interactive }]]) }, [
120
+ r.$slots.media ? (c(), n("div", w, [l(r.$slots, "media", {}, void 0, !0)])) : t("", !0),
121
+ r.$slots.header ? (c(), n("div", T, [l(r.$slots, "header", {}, void 0, !0)])) : t("", !0),
122
+ r.$slots.default ? (c(), n("div", E, [l(r.$slots, "default", {}, void 0, !0)])) : t("", !0),
123
+ r.$slots.footer ? (c(), n("div", D, [l(r.$slots, "footer", {}, void 0, !0)])) : t("", !0)
124
+ ], 2));
125
+ }
126
+ }), [["__scopeId", "data-v-0eb2f676"]]), k = {
127
+ key: 0,
128
+ class: "ak-field__label"
129
+ }, A = {
130
+ key: 0,
131
+ class: "ak-field__required",
132
+ "aria-hidden": "true"
133
+ }, j = [
134
+ "id",
135
+ "type",
136
+ "value",
137
+ "placeholder",
138
+ "disabled",
139
+ "required",
140
+ "name",
141
+ "autocomplete",
142
+ "aria-invalid",
143
+ "aria-describedby"
144
+ ], M = ["id"], N = /*#__PURE__*/ y(/* @__PURE__ */ a({
145
+ __name: "AkInput",
146
+ props: {
147
+ modelValue: { default: "" },
148
+ label: {},
149
+ placeholder: {},
150
+ hint: {},
151
+ error: {},
152
+ type: { default: "text" },
153
+ disabled: {
154
+ type: Boolean,
155
+ default: !1
156
+ },
157
+ required: {
158
+ type: Boolean,
159
+ default: !1
160
+ },
161
+ size: { default: "md" },
162
+ autocomplete: {},
163
+ name: {}
164
+ },
165
+ emits: ["update:modelValue"],
166
+ setup(a, { emit: s }) {
167
+ let l = a, f = s, p = d(), m = e(() => `ak-input-${p}`), h = e(() => l.hint || l.error ? `ak-input-hint-${p}` : void 0);
168
+ function g(e) {
169
+ let t = e.target;
170
+ f("update:modelValue", t.value);
171
+ }
172
+ return (e, s) => (c(), n("label", { class: o(["ak-field", {
173
+ "ak-field--disabled": a.disabled,
174
+ "ak-field--error": !!a.error
175
+ }]) }, [
176
+ a.label ? (c(), n("span", k, [i(u(a.label) + " ", 1), a.required ? (c(), n("span", A, "*")) : t("", !0)])) : t("", !0),
177
+ r("input", {
178
+ id: m.value,
179
+ class: o(["ak-field__control", `ak-field__control--${a.size}`]),
180
+ type: a.type,
181
+ value: a.modelValue,
182
+ placeholder: a.placeholder,
183
+ disabled: a.disabled,
184
+ required: a.required,
185
+ name: a.name,
186
+ autocomplete: a.autocomplete,
187
+ "aria-invalid": !!a.error || void 0,
188
+ "aria-describedby": h.value,
189
+ onInput: g
190
+ }, null, 42, j),
191
+ a.error || a.hint ? (c(), n("span", {
192
+ key: 1,
193
+ id: h.value,
194
+ class: "ak-field__hint"
195
+ }, u(a.error || a.hint), 9, M)) : t("", !0)
196
+ ], 2));
197
+ }
198
+ }), [["__scopeId", "data-v-60d7d2d0"]]), P = {
199
+ key: 0,
200
+ class: "ak-field__label"
201
+ }, F = {
202
+ key: 0,
203
+ class: "ak-field__required",
204
+ "aria-hidden": "true"
205
+ }, I = [
206
+ "id",
207
+ "value",
208
+ "placeholder",
209
+ "disabled",
210
+ "required",
211
+ "name",
212
+ "rows",
213
+ "aria-invalid",
214
+ "aria-describedby"
215
+ ], L = ["id"], R = /*#__PURE__*/ y(/* @__PURE__ */ a({
216
+ __name: "AkTextarea",
217
+ props: {
218
+ modelValue: { default: "" },
219
+ label: {},
220
+ placeholder: {},
221
+ hint: {},
222
+ error: {},
223
+ disabled: {
224
+ type: Boolean,
225
+ default: !1
226
+ },
227
+ required: {
228
+ type: Boolean,
229
+ default: !1
230
+ },
231
+ rows: { default: 4 },
232
+ name: {}
233
+ },
234
+ emits: ["update:modelValue"],
235
+ setup(a, { emit: s }) {
236
+ let l = a, f = s, p = d(), m = e(() => `ak-textarea-${p}`), h = e(() => l.hint || l.error ? `ak-textarea-hint-${p}` : void 0);
237
+ function g(e) {
238
+ let t = e.target;
239
+ f("update:modelValue", t.value);
240
+ }
241
+ return (e, s) => (c(), n("label", { class: o(["ak-field", {
242
+ "ak-field--disabled": a.disabled,
243
+ "ak-field--error": !!a.error
244
+ }]) }, [
245
+ a.label ? (c(), n("span", P, [i(u(a.label) + " ", 1), a.required ? (c(), n("span", F, "*")) : t("", !0)])) : t("", !0),
246
+ r("textarea", {
247
+ id: m.value,
248
+ class: "ak-field__control",
249
+ value: a.modelValue,
250
+ placeholder: a.placeholder,
251
+ disabled: a.disabled,
252
+ required: a.required,
253
+ name: a.name,
254
+ rows: a.rows,
255
+ "aria-invalid": !!a.error || void 0,
256
+ "aria-describedby": h.value,
257
+ onInput: g
258
+ }, null, 40, I),
259
+ a.error || a.hint ? (c(), n("span", {
260
+ key: 1,
261
+ id: h.value,
262
+ class: "ak-field__hint"
263
+ }, u(a.error || a.hint), 9, L)) : t("", !0)
264
+ ], 2));
265
+ }
266
+ }), [["__scopeId", "data-v-d34da198"]]), z = { class: "ak-empty" }, B = {
267
+ class: "ak-empty__icon",
268
+ "aria-hidden": "true"
269
+ }, V = {
270
+ key: 0,
271
+ class: "ak-empty__glyph"
272
+ }, H = { class: "ak-empty__title" }, U = {
273
+ key: 0,
274
+ class: "ak-empty__description"
275
+ }, W = {
276
+ key: 1,
277
+ class: "ak-empty__action"
278
+ }, G = /*#__PURE__*/ y(/* @__PURE__ */ a({
279
+ __name: "AkEmptyState",
280
+ props: {
281
+ title: {},
282
+ description: {}
283
+ },
284
+ setup(e) {
285
+ return (i, a) => (c(), n("div", z, [
286
+ r("div", B, [
287
+ a[0] ||= r("span", { class: "ak-empty__ring ak-empty__ring--outer" }, null, -1),
288
+ a[1] ||= r("span", { class: "ak-empty__ring ak-empty__ring--inner" }, null, -1),
289
+ i.$slots.icon ? (c(), n("span", V, [l(i.$slots, "icon", {}, void 0, !0)])) : t("", !0)
290
+ ]),
291
+ r("h3", H, u(e.title), 1),
292
+ e.description ? (c(), n("p", U, u(e.description), 1)) : t("", !0),
293
+ i.$slots.action ? (c(), n("div", W, [l(i.$slots, "action", {}, void 0, !0)])) : t("", !0)
294
+ ]));
295
+ }
296
+ }), [["__scopeId", "data-v-b8b16929"]]), K = /*#__PURE__*/ y(/* @__PURE__ */ a({
297
+ __name: "AkShimmer",
298
+ props: {
299
+ width: { default: "100%" },
300
+ height: { default: "16px" },
301
+ radius: { default: "md" }
302
+ },
303
+ setup(e) {
304
+ function t(e) {
305
+ return e === "sm" || e === "md" || e === "lg" || e === "full" ? `var(--radius-${e})` : e;
306
+ }
307
+ return (r, i) => (c(), n("div", {
308
+ class: "ak-shimmer",
309
+ style: s({
310
+ width: e.width,
311
+ height: e.height,
312
+ borderRadius: t(e.radius)
313
+ }),
314
+ "aria-hidden": "true"
315
+ }, null, 4));
316
+ }
317
+ }), [["__scopeId", "data-v-de7bd16d"]]), q = /*#__PURE__*/ y(/* @__PURE__ */ a({
318
+ __name: "AkAmbientBg",
319
+ props: { contained: {
320
+ type: Boolean,
321
+ default: !1
322
+ } },
323
+ setup(e) {
324
+ return (t, i) => (c(), n("div", {
325
+ class: o(["ambient", { "ambient--contained": e.contained }]),
326
+ "aria-hidden": "true"
327
+ }, [...i[0] ||= [
328
+ r("span", { class: "ambient__orb ambient__orb--1" }, null, -1),
329
+ r("span", { class: "ambient__orb ambient__orb--2" }, null, -1),
330
+ r("span", { class: "ambient__orb ambient__orb--3" }, null, -1)
331
+ ]], 2));
332
+ }
333
+ }), [["__scopeId", "data-v-b34dece3"]]), J = /* @__PURE__ */ p({
334
+ AkAmbientBg: () => q,
335
+ AkBadge: () => x,
336
+ AkButton: () => b,
337
+ AkCard: () => O,
338
+ AkChip: () => C,
339
+ AkEmptyState: () => G,
340
+ AkInput: () => N,
341
+ AkShimmer: () => K,
342
+ AkTextarea: () => R
343
+ }), Y = { install(e, t = {}) {
344
+ let n = t.prefix ?? "";
345
+ for (let [t, r] of Object.entries(J)) e.component(`${n}${t}`, r);
346
+ } };
347
+ //#endregion
348
+ export { q as AkAmbientBg, x as AkBadge, b as AkButton, O as AkCard, C as AkChip, G as AkEmptyState, N as AkInput, K as AkShimmer, R as AkTextarea, Y as Akoma };
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
package/dist/icons.svg ADDED
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <symbol id="bluesky-icon" viewBox="0 0 16 17">
3
+ <g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
4
+ <defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
5
+ </symbol>
6
+ <symbol id="discord-icon" viewBox="0 0 20 19">
7
+ <path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
8
+ </symbol>
9
+ <symbol id="documentation-icon" viewBox="0 0 21 20">
10
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
11
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
12
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
13
+ </symbol>
14
+ <symbol id="github-icon" viewBox="0 0 19 19">
15
+ <path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
16
+ </symbol>
17
+ <symbol id="social-icon" viewBox="0 0 20 20">
18
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
19
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
20
+ </symbol>
21
+ <symbol id="x-icon" viewBox="0 0 19 19">
22
+ <path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
23
+ </symbol>
24
+ </svg>