@kernel4632/kima 0.6.0 → 0.6.1

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 CHANGED
@@ -2,166 +2,209 @@
2
2
 
3
3
  **K**inetic · **I**nteraction · **M**otion · **A**live。
4
4
 
5
- 面向高专注 Web 应用的 UI 设计系统。Vue 3 + JavaScript + SCSS,提供 Vue 组件与无需框架的原生自定义元素。大控件、低密度、Material You 动态主题;文档站也使用 KIMA 自身控件。
5
+ KIMA 是面向 Web 应用的 UI 设计系统与组件库,提供 **Vue 组件**与可在原生网页中使用的 **Web Components**。
6
6
 
7
- ## 发布状态
7
+ 以 Material You 为设计参考,KIMA 采用大控件、宽松布局和圆角表面,用动效引导注意力,让交互反馈清晰、自然。
8
8
 
9
- 包名为 `@kernel4632/kima`,当前版本见 [`package.json`](https://github.com/kernel4632/kima/blob/main/package.json)。当前仍在首次公开发布准备阶段,**没有执行 npm 发布**。发布审查时公共 registry 查询返回 404、身份检查返回 401;发布前需要有效登录与 scope 权限,404 本身不证明拥有发布权限。下面的 registry 安装命令用于发布后;现在可先打包并安装 tarball。
9
+ ## 特性
10
+
11
+ - **两种接入方式**:Vue 中按需导入,或使用自定义元素接入其他 Web 项目。
12
+ - **动态主题**:由单一种子色生成品牌配色,支持深浅主题;成功、警告和危险色保留语义。
13
+ - **交互反馈**:状态层、焦点提示、涟漪与过渡动效,兼顾鼠标、触屏和键盘操作。
14
+ - **从基础到内容**:包含输入、导航、弹层、数据展示,以及代码和富文本编辑等组件。
15
+ - **统一视觉**:通过 CSS 变量控制颜色、字体、形状和间距,适配应用自身的主题。
10
16
 
11
17
  ## 安装
12
18
 
13
- 发布后:
19
+ 使用 npm、pnpm 或其他兼容 npm 的包管理器:
14
20
 
15
21
  ```sh
16
- pnpm add @kernel4632/kima vue
22
+ npm install @kernel4632/kima vue
17
23
  ```
18
24
 
19
- 发布前、本地验证:
20
-
21
25
  ```sh
22
- pnpm install
23
- pnpm build:lib
24
- pnpm verify:lib
25
- pnpm verify:install
26
- # 将 artifacts/kernel4632-kima-0.6.0.tgz 拷到其他项目
27
- pnpm add ./kernel4632-kima-0.6.0.tgz vue
26
+ pnpm add @kernel4632/kima vue
28
27
  ```
29
28
 
30
- `verify:install` 真正创建隔离消费者,安装打包文件,构建并在浏览器中操作 Vue 与原生元素生产页面,不从仓库源码导入。
29
+ Vue 组件需要宿主提供兼容的 Vue 3 运行时,版本要求见 [peerDependencies](https://github.com/kernel4632/kima/blob/main/package.json#L91)。自定义元素入口已内置运行时,页面代码无需调用 Vue API。
31
30
 
32
- ## Vue 使用
31
+ ## 在 Vue 中使用
33
32
 
34
- Vue 3.5.42 及以上的 3.x 版本,Vue 运行时由宿主提供。仅提供 ESM 与 JavaScript,不提供 CommonJS 或 TypeScript 类型声明。包不包含宿主 reset 或预览页壁纸;样式会声明根级 KIMA token,并作用于 KIMA 命名空间。
33
+ 按需导入组件,并在应用入口引入一次组件样式:
35
34
 
36
35
  ```vue
37
36
  <script setup>
37
+ import { ref } from 'vue';
38
38
  import { KimaButton, KimaTextField } from '@kernel4632/kima';
39
39
  import '@kernel4632/kima/style.css';
40
- import { ref } from 'vue';
40
+
41
41
  const name = ref('');
42
+ const savedName = ref('');
42
43
  </script>
43
44
 
44
45
  <template>
45
- <KimaTextField v-model="name" label="名称" placeholder="输入名称" />
46
- <KimaButton>保存</KimaButton>
46
+ <form @submit.prevent="savedName = name">
47
+ <p>名称</p>
48
+ <KimaTextField
49
+ v-model="name"
50
+ label="名称"
51
+ placeholder="输入名称"
52
+ />
53
+ <KimaButton type="submit">保存</KimaButton>
54
+ <p v-if="savedName">已保存:{{ savedName }}</p>
55
+ </form>
47
56
  </template>
48
57
  ```
49
58
 
50
- ## 原生网页使用
59
+ 文本框的可访问名不会渲染为可见标签,标签文字由应用自行排版。具名导入支持构建工具移除未使用的组件与内容引擎;组件样式是统一样式文件。
51
60
 
52
- 构建工具项目:
61
+ ## 在原生网页中使用
62
+
63
+ ### 使用构建工具
64
+
65
+ 在页面的 JavaScript 入口注册核心组件:
53
66
 
54
67
  ```js
55
68
  import '@kernel4632/kima/elements/core';
56
- // 需要全部 136 个组件及内容引擎时改用 @kernel4632/kima/elements
57
69
  ```
58
70
 
59
- 注册入口**自带 Vue 运行时、token 和组件样式**,无需另导入 [`style.css`](https://github.com/kernel4632/kima#导出入口)。采用 light DOM,不提供 Shadow DOM 样式隔离;组件 class 使用 kima 前缀。核心和全量入口可以先后加载,已注册标签不会重复注册或重复追加样式。通常选择一个入口即可,不同入口各自内含运行时,混用仍会增加下载量。
60
-
61
- 无构建工具:把 tarball 内的 [`dist/kima-elements-core.js`](https://github.com/kernel4632/kima#导出入口) 以及同目录第三方许可证声明一起部署,通过 HTTP 服务访问,不要直接双击本地网页:
71
+ 然后在 HTML 中使用:
62
72
 
63
73
  ```html
64
- <script type="module" src="./kima-elements-core.js"></script>
65
74
  <kima-button variant="filled">保存</kima-button>
75
+ <kima-text-field label="名称" placeholder="输入名称"></kima-text-field>
76
+ ```
77
+
78
+ 需要编辑器等扩展组件时,改用全量入口:
79
+
80
+ ```js
81
+ import '@kernel4632/kima/elements';
82
+ ```
83
+
84
+ 两种注册入口均自带运行时、设计 token 和组件样式,无需额外导入样式文件。通常选择一个入口即可;全量入口包含全部组件与内容引擎,不会根据页面使用的标签自动裁剪。
85
+
86
+ ### 不使用构建工具
87
+
88
+ 将安装包内的核心独立文件 [`dist/kima-elements-core.js`](https://www.npmjs.com/package/@kernel4632/kima?activeTab=code) 复制到网站,并通过 HTTP 服务加载:
89
+
90
+ ```html
91
+ <!doctype html>
92
+ <html lang="zh-CN">
93
+ <head>
94
+ <meta charset="UTF-8">
95
+ <meta name="viewport" content="width=device-width, initial-scale=1">
96
+ <title>KIMA 示例</title>
97
+ <script type="module" src="./kima-elements-core.js"></script>
98
+ </head>
99
+ <body>
100
+ <kima-button variant="filled">保存</kima-button>
101
+ </body>
102
+ </html>
103
+ ```
104
+
105
+ 需要全量组件时换用 [`dist/kima-elements.js`](https://www.npmjs.com/package/@kernel4632/kima?activeTab=code)。复制部署时应一并保留包内的第三方许可证声明。
106
+
107
+ ### 属性与事件
108
+
109
+ 字符串和布尔值可通过 HTML 属性传入;布尔属性存在即表示启用,关闭时移除属性或通过 JavaScript 赋值。数组与对象使用 JavaScript 属性赋值,并在元素完成注册后设置。
110
+
111
+ 自定义组件事件的参数放在事件的参数数组中;按钮点击仍使用普通 DOM 点击事件。例如,读取文本框的值:
112
+
113
+ ```html
66
114
  <kima-text-field id="name" label="名称"></kima-text-field>
115
+ <output id="value"></output>
116
+
67
117
  <script type="module">
68
- document.getElementById('name').addEventListener('update:modelValue', (event) => {
118
+ import '@kernel4632/kima/elements/core';
119
+
120
+ const field = document.getElementById('name');
121
+ const output = document.getElementById('value');
122
+
123
+ field.addEventListener('update:modelValue', (event) => {
69
124
  const [value] = event.detail;
70
- console.log(value);
125
+ output.textContent = value;
71
126
  });
72
127
  </script>
73
128
  ```
74
129
 
75
- 数组/对象属性使用元素属性赋值,例如 `element.items = [...]`;布尔值、字符串可用 HTML 属性。Vue 自定义事件参数在 `event.detail` 数组中,普通按钮 click 仍是原生事件。原生消费者无需使用 Vue API。
130
+ ## 主题与样式
76
131
 
77
- ## 主题
132
+ 默认使用深色主题。在页面根元素设置主题属性可切换默认深浅配色:
78
133
 
79
- ```js
80
- import { applyPalette } from '@kernel4632/kima/theme';
81
- applyPalette('#61afef', { isDark: true });
134
+ ```html
135
+ <html lang="zh-CN" data-kima-theme="light">
82
136
  ```
83
137
 
84
- 所有颜色由 `--kima-*` 变量控制。成功/警告/危险语义色不随品牌种子改变。默认深浅主题通过 `data-kima-theme="dark|light"` 选择;运行时换色使用主题入口。Maple Mono NF CN 按需由宿主加载,未安装时使用系统等宽回退,包内不嵌入字体大文件。
138
+ 也可以在浏览器中用种子色生成并应用配色:
85
139
 
86
- ## 导出入口
140
+ ```js
141
+ import { applyPalette, resetPalette } from '@kernel4632/kima/theme';
87
142
 
88
- | 入口 | 用途 |
89
- | --- | --- |
90
- | `@kernel4632/kima` | 具名 Vue 组件导出、componentNames、代码块语言登记工具 |
91
- | `@kernel4632/kima/style.css` | Vue 消费者所需样式和 token |
92
- | `@kernel4632/kima/elements` | 独立自定义元素注册与内置样式(全量 136 个) |
93
- | `@kernel4632/kima/elements/core` | 只注册 core 档(默认推荐);轻量核心入口(体积以构建输出为准) |
94
- | `@kernel4632/kima/theme` | 动态配色生成与应用工具 |
143
+ applyPalette('#61afef', { isDark: false });
95
144
 
96
- 构建生成四个 JS 入口及 Vue 样式,Vue 组件模块保留按需打包边界,独立自定义元素入口则内含所选档位的全部组件。全量入口含编辑器等重型引擎,不能按标签使用量自动裁剪。完整清单见[入口索引](https://github.com/kernel4632/kima/blob/main/docs/component-index.md)。
145
+ // 清除运行时配色,恢复默认主题。
146
+ resetPalette();
147
+ ```
97
148
 
98
- ## 维护分层
149
+ 运行时配色会写入内联变量。自定义种子色后切换深浅模式时,重新应用对应模式;若要回到默认主题属性控制的配色,先清除运行时配色。
99
150
 
100
- 公开入口先证明必要性,再决定维护档位。第一批已移除 9 个薄包装,这是公开 API 的删除,替代方式见[删减迁移](https://github.com/kernel4632/kima/blob/main/docs/component-pruning.md)。剩余组件分三档,**唯一来源**是 [`src/component-tiers.js`](https://github.com/kernel4632/kima/blob/main/src/component-tiers.js)。下表是维护目标,不是所有组件已完成逐项验收的认证;当前证据与未覆盖项见[路线图](https://github.com/kernel4632/kima/blob/main/docs/component-roadmap.md)。
151
+ KIMA 样式使用自身命名空间,不附带页面 reset 或背景。应用可自行组合页面样式,例如:
101
152
 
102
- | 档位 | 数量 | 维护水位 | 注册方式 |
103
- | --- | --- | --- | --- |
104
- | core | 43 | 优先覆盖逐页视觉、跨浏览器、键盘与读屏、动画中间帧 | 推荐核心入口 |
105
- | extras | 80 | 按使用场景维护渲染、键盘和交互反馈 | Vue 按需或全量自定义元素 |
106
- | experimental | 13 | 实验性渲染与状态反馈,接口可能调整 | Vue 按需或全量自定义元素 |
153
+ ```css
154
+ body {
155
+ background: var(--kima-color-surface);
156
+ color: var(--kima-color-on-surface);
157
+ font-family: var(--kima-font-family);
158
+ }
159
+ ```
107
160
 
108
- 判断规则:每个应用都会用 → core;只有一类应用会用 → extras;只是原生控件的皮肤或装饰 → 并进基础控件或 experimental。新增 `.ce.vue` 必须在分档表里选一档,否则构建直接失败。
161
+ 默认字体栈优先使用 Maple Mono NF CN,再回退到系统等宽字体。字体文件不包含在组件包中,可由应用自行加载。
109
162
 
110
- 代码块的语法分词由 highlight.js(BSD-3-Clause)完成,内置以 common 集为基础的 **35 种语法,已包含 Dockerfile**;Vue、TS、Shell、YAML 等常见别名已登记。别名不等于完整框架语义支持,不承诺全语言、全语义着色。内置集之外的语言由 Vue 宿主在渲染前补登记,不把全部语法塞进包里;该登记工具属于 Vue 主入口,不会跨独立自定义元素包共享高亮器:
163
+ 自定义元素采用 light DOM,**不提供 Shadow DOM 样式隔离**,宿主页面的全局样式可能影响组件。
111
164
 
112
- ```js
113
- import dart from 'highlight.js/lib/languages/dart';
114
- import { registerCodeLanguage } from '@kernel4632/kima';
115
- registerCodeLanguage('dart', dart);
116
- ```
165
+ ## 入口选择
117
166
 
118
- ## 开发与验收
167
+ | 入口 | 用途 |
168
+ | --- | --- |
169
+ | 主入口 | Vue 组件的具名导出,以及代码块语言登记工具 |
170
+ | [Vue 样式](https://www.npmjs.com/package/@kernel4632/kima?activeTab=code) | Vue 组件使用的样式与设计 token |
171
+ | [核心元素入口](https://github.com/kernel4632/kima/blob/main/src/elements-core.js) | 常用基础组件,自带运行时和样式 |
172
+ | [全量元素入口](https://github.com/kernel4632/kima/blob/main/src/elements.js) | 全部自定义元素,包含内容引擎 |
173
+ | [主题入口](https://github.com/kernel4632/kima/blob/main/src/utils/theme.js) | 配色生成、应用与重置 |
119
174
 
120
- 本仓库构建使用 Node 20.19+ 或 22.12+ 的受支持版本及 pnpm。隔离消费者发布验收需要 Chromium、Firefox、WebKit,首次执行前安装浏览器:
175
+ 对应导入路径:
121
176
 
122
- ```sh
123
- pnpm exec playwright install chromium firefox webkit
124
- ```
125
-
126
- ```powershell
127
- pnpm dev
128
- pnpm build
129
- pnpm build:lib
130
- pnpm verify:lib
131
- pnpm verify:install
132
- pnpm test # 约 8 秒冒烟:入口、真实点击、弹层、表单值
133
- pnpm test:ssr # 发布前执行
134
- pnpm shots
135
- # 逐页视觉审查:桌面与手机各跑一遍,截图落在 shots/audit*
136
- node scripts/audit-visual.mjs http://127.0.0.1:5188
137
- node scripts/audit-montage.mjs
138
- # 只审 core 档(43 页):$env:KIMA_AUDIT_TIER = 'core'
177
+ ```js
178
+ import { KimaButton } from '@kernel4632/kima';
179
+ import '@kernel4632/kima/style.css';
180
+ import '@kernel4632/kima/elements/core';
181
+ import '@kernel4632/kima/elements';
182
+ import { applyPalette } from '@kernel4632/kima/theme';
139
183
  ```
140
184
 
141
- 文档站采用顶栏、左侧组件导航、中央文档与实时预览、右侧页内目录。使用 `#/components/button` 等地址可直接进入组件页。属性表来自组件源码,实际演示使用库内组件。顶栏全文命令搜索会检索组件名称、中文描述、属性和事件;`Ctrl/Cmd+K` 打开,方向键、Enter、Escape 和焦点返回均可用。
185
+ 以上是各入口的路径对照,不需要同时导入。Vue 项目通常选择具名组件与样式;原生网页通常选择核心或全量元素入口。
142
186
 
143
- 代码示例统一使用 `KimaCodeBlock`,提供指定语言着色、文件名、行号、换行和复制反馈;未知语言安全回退为纯文本。常用语言随包提供,不依赖网络着色服务。
187
+ ## 文档
144
188
 
145
- 当前源码有 **136 个独立组件入口**,包含日期/表单、虚拟化、utility、布局排版、嵌套菜单/应用壳及内容扩展。重型依赖集中在 extras 档(highlight.js 随代码块、CodeMirror、Tiptap、图表),所以日常控件用 `/elements/core` 不会带上它们。
189
+ - [组件索引](https://github.com/kernel4632/kima/blob/main/docs/component-index.md):查找组件与源码。
190
+ - [能力与边界](https://github.com/kernel4632/kima/blob/main/docs/component-comparison.md):了解组件支持的功能。
191
+ - [问题反馈](https://github.com/kernel4632/kima/issues):提交缺陷或功能建议。
146
192
 
147
- 公开目录逐项来源和边界见 [136 项能力对照](https://github.com/kernel4632/kima/blob/main/docs/component-comparison.md),G00–G50 的处置见[能力路线图](https://github.com/kernel4632/kima/blob/main/docs/component-roadmap.md)。表格没有固定列、分组表头/行分组或自动分页;颜色提供 HSV/alpha 与 HEX 编辑及原生颜色选择入口,RGB/HSL 是读数,不提供独立屏幕取色 API 或多色彩空间编辑;日期时间使用无时区本地模型,不处理 DST。图表不包含缩放平移/堆叠/饼图,编辑器不提供协作或代码执行。server auth、transport、CMS 和商业模板属于宿主/业务层范围。
193
+ KIMA 提供 ESM 格式的 JavaScript,不提供 CommonJS 或 TypeScript 类型声明。面向支持自定义元素、原生对话框、ResizeObserver、Web Animations 和现代 CSS 的浏览器。
148
194
 
149
- 面向现代浏览器,依赖自定义元素、原生对话框、ResizeObserver、Web Animations 及现代 CSS。发布验收的跨浏览器检查仅覆盖核心入口安装、注册、基础输入和样式,不等于全部组件在全部浏览器、读屏器或动画中间帧上均已验收。SSR 测试也不代表所有组件都能在服务端进行完整交互。
195
+ ## 本地开发
150
196
 
151
- ## 许可证
152
-
153
- KIMA 自身使用 MIT 许可证。独立浏览器包内含第三方代码,完整许可证随包放在 [`dist/THIRD_PARTY_NOTICES.txt`](https://github.com/kernel4632/kima#许可证);复制或再分发独立包时须保留相应声明。构建根据实际模块图收集文本,依赖缺少授权文本时会阻断构建。
197
+ 克隆仓库后,在项目根目录运行:
154
198
 
155
- ## 发布
199
+ ```sh
200
+ pnpm install
201
+ pnpm dev
202
+ ```
156
203
 
157
- 本轮已验证范围、包体积与账号阻塞见[发布准备审查](https://github.com/kernel4632/kima/blob/main/docs/npm-release-readiness.md)。它记录本地验收,不代表包已经上架。
204
+ 本地文档站提供组件预览、用法示例和属性参考。
158
205
 
159
- 1. 使用有 `@kernel4632` scope 权限的账户执行 `npm login --registry=https://registry.npmjs.org`。
160
- 2. 执行 `npm whoami --registry=https://registry.npmjs.org` 确认身份,不要把 token 写入源码或提交。
161
- 3. 执行 `pnpm release:check`、浏览器测试和 SSR 测试。
162
- 4. 检查目标版本未被使用、发布清单和许可证;版本号不会随提交自动增长,文档站只显示构建时的版本。确定版本后执行 `npm publish --access public --registry=https://registry.npmjs.org`(可能要求 2FA)。不要重复发布已有版本。
163
- 5. 执行 `npm view @kernel4632/kima version --registry=https://registry.npmjs.org` 并在新项目从 registry 安装复验,然后更新发布状态。
206
+ ## 许可证
164
207
 
165
- `prepack` 自动构建,`prepublishOnly` 会运行打包与隔离安装校验。`artifacts/` 中的 tarball 不入库。发布必须使用有效凭证,不能用 dry-run 代替“已发布”。
208
+ KIMA 使用 [MIT 许可证](https://github.com/kernel4632/kima/blob/main/LICENSE)。
166
209
 
167
- 协作约束见 [`AGENTS.md`](https://github.com/kernel4632/kima/blob/main/AGENTS.md)。历史研究笔记不作为当前设计依据。
210
+ 独立浏览器包包含第三方代码,其授权文本随包提供于 [`dist/THIRD_PARTY_NOTICES.txt`](https://www.npmjs.com/package/@kernel4632/kima?activeTab=code)。复制或再分发时须保留相应许可证与版权声明。
@@ -5298,7 +5298,7 @@ function Xu(e, t, n, r, i, a) {
5298
5298
  ref_for: !0
5299
5299
  }, e.transformAttrs(t[1], e.calculatedStrokeWidth)), null, 16))), 128))], 16, Yu);
5300
5300
  }
5301
- var Zu = /* @__PURE__ */ Ju(qu, [["render", Xu], ["__file", "/Users/mahmudulhasan/Desktop/Projects/Hugeicons/hugeicons-monorepo/packages/vue/src/components/HugeiconsIcon.vue"]]), Qu = ".kima-icon[data-v-e042400b]{vertical-align:middle;flex:none;display:inline-block}", $u = (e, t) => {
5301
+ var Zu = /* @__PURE__ */ Ju(qu, [["render", Xu], ["__file", "/Users/mahmudulhasan/Desktop/Projects/Hugeicons/hugeicons-monorepo/packages/vue/src/components/HugeiconsIcon.vue"]]), Qu = ".kima-icon[data-v-5c94f2ca]{vertical-align:middle;flex:none;display:inline-block}", $u = (e, t) => {
5302
5302
  let n = e.__vccOpts || e;
5303
5303
  for (let [e, r] of t) n[e] = r;
5304
5304
  return n;
@@ -5338,7 +5338,7 @@ var Zu = /* @__PURE__ */ Ju(qu, [["render", Xu], ["__file", "/Users/mahmudulhasa
5338
5338
  "stroke-width"
5339
5339
  ]));
5340
5340
  }
5341
- }, [["styles", [Qu]], ["__scopeId", "data-v-e042400b"]]);
5341
+ }, [["styles", [Qu]], ["__scopeId", "data-v-5c94f2ca"]]);
5342
5342
  // src/utils/native-slots.js
5343
5343
  function td(e) {
5344
5344
  let t = !!js()?.ce, n = t ? Sl() : null, r = /* @__PURE__ */ P(/* @__PURE__ */ new Set()), i;
@@ -7955,8 +7955,8 @@ function Op() {
7955
7955
  } }
7956
7956
  };
7957
7957
  }
7958
- // src/components/shell/config-provider.ce.vue?vue&type=style&index=0&inline&scoped=28f72ed9&lang.scss
7959
- var kp = ".kima-config-provider[data-v-28f72ed9]{color:var(--kima-color-on-surface);font-family:var(--kima-font-family);--kima-color-layer-1:color-mix(in srgb, var(--kima-color-on-surface) 5%, transparent);--kima-color-layer-2:color-mix(in srgb, var(--kima-color-on-surface) 10%, transparent);--kima-color-layer-3:color-mix(in srgb, var(--kima-color-on-surface) 15%, transparent);--kima-color-popup:var(--kima-color-surface-container-high);--kima-color-popup-large:var(--kima-color-surface-container-highest);--kima-color-primary-container-hover:color-mix(in srgb, var(--kima-color-primary-container) 90%, var(--kima-color-on-primary-container))}.kima-config-provider[data-kima-reduced-motion=reduce][data-v-28f72ed9]{--kima-duration-fast:0s;--kima-duration-medium:0s;--kima-duration-slow:0s;--kima-duration-slower:0s;--kima-duration-effects:0s}.kima-config-provider[data-kima-reduced-motion=reduce][data-v-28f72ed9] *{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}", Ap = [
7958
+ // src/components/shell/config-provider.ce.vue?vue&type=style&index=0&inline&scoped=d9085095&lang.scss
7959
+ var kp = ".kima-config-provider[data-v-d9085095]{color:var(--kima-color-on-surface);font-family:var(--kima-font-family);--kima-color-layer-1:color-mix(in srgb, var(--kima-color-on-surface) 5%, transparent);--kima-color-layer-2:color-mix(in srgb, var(--kima-color-on-surface) 10%, transparent);--kima-color-layer-3:color-mix(in srgb, var(--kima-color-on-surface) 15%, transparent);--kima-color-popup:var(--kima-color-surface-container-high);--kima-color-popup-large:var(--kima-color-surface-container-highest);--kima-color-primary-container-hover:color-mix(in srgb, var(--kima-color-primary-container) 90%, var(--kima-color-on-primary-container))}.kima-config-provider[data-kima-reduced-motion=reduce][data-v-d9085095]{--kima-duration-fast:0s;--kima-duration-medium:0s;--kima-duration-slow:0s;--kima-duration-slower:0s;--kima-duration-effects:0s}.kima-config-provider[data-kima-reduced-motion=reduce][data-v-d9085095] *{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}", Ap = [
7960
7960
  "data-kima-seed",
7961
7961
  "data-kima-variant",
7962
7962
  "data-kima-theme",
@@ -8056,7 +8056,7 @@ var kp = ".kima-config-provider[data-v-28f72ed9]{color:var(--kima-color-on-surfa
8056
8056
  }]
8057
8057
  }), [F(n) ? hr((H(), U("div", jp, null, 512)), [[F(r)]]) : V(e.$slots, "default", { config: l.value }, void 0, !0, 1)], 16, Ap));
