@k2b/ui 0.36.0 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/actions/Dropdown.js +132 -116
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/actions/Tabs.js +18 -15
- package/dist/browser/actions/Tabs.js.map +1 -1
- package/dist/browser/chat/ChatComposer.js +58 -25
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/content/MessageRow.js +164 -152
- package/dist/browser/content/MessageRow.js.map +1 -1
- package/dist/browser/feedback/prompts.js +23 -9
- package/dist/browser/feedback/prompts.js.map +1 -1
- package/dist/browser/inputs/Combobox.js +56 -51
- package/dist/browser/inputs/Combobox.js.map +1 -1
- package/dist/browser/inputs/RichSelect.js +86 -67
- package/dist/browser/inputs/RichSelect.js.map +1 -1
- package/dist/browser/internal/keyed-for.js +47 -0
- package/dist/browser/internal/keyed-for.js.map +1 -0
- package/dist/browser/layout/AppWorkspace.js +252 -238
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/text-editor/engine.js +13 -10
- package/dist/browser/text-editor/engine.js.map +1 -1
- package/dist/ssr/actions/Dropdown.js +101 -85
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/actions/Tabs.js +12 -9
- package/dist/ssr/actions/Tabs.js.map +1 -1
- package/dist/ssr/chat/ChatComposer.js +41 -15
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/content/MessageRow.js +9 -2
- package/dist/ssr/content/MessageRow.js.map +1 -1
- package/dist/ssr/feedback/prompts.js +22 -8
- package/dist/ssr/feedback/prompts.js.map +1 -1
- package/dist/ssr/inputs/Combobox.js +18 -13
- package/dist/ssr/inputs/Combobox.js.map +1 -1
- package/dist/ssr/inputs/RichSelect.js +47 -28
- package/dist/ssr/inputs/RichSelect.js.map +1 -1
- package/dist/ssr/internal/keyed-for.js +47 -0
- package/dist/ssr/internal/keyed-for.js.map +1 -0
- package/dist/ssr/layout/AppWorkspace.js +58 -50
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/text-editor/engine.js +13 -10
- package/dist/ssr/text-editor/engine.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/content/MessageRow.d.ts +1 -1
- package/dist/types/feedback/prompts.d.ts +5 -0
- package/dist/types/internal/keyed-for.d.ts +13 -0
- package/dist/types/layout/AppWorkspace.d.ts +6 -0
- package/dist/types/text-editor/engine.d.ts +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["internal/keyed-for.tsx"],"sourcesContent":["import { createMemo, For, type JSX, untrack } from \"solid-js\";\n\ntype Entry<T> = { item: T; key: string; identity: string };\n\n/**\n * `<For>` that keeps a row's element while its item stays the same: the same object, also when its getters change, or\n * a new object with the same identity (`by`). Hosts rebuild equal items whenever their inputs change; `<For>` would\n * then replace each row, and a row replaced between press and release swallows the click (#2140).\n * Each row reads its current item.\n */\nexport function KeyedFor<T>(props: {\n each: readonly T[];\n by: (item: T) => string;\n fallback?: JSX.Element;\n children: (item: () => T, index: () => number) => JSX.Element;\n}): JSX.Element {\n let previous: Entry<T>[] = [];\n let counter = 0;\n const entries = createMemo(() => {\n const byObject = new Map(previous.map((entry) => [entry.item, entry.key]));\n const byIdentity = new Map<string, string[]>();\n for (const entry of previous) byIdentity.set(entry.identity, [...(byIdentity.get(entry.identity) ?? []), entry.key]);\n const used = new Set<string>();\n const next = props.each.map((item): Entry<T> => {\n // Only a new list reconciles rows; a getter behind the identity changing alone must not re-read the list.\n const identity = untrack(() => props.by(item));\n const same = byObject.get(item);\n const equal = byIdentity.get(identity)?.find((key) => !used.has(key));\n const key = same !== undefined && !used.has(same) ? same : (equal ?? `row-${counter++}`);\n used.add(key);\n return { item, key, identity };\n });\n previous = next;\n return next;\n });\n const byKey = createMemo(() => new Map(entries().map((entry) => [entry.key, entry.item])));\n return (\n <For each={entries().map((entry) => entry.key)} fallback={props.fallback}>\n {(key, index) => {\n const first = byKey().get(key)!;\n return props.children(() => byKey().get(key) ?? first, index);\n }}\n </For>\n );\n}\n"],"mappings":";AAAA,SAAS,UAAU,EAAE,GAAG,EAAY,OAAO,QAAQ,UAAU;AAI7D;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS,QAAQ,CAAI,KAK3B,EAAe;EACd,IAAI,QAAoB,GAAG,EAAE;EAC7B,IAAI,OAAO,GAAG,CAAC;EACf,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM;IAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAE,KAAK,IAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAmB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,IAAe;MAC9C;MACA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;MAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;MAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAE,GAAG,IAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;MACrE,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,GAAI,KAAK,IAAI,OAAO,OAAO,EAAE,EAAG;MACxF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;MACb,OAAO;QAAE,IAAI;QAAE,GAAG;QAAE;MAAS,CAAC;IAChC,CAAC,CAAC;IACF,QAAQ,GAAG,IAAI;IACf,OAAO,IAAI;EACb,CAAC,CAAC;EACF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAE,KAAK,IAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EAC1F,yBACG,GAAG;IAAA,IAAC,IAAI;MAAA,OAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAE,KAAK,IAAK,KAAK,CAAC,GAAG,CAAC;IAAA;IAAA,IAAE,QAAQ;MAAA,OAAE,KAAK,CAAC,QAAQ;IAAA;IAAA,UACrE,CAAC,GAAG,EAAE,KAAK,KAAK;MACf,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAE;MAC/B,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,KAAK,CAAC;IAC/D;EAAC;AAGP","ignoreList":[]}
|