8058
8058
  }
8059
- }), [["styles", [kp]], ["__scopeId", "data-v-28f72ed9"]]), Np = "@keyframes kima-ripple-glow-f55122f3{0%{opacity:.14}55%{opacity:.1}to{opacity:0}}.kima-date-picker[data-v-f55122f3]{gap:var(--kima-space-1);width:100%;min-width:0;max-width:320px;color:var(--kima-color-on-surface);font-family:var(--kima-font-family);flex-direction:column;display:inline-flex;position:relative}.kima-date-picker__control[data-v-f55122f3]{align-items:center;gap:var(--kima-space-1);height:var(--kima-field-height);box-sizing:border-box;padding-right:var(--kima-space-2);border-radius:var(--kima-radius-m);background:var(--kima-color-layer-2);transition:background-color var(--kima-duration-effects) var(--kima-curve-standard), box-shadow var(--kima-duration-effects) var(--kima-curve-standard), opacity var(--kima-duration-effects) var(--kima-curve-standard);display:flex;position:relative}.kima-date-picker__control[data-v-f55122f3]:after{content:\"\";z-index:1;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity var(--kima-duration-effects) var(--kima-curve-standard);background:currentColor;position:absolute;inset:0}.kima-date-picker__control[data-v-f55122f3]>*{z-index:2;position:relative}.kima-date-picker__control[data-v-f55122f3]:hover:not(:disabled):not([aria-disabled=true]):after{opacity:var(--kima-state-hover)}.kima-date-picker__control[data-v-f55122f3]:focus-visible:after{opacity:var(--kima-state-focus)}.kima-date-picker__control[data-v-f55122f3]:active:not(:disabled):not([aria-disabled=true]):after{opacity:var(--kima-state-pressed)}.kima-date-picker__control[data-v-f55122f3]{position:relative;overflow:hidden}.kima-date-picker__control[data-v-f55122f3] .kima-ripple{z-index:2;pointer-events:none;animation:kima-ripple-glow-f55122f3 var(--kima-duration-slower) linear forwards;background:currentColor;position:absolute;inset:0}.kima-date-picker__control[data-v-f55122f3]:hover:not([aria-disabled=true]),.kima-date-picker--open .kima-date-picker__control[data-v-f55122f3]{background:var(--kima-color-layer-3)}.kima-date-picker__control[data-v-f55122f3]:focus-within{box-shadow:inset 0 0 0 var(--kima-outline-width-focused) var(--kima-color-primary)}.kima-date-picker--open .kima-date-picker__control[data-v-f55122f3]:focus-within{box-shadow:none}.kima-date-picker--disabled .kima-date-picker__control[data-v-f55122f3]{cursor:not-allowed;opacity:var(--kima-opacity-disabled)}.kima-date-picker__trigger[data-v-f55122f3]{box-sizing:border-box;justify-content:space-between;align-items:center;gap:var(--kima-space-3);min-width:0;height:100%;padding:0 0 0 var(--kima-field-padding);color:var(--kima-color-on-surface);background:var(--kima-color-transparent);font:inherit;font-size:var(--kima-font-size-body-large);text-align:left;cursor:pointer;border:0;flex:auto;display:flex}.kima-date-picker__trigger[data-v-f55122f3]:disabled{cursor:not-allowed}.kima-date-picker__trigger-label[data-v-f55122f3]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.kima-date-picker__trigger-label--placeholder[data-v-f55122f3]{color:var(--kima-color-on-surface-variant)}.kima-date-picker__icon[data-v-f55122f3]{margin-right:var(--kima-space-2);color:var(--kima-color-on-surface-variant);flex:none}.kima-date-picker__clear[data-v-f55122f3]{border-radius:var(--kima-radius-full);width:28px;height:28px;color:var(--kima-color-on-surface-variant);background:var(--kima-color-transparent);cursor:pointer;transition:color var(--kima-duration-effects) var(--kima-curve-standard), background-color var(--kima-duration-effects) var(--kima-curve-standard), border-color var(--kima-duration-effects) var(--kima-curve-standard), box-shadow var(--kima-duration-effects) var(--kima-curve-standard), opacity var(--kima-duration-effects) var(--kima-curve-standard);border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.kima-date-picker__clear[data-v-f55122f3]:hover:not(:disabled),.kima-date-picker__clear[data-v-f55122f3]:focus-visible{color:var(--kima-color-primary);background:var(--kima-color-layer-3)}.kima-date-picker__clear[data-v-f55122f3]:focus-visible{outline:2px solid var(--kima-color-primary);outline-offset:1px}.kima-date-picker__clear[data-v-f55122f3]:disabled{cursor:not-allowed}.kima-date-picker__native[data-v-f55122f3]{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.kima-date-picker__popup[data-v-f55122f3]{box-sizing:border-box;z-index:20;top:calc(100% + var(--kima-space-2));width:max(100%,268px);padding:var(--kima-space-2);border-radius:var(--kima-radius-md);background:var(--kima-color-popup);box-shadow:var(--kima-elevation-3);border:0;position:absolute;left:0}.kima-date-picker__head[data-v-f55122f3]{justify-content:space-between;align-items:center;gap:var(--kima-space-2);padding:0 var(--kima-space-1) var(--kima-space-2);display:flex}.kima-date-picker__month[data-v-f55122f3]{font-size:var(--kima-font-size-md);font-weight:var(--kima-font-weight-medium);text-align:center}.kima-date-picker__nav[data-v-f55122f3]{border-radius:var(--kima-radius-full);width:32px;height:32px;color:var(--kima-color-on-surface-variant);background:var(--kima-color-transparent);cursor:pointer;transition:color var(--kima-duration-effects) var(--kima-curve-standard), background-color var(--kima-duration-effects) var(--kima-curve-standard), border-color var(--kima-duration-effects) var(--kima-curve-standard), box-shadow var(--kima-duration-effects) var(--kima-curve-standard), opacity var(--kima-duration-effects) var(--kima-curve-standard);border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.kima-date-picker__nav[data-v-f55122f3]:hover:not(:disabled){color:var(--kima-color-primary);background:var(--kima-color-layer-3)}.kima-date-picker__nav[data-v-f55122f3]:focus-visible{outline:2px solid var(--kima-color-primary);outline-offset:1px}.kima-date-picker__nav[data-v-f55122f3]:disabled{cursor:not-allowed;opacity:var(--kima-opacity-disabled)}.kima-date-picker__grid.kima-fade-leave-active[data-v-f55122f3]{inset-inline:var(--kima-space-2);pointer-events:none;position:absolute}.kima-date-picker__grid[data-v-f55122f3]{gap:2px;display:grid}.kima-date-picker__row[data-v-f55122f3]{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.kima-date-picker__weekday[data-v-f55122f3]{padding:var(--kima-space-1) 0;color:var(--kima-color-on-surface-variant);font-size:var(--kima-font-size-xs);font-weight:var(--kima-font-weight-medium);text-align:center}.kima-date-picker__cell[data-v-f55122f3]{justify-content:center;align-items:center;display:flex}.kima-date-picker__day[data-v-f55122f3]{aspect-ratio:1;border-radius:var(--kima-radius-full);width:100%;min-height:36px;color:var(--kima-color-on-surface);background:var(--kima-color-transparent);font:inherit;font-size:var(--kima-font-size-md);cursor:pointer;transition:color var(--kima-duration-effects) var(--kima-curve-standard), background-color var(--kima-duration-effects) var(--kima-curve-standard), border-color var(--kima-duration-effects) var(--kima-curve-standard), box-shadow var(--kima-duration-effects) var(--kima-curve-standard), opacity var(--kima-duration-effects) var(--kima-curve-standard);border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.kima-date-picker__day[data-v-f55122f3]:hover:not(:disabled){background:var(--kima-color-layer-3)}.kima-date-picker__day[data-v-f55122f3]:focus-visible{outline:2px solid var(--kima-color-primary);outline-offset:-2px}.kima-date-picker__day--outside[data-v-f55122f3]{color:var(--kima-color-on-surface-variant);opacity:var(--kima-opacity-disabled)}.kima-date-picker__day--today[data-v-f55122f3]:not(.kima-date-picker__day--selected){color:var(--kima-color-primary);box-shadow:inset 0 0 0 1px var(--kima-color-primary)}.kima-date-picker__day--selected[data-v-f55122f3],.kima-date-picker__day--selected[data-v-f55122f3]:hover:not(:disabled){color:var(--kima-color-on-primary);background:var(--kima-color-primary)}.kima-date-picker__day[data-v-f55122f3]:disabled{cursor:not-allowed;opacity:var(--kima-opacity-disabled);pointer-events:none}@media (prefers-reduced-motion:reduce){.kima-date-picker__trigger[data-v-f55122f3],.kima-date-picker__day[data-v-f55122f3],.kima-date-picker__nav[data-v-f55122f3]{transition:none}}", Pp = ["aria-disabled"], Fp = [
8059
+ }), [["styles", [kp]], ["__scopeId", "data-v-d9085095"]]), Np = "@keyframes kima-ripple-glow-f55122f3{0%{opacity:.14}55%{opacity:.1}to{opacity:0}}.kima-date-picker[data-v-f55122f3]{gap:var(--kima-space-1);width:100%;min-width:0;max-width:320px;color:var(--kima-color-on-surface);font-family:var(--kima-font-family);flex-direction:column;display:inline-flex;position:relative}.kima-date-picker__control[data-v-f55122f3]{align-items:center;gap:var(--kima-space-1);height:var(--kima-field-height);box-sizing:border-box;padding-right:var(--kima-space-2);border-radius:var(--kima-radius-m);background:var(--kima-color-layer-2);transition:background-color var(--kima-duration-effects) var(--kima-curve-standard), box-shadow var(--kima-duration-effects) var(--kima-curve-standard), opacity var(--kima-duration-effects) var(--kima-curve-standard);display:flex;position:relative}.kima-date-picker__control[data-v-f55122f3]:after{content:\"\";z-index:1;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity var(--kima-duration-effects) var(--kima-curve-standard);background:currentColor;position:absolute;inset:0}.kima-date-picker__control[data-v-f55122f3]>*{z-index:2;position:relative}.kima-date-picker__control[data-v-f55122f3]:hover:not(:disabled):not([aria-disabled=true]):after{opacity:var(--kima-state-hover)}.kima-date-picker__control[data-v-f55122f3]:focus-visible:after{opacity:var(--kima-state-focus)}.kima-date-picker__control[data-v-f55122f3]:active:not(:disabled):not([aria-disabled=true]):after{opacity:var(--kima-state-pressed)}.kima-date-picker__control[data-v-f55122f3]{position:relative;overflow:hidden}.kima-date-picker__control[data-v-f55122f3] .kima-ripple{z-index:2;pointer-events:none;animation:kima-ripple-glow-f55122f3 var(--kima-duration-slower) linear forwards;background:currentColor;position:absolute;inset:0}.kima-date-picker__control[data-v-f55122f3]:hover:not([aria-disabled=true]),.kima-date-picker--open .kima-date-picker__control[data-v-f55122f3]{background:var(--kima-color-layer-3)}.kima-date-picker__control[data-v-f55122f3]:focus-within{box-shadow:inset 0 0 0 var(--kima-outline-width-focused) var(--kima-color-primary)}.kima-date-picker--open .kima-date-picker__control[data-v-f55122f3]:focus-within{box-shadow:none}.kima-date-picker--disabled .kima-date-picker__control[data-v-f55122f3]{cursor:not-allowed;opacity:var(--kima-opacity-disabled)}.kima-date-picker__trigger[data-v-f55122f3]{box-sizing:border-box;justify-content:space-between;align-items:center;gap:var(--kima-space-3);min-width:0;height:100%;padding:0 0 0 var(--kima-field-padding);color:var(--kima-color-on-surface);background:var(--kima-color-transparent);font:inherit;font-size:var(--kima-font-size-body-large);text-align:left;cursor:pointer;border:0;flex:auto;display:flex}.kima-date-picker__trigger[data-v-f55122f3]:disabled{cursor:not-allowed}.kima-date-picker__trigger-label[data-v-f55122f3]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.kima-date-picker__trigger-label--placeholder[data-v-f55122f3]{color:var(--kima-color-on-surface-variant)}.kima-date-picker__icon[data-v-f55122f3]{margin-right:var(--kima-space-2);color:var(--kima-color-on-surface-variant);flex:none}.kima-date-picker__clear[data-v-f55122f3]{border-radius:var(--kima-radius-full);width:28px;height:28px;color:var(--kima-color-on-surface-variant);background:var(--kima-color-transparent);cursor:pointer;transition:color var(--kima-duration-effects) var(--kima-curve-standard), background-color var(--kima-duration-effects) var(--kima-curve-standard), border-color var(--kima-duration-effects) var(--kima-curve-standard), box-shadow var(--kima-duration-effects) var(--kima-curve-standard), opacity var(--kima-duration-effects) var(--kima-curve-standard);border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.kima-date-picker__clear[data-v-f55122f3]:hover:not(:disabled),.kima-date-picker__clear[data-v-f55122f3]:focus-visible{color:var(--kima-color-primary);background:var(--kima-color-layer-3)}.kima-date-picker__clear[data-v-f55122f3]:focus-visible{outline:2px solid var(--kima-color-primary);outline-offset:1px}.kima-date-picker__clear[data-v-f55122f3]:disabled{cursor:not-allowed}.kima-date-picker__native[data-v-f55122f3]{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.kima-date-picker__popup[data-v-f55122f3]{box-sizing:border-box;z-index:20;top:calc(100% + var(--kima-space-2));width:max(100%,268px);padding:var(--kima-space-2);border-radius:var(--kima-radius-md);background:var(--kima-color-popup);box-shadow:var(--kima-elevation-3);border:0;position:absolute;left:0}.kima-date-picker__head[data-v-f55122f3]{justify-content:space-between;align-items:center;gap:var(--kima-space-2);padding:0 var(--kima-space-1) var(--kima-space-2);display:flex}.kima-date-picker__month[data-v-f55122f3]{font-size:var(--kima-font-size-md);font-weight:var(--kima-font-weight-medium);text-align:center}.kima-date-picker__nav[data-v-f55122f3]{border-radius:var(--kima-radius-full);width:32px;height:32px;color:var(--kima-color-on-surface-variant);background:var(--kima-color-transparent);cursor:pointer;transition:color var(--kima-duration-effects) var(--kima-curve-standard), background-color var(--kima-duration-effects) var(--kima-curve-standard), border-color var(--kima-duration-effects) var(--kima-curve-standard), box-shadow var(--kima-duration-effects) var(--kima-curve-standard), opacity var(--kima-duration-effects) var(--kima-curve-standard);border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.kima-date-picker__nav[data-v-f55122f3]:hover:not(:disabled){color:var(--kima-color-primary);background:var(--kima-color-layer-3)}.kima-date-picker__nav[data-v-f55122f3]:focus-visible{outline:2px solid var(--kima-color-primary);outline-offset:1px}.kima-date-picker__nav[data-v-f55122f3]:disabled{cursor:not-allowed;opacity:var(--kima-opacity-disabled)}.kima-date-picker__grid.kima-fade-leave-active[data-v-f55122f3]{inset-inline:var(--kima-space-2);pointer-events:none;position:absolute}.kima-date-picker__grid[data-v-f55122f3]{gap:2px;display:grid}.kima-date-picker__row[data-v-f55122f3]{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.kima-date-picker__weekday[data-v-f55122f3]{padding:var(--kima-space-1) 0;color:var(--kima-color-on-surface-variant);font-size:var(--kima-font-size-xs);font-weight:var(--kima-font-weight-medium);text-align:center}.kima-date-picker__cell[data-v-f55122f3]{justify-content:center;align-items:center;display:flex}.kima-date-picker__day[data-v-f55122f3]{aspect-ratio:1;border-radius:var(--kima-radius-full);width:100%;min-height:36px;color:var(--kima-color-on-surface);background:var(--kima-color-transparent);font:inherit;font-size:var(--kima-font-size-md);cursor:pointer;transition:color var(--kima-duration-effects) var(--kima-curve-standard), background-color var(--kima-duration-effects) var(--kima-curve-standard), border-color var(--kima-duration-effects) var(--kima-curve-standard), box-shadow var(--kima-duration-effects) var(--kima-curve-standard), opacity var(--kima-duration-effects) var(--kima-curve-standard);border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.kima-date-picker__day[data-v-f55122f3]:hover:not(:disabled){background:var(--kima-color-layer-3)}.kima-date-picker__day[data-v-f55122f3]:focus-visible{outline:2px solid var(--kima-color-primary);outline-offset:-2px}.kima-date-picker__day--outside[data-v-f55122f3]{color:var(--kima-color-on-surface-variant);opacity:var(--kima-opacity-disabled)}.kima-date-picker__day--today[data-v-f55122f3]:not(.kima-date-picker__day--selected){color:var(--kima-color-primary);box-shadow:inset 0 0 0 1px var(--kima-color-primary)}.kima-date-picker__day--selected[data-v-f55122f3],.kima-date-picker__day--selected[data-v-f55122f3]:hover:not(:disabled){color:var(--kima-color-on-primary);background:var(--kima-color-primary)}.kima-date-picker__day[data-v-f55122f3]:disabled{cursor:not-allowed;opacity:var(--kima-opacity-disabled);pointer-events:none}@media (prefers-reduced-motion:reduce){.kima-date-picker__trigger[data-v-f55122f3],.kima-date-picker__day[data-v-f55122f3],.kima-date-picker__nav[data-v-f55122f3]{transition:none}}", Pp = ["aria-disabled"], Fp = [
8060
8060
  "aria-expanded",
8061
8061
  "aria-label",
8062
8062
  "aria-required",
@@ -57613,7 +57613,7 @@ function gV(e, t = null, n = null) {
57613
57613
  }
57614
57614
  return a;
57615
57615
  }
57616
- // node_modules/.pnpm/@tiptap+extension-link@3.32_919b5aea12fe43941ada0aeb1a7cb79f/node_modules/@tiptap/extension-link/dist/index.js
57616
+ // node_modules/.pnpm/@tiptap+extension-link@3.32.0_@tiptap+core@3.32.0_@tiptap+pm@3.32.0__@tiptap+pm@3.32.0/node_modules/@tiptap/extension-link/dist/index.js
57617
57617
  var _V = "[\0- \xA0 ᠎ -\u2029  ]", vV = new RegExp(_V), yV = RegExp(`${_V}$`), bV = RegExp(`${_V}+$`), xV = new RegExp(_V, "g");
57618
57618
  function SV(e, t, n) {
57619
57619
  let r = e.doc.resolve(t.to);
@@ -58932,7 +58932,7 @@ uR.create({
58932
58932
  return this.options.bulletList !== !1 && e.push(HV.configure(this.options.bulletList)), this.options.listItem !== !1 && e.push(dH.configure(this.options.listItem)), this.options.listKeymap !== !1 && e.push(bH.configure(this.options.listKeymap)), this.options.orderedList !== !1 && e.push(BH.configure(this.options.orderedList)), this.options.taskItem !== !1 && e.push(WH.configure(this.options.taskItem)), this.options.taskList !== !1 && e.push(GH.configure(this.options.taskList)), e;
58933
58933
  }
58934
58934
  });
58935
- // node_modules/.pnpm/@tiptap+extension-paragraph_d94c6f91155708a6ebbcb5ccd3da3b7c/node_modules/@tiptap/extension-paragraph/dist/index.js
58935
+ // node_modules/.pnpm/@tiptap+extension-paragraph@3.32.0_@tiptap+core@3.32.0_@tiptap+pm@3.32.0_/node_modules/@tiptap/extension-paragraph/dist/index.js
58936
58936
  var KH = "&nbsp;", qH = "\xA0", JH = jR.create({
58937
58937
  name: "paragraph",
58938
58938
  priority: 1e3,
@@ -60287,7 +60287,7 @@ var sW = /* @__PURE__ */ iW(rW, [["render", oW], ["__file", "/Users/mahmudulhasa
60287
60287
  "stroke-width"
60288
60288
  ]));
60289
60289
  }
60290
- }, [["styles", [".kima-icon[data-v-e042400b]{vertical-align:middle;flex:none;display:inline-block}"]], ["__scopeId", "data-v-e042400b"]]), lW = [["path", {
60290
+ }, [["styles", [".kima-icon[data-v-5c94f2ca]{vertical-align:middle;flex:none;display:inline-block}"]], ["__scopeId", "data-v-5c94f2ca"]]), lW = [["path", {
60291
60291
  d: "M12.001 5.00003V19.002",
60292
60292
  stroke: "currentColor",
60293
60293
  strokeLinecap: "round",
@@ -120666,8 +120666,8 @@ function a9() {
120666
120666
  } }
120667
120667
  };
120668
120668
  }
120669
- // src/components/shell/app-shell.ce.vue?vue&type=style&index=0&inline&scoped=4472f903&lang.scss
120670
- var uVe = "@keyframes kima-ripple-glow-4472f903{0%{opacity:.14}55%{opacity:.1}to{opacity:0}}.kima-app-shell[data-v-4472f903]{grid-template-columns:minmax(0, var(--kima-shell-sidebar-width)) minmax(0, 1fr);gap:var(--kima-space-4);color:var(--kima-color-on-surface);font-family:var(--kima-font-family);grid-template-areas:\"header header\"\"sidebar main\"\"footer footer\";display:grid;position:relative}.kima-app-shell--narrow[data-v-4472f903]{grid-template-columns:minmax(0,1fr);grid-template-areas:\"header\"\"main\"\"footer\"}.kima-app-shell__header[data-v-4472f903]{align-items:center;gap:var(--kima-space-3);grid-area:header;display:flex}.kima-app-shell__sidebar[data-v-4472f903]{background:var(--kima-color-layer-1);padding:var(--kima-space-4);border-radius:var(--kima-radius-l);border:0;grid-area:sidebar}.kima-app-shell__main[data-v-4472f903]{grid-area:main;min-width:0}.kima-app-shell__main[data-v-4472f903]:focus-visible{outline:var(--kima-focus-ring-width) solid var(--kima-color-primary);outline-offset:var(--kima-focus-ring-offset)}.kima-app-shell__footer[data-v-4472f903]{grid-area:footer}.kima-app-shell__skip[data-v-4472f903]{z-index:100;padding:var(--kima-space-3);color:var(--kima-color-on-primary);background:var(--kima-color-primary);clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.kima-app-shell__skip[data-v-4472f903]:focus{clip-path:none;width:auto;height:auto;overflow:visible}", dVe = ["href"], fVe = { class: "kima-app-shell__header" }, pVe = { key: 1 }, mVe = { key: 0 }, hVe = { class: "kima-app-shell__footer" }, gVe = { key: 0 }, _Ve = /*#__PURE__*/ Uc(/* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
120669
+ // src/components/shell/app-shell.ce.vue?vue&type=style&index=0&inline&scoped=abea9686&lang.scss
120670
+ var uVe = "@keyframes kima-ripple-glow-abea9686{0%{opacity:.14}55%{opacity:.1}to{opacity:0}}.kima-app-shell[data-v-abea9686]{grid-template-columns:minmax(0, var(--kima-shell-sidebar-width)) minmax(0, 1fr);gap:var(--kima-space-4);color:var(--kima-color-on-surface);font-family:var(--kima-font-family);grid-template-areas:\"header header\"\"sidebar main\"\"footer footer\";display:grid;position:relative}.kima-app-shell--narrow[data-v-abea9686]{grid-template-columns:minmax(0,1fr);grid-template-areas:\"header\"\"main\"\"footer\"}.kima-app-shell__header[data-v-abea9686]{align-items:center;gap:var(--kima-space-3);grid-area:header;display:flex}.kima-app-shell__sidebar[data-v-abea9686]{background:var(--kima-color-layer-1);padding:var(--kima-space-4);border-radius:var(--kima-radius-l);border:0;grid-area:sidebar}.kima-app-shell__main[data-v-abea9686]{grid-area:main;min-width:0}.kima-app-shell__main[data-v-abea9686]:focus-visible{outline:var(--kima-focus-ring-width) solid var(--kima-color-primary);outline-offset:var(--kima-focus-ring-offset)}.kima-app-shell__footer[data-v-abea9686]{grid-area:footer}.kima-app-shell__skip[data-v-abea9686]{z-index:100;padding:var(--kima-space-3);color:var(--kima-color-on-primary);background:var(--kima-color-primary);clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.kima-app-shell__skip[data-v-abea9686]:focus{clip-path:none;width:auto;height:auto;overflow:visible}", dVe = ["href"], fVe = { class: "kima-app-shell__header" }, pVe = { key: 1 }, mVe = { key: 0 }, hVe = { class: "kima-app-shell__footer" }, gVe = { key: 0 }, _Ve = /*#__PURE__*/ Uc(/* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
120671
120671
  __name: "app-shell.ce",
120672
120672
  props: {
120673
120673
  open: Boolean,
@@ -120742,7 +120742,7 @@ var uVe = "@keyframes kima-ripple-glow-4472f903{0%{opacity:.14}55%{opacity:.1}to
120742
120742
  z("footer", hVe, [j(n) ? Jn((I(), L("div", gVe, null, 512)), [[j(r), "footer"]]) : F(t.$slots, "footer", {}, void 0, !0, 1)])
120743
120743
  ], 16));
120744
120744
  }
120745
- }), [["styles", [uVe]], ["__scopeId", "data-v-4472f903"]]);
120745
+ }), [["styles", [uVe]], ["__scopeId", "data-v-abea9686"]]);
120746
120746
  // node_modules/.pnpm/@material+material-color-utilities@0.3.0/node_modules/@material/material-color-utilities/utils/math_utils.js
120747
120747
  function o9(e) {
120748
120748
  return e < 0 ? -1 : e === 0 ? 0 : 1;
@@ -122320,8 +122320,8 @@ function LVe(e, { isDark: t = !0, variant: n = B9, target: r } = {}) {
122320
122320
  for (let [e, t] of Object.entries(i)) a.style.setProperty(`--kima-color-${e}`, t);
122321
122321
  return i;
122322
122322
  }
122323
- // src/components/shell/config-provider.ce.vue?vue&type=style&index=0&inline&scoped=28f72ed9&lang.scss
122324
- var RVe = ".kima-config-provider[data-v-28f72ed9]{color:var(--kima-color-on-surface);font-family:var(--kima-font-family);--kima-color-layer-1:color-mix(in srgb, var(--kima-color-on-surface) 5%, transparent);--kima-color-layer-2:color-mix(in srgb, var(--kima-color-on-surface) 10%, transparent);--kima-color-layer-3:color-mix(in srgb, var(--kima-color-on-surface) 15%, transparent);--kima-color-popup:var(--kima-color-surface-container-high);--kima-color-popup-large:var(--kima-color-surface-container-highest);--kima-color-primary-container-hover:color-mix(in srgb, var(--kima-color-primary-container) 90%, var(--kima-color-on-primary-container))}.kima-config-provider[data-kima-reduced-motion=reduce][data-v-28f72ed9]{--kima-duration-fast:0s;--kima-duration-medium:0s;--kima-duration-slow:0s;--kima-duration-slower:0s;--kima-duration-effects:0s}.kima-config-provider[data-kima-reduced-motion=reduce][data-v-28f72ed9] *{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}", zVe = [
122323
+ // src/components/shell/config-provider.ce.vue?vue&type=style&index=0&inline&scoped=d9085095&lang.scss
122324
+ var RVe = ".kima-config-provider[data-v-d9085095]{color:var(--kima-color-on-surface);font-family:var(--kima-font-family);--kima-color-layer-1:color-mix(in srgb, var(--kima-color-on-surface) 5%, transparent);--kima-color-layer-2:color-mix(in srgb, var(--kima-color-on-surface) 10%, transparent);--kima-color-layer-3:color-mix(in srgb, var(--kima-color-on-surface) 15%, transparent);--kima-color-popup:var(--kima-color-surface-container-high);--kima-color-popup-large:var(--kima-color-surface-container-highest);--kima-color-primary-container-hover:color-mix(in srgb, var(--kima-color-primary-container) 90%, var(--kima-color-on-primary-container))}.kima-config-provider[data-kima-reduced-motion=reduce][data-v-d9085095]{--kima-duration-fast:0s;--kima-duration-medium:0s;--kima-duration-slow:0s;--kima-duration-slower:0s;--kima-duration-effects:0s}.kima-config-provider[data-kima-reduced-motion=reduce][data-v-d9085095] *{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}", zVe = [
122325
122325
  "data-kima-seed",
122326
122326
  "data-kima-variant",
122327
122327
  "data-kima-theme",
@@ -122421,7 +122421,7 @@ var RVe = ".kima-config-provider[data-v-28f72ed9]{color:var(--kima-color-on-surf
122421
122421
  }]
122422
122422
  }), [j(n) ? Jn((I(), L("div", BVe, null, 512)), [[j(r)]]) : F(e.$slots, "default", { config: l.value }, void 0, !0, 1)], 16, zVe));
122423
122423
  }
122424
- }), [["styles", [RVe]], ["__scopeId", "data-v-28f72ed9"]]), HVe = ".kima-marquee[data-v-ac73236c]{min-width:0;color:var(--kima-color-on-surface)}.kima-marquee__viewport[data-v-ac73236c]{overflow:hidden}.kima-marquee__track[data-v-ac73236c]{width:max-content;max-width:100%;display:flex}.kima-marquee__track--moving[data-v-ac73236c]{max-width:none;animation:linear infinite kima-marquee-scroll-ac73236c}.kima-marquee__group[data-v-ac73236c]{align-items:center;gap:var(--kima-space-6);flex:none;padding-inline-end:var(--kima-space-6);display:flex}@keyframes kima-marquee-scroll-ac73236c{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.kima-marquee__track[data-v-ac73236c]{animation:none!important;transform:none!important}}@media (forced-colors:active){.kima-marquee__track[data-v-ac73236c]{animation:none}}", UVe = ["aria-label"], WVe = { class: "kima-marquee__viewport" }, GVe = /*#__PURE__*/ Uc(/* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
122424
+ }), [["styles", [RVe]], ["__scopeId", "data-v-d9085095"]]), HVe = ".kima-marquee[data-v-ac73236c]{min-width:0;color:var(--kima-color-on-surface)}.kima-marquee__viewport[data-v-ac73236c]{overflow:hidden}.kima-marquee__track[data-v-ac73236c]{width:max-content;max-width:100%;display:flex}.kima-marquee__track--moving[data-v-ac73236c]{max-width:none;animation:linear infinite kima-marquee-scroll-ac73236c}.kima-marquee__group[data-v-ac73236c]{align-items:center;gap:var(--kima-space-6);flex:none;padding-inline-end:var(--kima-space-6);display:flex}@keyframes kima-marquee-scroll-ac73236c{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.kima-marquee__track[data-v-ac73236c]{animation:none!important;transform:none!important}}@media (forced-colors:active){.kima-marquee__track[data-v-ac73236c]{animation:none}}", UVe = ["aria-label"], WVe = { class: "kima-marquee__viewport" }, GVe = /*#__PURE__*/ Uc(/* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
122425
122425
  __name: "marquee.ce",
122426
122426
  props: {
122427
122427
  animated: Boolean,
@@ -122544,7 +122544,7 @@ var RVe = ".kima-config-provider[data-v-28f72ed9]{color:var(--kima-color-on-surf
122544
122544
  }
122545
122545
  }), [F(t.$slots, "default", {}, void 0, !0)], 16, qVe));
122546
122546
  }
122547
- }), [["styles", [KVe]], ["__scopeId", "data-v-2fe32054"]]), YVe = "@keyframes kima-ripple-glow-c8b20436{0%{opacity:.14}55%{opacity:.1}to{opacity:0}}.kima-sidebar[data-v-c8b20436]{background:var(--kima-color-layer-1);box-sizing:border-box;width:288px;max-width:100%;padding:var(--kima-space-3);border-radius:var(--kima-radius-l);transition:width var(--kima-duration-slow) var(--kima-curve-emphasized);border:0}.kima-sidebar--collapsed[data-v-c8b20436]{width:180px}.kima-sidebar--mobile[data-v-c8b20436]{width:100%}.kima-sidebar__body[data-v-c8b20436]:not(dialog){gap:var(--kima-space-4);flex-direction:column;display:flex}.kima-sidebar footer[data-v-c8b20436]{margin-top:auto}@media (prefers-reduced-motion:reduce){.kima-sidebar[data-v-c8b20436]{transition:none}}", XVe = ["data-collapsed", "aria-label"], ZVe = { key: 0 }, QVe = { key: 0 }, $Ve = { key: 0 }, eHe = /*#__PURE__*/ Uc(/* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
122547
+ }), [["styles", [KVe]], ["__scopeId", "data-v-2fe32054"]]), YVe = "@keyframes kima-ripple-glow-0fd95ccf{0%{opacity:.14}55%{opacity:.1}to{opacity:0}}.kima-sidebar[data-v-0fd95ccf]{background:var(--kima-color-layer-1);box-sizing:border-box;width:288px;max-width:100%;padding:var(--kima-space-3);border-radius:var(--kima-radius-l);transition:width var(--kima-duration-slow) var(--kima-curve-emphasized);border:0}.kima-sidebar--collapsed[data-v-0fd95ccf]{width:180px}.kima-sidebar--mobile[data-v-0fd95ccf]{width:100%}.kima-sidebar__body[data-v-0fd95ccf]:not(dialog){gap:var(--kima-space-4);flex-direction:column;display:flex}.kima-sidebar footer[data-v-0fd95ccf]{margin-top:auto}@media (prefers-reduced-motion:reduce){.kima-sidebar[data-v-0fd95ccf]{transition:none}}", XVe = ["data-collapsed", "aria-label"], ZVe = { key: 0 }, QVe = { key: 0 }, $Ve = { key: 0 }, eHe = /*#__PURE__*/ Uc(/* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
122548
122548
  __name: "sidebar.ce",
122549
122549
  props: {
122550
122550
  items: {
@@ -122656,7 +122656,7 @@ var RVe = ".kima-config-provider[data-v-28f72ed9]{color:var(--kima-color-on-surf
122656
122656
  "onUpdate:open"
122657
122657
  ]))], 16, XVe));
122658
122658
  }
122659
- }), [["styles", [YVe]], ["__scopeId", "data-v-c8b20436"]]), tHe = "kima-affix{display:contents}.kima-affix[data-v-f21e108b]{z-index:10;color:var(--kima-color-on-surface);font-family:var(--kima-font-family);align-self:flex-start}", nHe = ["data-affixed"], rHe = /*#__PURE__*/ Uc(/* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
122659
+ }), [["styles", [YVe]], ["__scopeId", "data-v-0fd95ccf"]]), tHe = "kima-affix{display:contents}.kima-affix[data-v-f21e108b]{z-index:10;color:var(--kima-color-on-surface);font-family:var(--kima-font-family);align-self:flex-start}", nHe = ["data-affixed"], rHe = /*#__PURE__*/ Uc(/* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
122660
122660
  __name: "affix.ce",
122661
122661
  props: {
122662
122662
  placement: {