@logicplanes/kaeso-ui 0.1.0 → 0.2.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/AGENTS.md +1 -0
- package/LICENSE +1 -1
- package/ai/component-guides.md +269 -7
- package/ai/component-registry.json +600 -800
- package/ai/component-registry.md +200 -141
- package/ai/icons.md +2 -2
- package/ai/tokens.md +1 -1
- package/dist/blocks/delete-resource.js +1 -1
- package/dist/blocks/pages.js +3 -3
- package/dist/blocks/resource-list.js +2 -2
- package/dist/chunks/app-frame-BXh-06HL.js +214 -0
- package/dist/chunks/app-frame-BXh-06HL.js.map +1 -0
- package/dist/chunks/{banner-BiziJuBZ.js → banner-DxGBPQ7p.js} +2 -2
- package/dist/chunks/{banner-BiziJuBZ.js.map → banner-DxGBPQ7p.js.map} +1 -1
- package/dist/chunks/{button-BHKAE6ui.js → button-DQvoOxVQ.js} +2 -2
- package/dist/chunks/{button-BHKAE6ui.js.map → button-DQvoOxVQ.js.map} +1 -1
- package/dist/chunks/{calendar-B5SSTE56.js → calendar-CN3YJi2k.js} +3 -3
- package/dist/chunks/{calendar-B5SSTE56.js.map → calendar-CN3YJi2k.js.map} +1 -1
- package/dist/chunks/code-BADhvsgC.js +33 -0
- package/dist/chunks/code-BADhvsgC.js.map +1 -0
- package/dist/chunks/{code-block-BbK6E4Eo.js → code-block-DxtladFW.js} +41 -37
- package/dist/chunks/code-block-DxtladFW.js.map +1 -0
- package/dist/chunks/{combobox-D8pQk22r.js → combobox-D30Wt11R.js} +4 -4
- package/dist/chunks/{combobox-D8pQk22r.js.map → combobox-D30Wt11R.js.map} +1 -1
- package/dist/chunks/{copy-button-mAzHjYXq.js → copy-button-DXxn-YYZ.js} +4 -4
- package/dist/chunks/{copy-button-mAzHjYXq.js.map → copy-button-DXxn-YYZ.js.map} +1 -1
- package/dist/chunks/{core-Bgefcs3z.js → core-K960A4OT.js} +119 -120
- package/dist/chunks/core-K960A4OT.js.map +1 -0
- package/dist/chunks/{date-popup-Er1oQwtU.js → date-popup-B-6xhb-1.js} +3 -3
- package/dist/chunks/{date-popup-Er1oQwtU.js.map → date-popup-B-6xhb-1.js.map} +1 -1
- package/dist/chunks/{de-BCg1eRVd.js → de-CTAo4KL7.js} +10 -10
- package/dist/chunks/de-CTAo4KL7.js.map +1 -0
- package/dist/chunks/dialog-LNKgPEsV.js +319 -0
- package/dist/chunks/dialog-LNKgPEsV.js.map +1 -0
- package/dist/chunks/{icon-Bha63LaN.js → icon-CBzvyEqC.js} +30 -29
- package/dist/chunks/icon-CBzvyEqC.js.map +1 -0
- package/dist/chunks/{icon-button-Bw67oKtx.js → icon-button-_x1RUphC.js} +3 -3
- package/dist/chunks/{icon-button-Bw67oKtx.js.map → icon-button-_x1RUphC.js.map} +1 -1
- package/dist/chunks/{identity-DQinp-Ep.js → identity-BtZC_d_Q.js} +3 -3
- package/dist/chunks/{identity-DQinp-Ep.js.map → identity-BtZC_d_Q.js.map} +1 -1
- package/dist/chunks/{input-Biakz6GB.js → input-CNTfI6YE.js} +2 -2
- package/dist/chunks/{input-Biakz6GB.js.map → input-CNTfI6YE.js.map} +1 -1
- package/dist/chunks/{input-group-DQqEPFj_.js → input-group-CYA1MEoZ.js} +2 -2
- package/dist/chunks/{input-group-DQqEPFj_.js.map → input-group-CYA1MEoZ.js.map} +1 -1
- package/dist/chunks/{iso-field-CznqNVrH.js → iso-field-1qmg7TP8.js} +2 -2
- package/dist/chunks/{iso-field-CznqNVrH.js.map → iso-field-1qmg7TP8.js.map} +1 -1
- package/dist/chunks/linear-scale-BWKeRqDX.js +37 -0
- package/dist/chunks/linear-scale-BWKeRqDX.js.map +1 -0
- package/dist/chunks/{link-tTapNTpM.js → link-vz9aV8WX.js} +9 -2
- package/dist/chunks/link-vz9aV8WX.js.map +1 -0
- package/dist/chunks/{list-CN8pO8lv.js → list-CzaiyNja.js} +119 -111
- package/dist/chunks/list-CzaiyNja.js.map +1 -0
- package/dist/chunks/{markdown-C-iJsYnd.js → markdown-5NyaHHfN.js} +6 -6
- package/dist/chunks/{markdown-C-iJsYnd.js.map → markdown-5NyaHHfN.js.map} +1 -1
- package/dist/chunks/{menu-OURWt_hD.js → menu-DyVPwgfF.js} +2 -2
- package/dist/chunks/{menu-OURWt_hD.js.map → menu-DyVPwgfF.js.map} +1 -1
- package/dist/chunks/nav-sheet-BIErlV74.js +58 -0
- package/dist/chunks/nav-sheet-BIErlV74.js.map +1 -0
- package/dist/chunks/{logo-VmXYhIJL.js → nav-wordmark-DLkItdvo.js} +12 -93
- package/dist/chunks/nav-wordmark-DLkItdvo.js.map +1 -0
- package/dist/chunks/observe-resize-DhxhmoyB.js +25 -0
- package/dist/chunks/observe-resize-DhxhmoyB.js.map +1 -0
- package/dist/chunks/{page-header-BIRswR73.js → page-header-CEPZzhRp.js} +2 -2
- package/dist/chunks/{page-header-BIRswR73.js.map → page-header-CEPZzhRp.js.map} +1 -1
- package/dist/chunks/{pagination-DYdLm18-.js → pagination-CCMxQ5pH.js} +3 -3
- package/dist/chunks/{pagination-DYdLm18-.js.map → pagination-CCMxQ5pH.js.map} +1 -1
- package/dist/chunks/{range-popup-AbRzgHtY.js → range-popup-DGOnGGag.js} +4 -4
- package/dist/chunks/{range-popup-AbRzgHtY.js.map → range-popup-DGOnGGag.js.map} +1 -1
- package/dist/chunks/resize-motion-CMaidkwe.js +101 -0
- package/dist/chunks/resize-motion-CMaidkwe.js.map +1 -0
- package/dist/chunks/{rights-CXo7zEf6.js → rights-BbiJ0AJB.js} +4 -4
- package/dist/chunks/{rights-CXo7zEf6.js.map → rights-BbiJ0AJB.js.map} +1 -1
- package/dist/chunks/{section-XStLtXKa.js → section-DzOLLN1p.js} +3 -3
- package/dist/chunks/section-DzOLLN1p.js.map +1 -0
- package/dist/chunks/{segmented-CDTx2n29.js → segmented-MrinfDL8.js} +36 -35
- package/dist/chunks/segmented-MrinfDL8.js.map +1 -0
- package/dist/chunks/select-Bc4kRiSG.js +227 -0
- package/dist/chunks/select-Bc4kRiSG.js.map +1 -0
- package/dist/chunks/{sidebar-C4fL_KMm.js → sidebar-5IA18LuP.js} +180 -183
- package/dist/chunks/sidebar-5IA18LuP.js.map +1 -0
- package/dist/chunks/{sidebar-menu-sd9vCpDy.js → sidebar-menu-DRWRxcJ3.js} +2 -2
- package/dist/chunks/{sidebar-menu-sd9vCpDy.js.map → sidebar-menu-DRWRxcJ3.js.map} +1 -1
- package/dist/chunks/{switch-CztLhA8F.js → switch-XMY_CQE-.js} +2 -2
- package/dist/chunks/{switch-CztLhA8F.js.map → switch-XMY_CQE-.js.map} +1 -1
- package/dist/chunks/{tag-BsmQ1xPj.js → tag-Dg89uYpV.js} +3 -3
- package/dist/chunks/{tag-BsmQ1xPj.js.map → tag-Dg89uYpV.js.map} +1 -1
- package/dist/chunks/{text-BPglS3vq.js → text--5MKh2G4.js} +3 -3
- package/dist/chunks/{text-BPglS3vq.js.map → text--5MKh2G4.js.map} +1 -1
- package/dist/chunks/{textarea-Bvk7N2bh.js → textarea-Cj8iR82R.js} +3 -3
- package/dist/chunks/{textarea-Bvk7N2bh.js.map → textarea-Cj8iR82R.js.map} +1 -1
- package/dist/chunks/theme-provider-DJhORMlc.js +72 -0
- package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -0
- package/dist/chunks/tooltip-DEbCCsru.js +151 -0
- package/dist/chunks/tooltip-DEbCCsru.js.map +1 -0
- package/dist/chunks/{tooltip-root-DWhtAtFb.js → tooltip-root-DRd4ciUv.js} +2 -2
- package/dist/chunks/{tooltip-root-DWhtAtFb.js.map → tooltip-root-DRd4ciUv.js.map} +1 -1
- package/dist/chunks/use-layout-width-CbSDbRb0.js +28 -0
- package/dist/chunks/use-layout-width-CbSDbRb0.js.map +1 -0
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js +26 -0
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +1 -0
- package/dist/chunks/use-truncated-CW0hByYt.js +24 -0
- package/dist/chunks/use-truncated-CW0hByYt.js.map +1 -0
- package/dist/chunks/{virtual-rows-BgMdVelU.js → virtual-rows-BZe49bKi.js} +2 -2
- package/dist/chunks/{virtual-rows-BgMdVelU.js.map → virtual-rows-BZe49bKi.js.map} +1 -1
- package/dist/chunks/{zh-CN-cPjO1OOo.js → zh-CN-C7GmVswt.js} +15 -15
- package/dist/chunks/zh-CN-C7GmVswt.js.map +1 -0
- package/dist/components/app-frame.js +3 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +2 -2
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +78 -77
- package/dist/components/charts/bar.js.map +1 -1
- package/dist/components/charts/donut.js +2 -2
- package/dist/components/charts/gauge.js +1 -1
- package/dist/components/charts/sankey.js +1 -1
- package/dist/components/charts/timeseries.js +75 -75
- package/dist/components/charts/timeseries.js.map +1 -1
- package/dist/components/charts.js +1 -1
- package/dist/components/code-block.js +1 -1
- package/dist/components/code.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-palette.js +105 -97
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +94 -95
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +3 -3
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +141 -153
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +5 -5
- package/dist/components/filter-chip.js +1 -1
- package/dist/components/flow.js +37 -36
- package/dist/components/flow.js.map +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input.js +5 -5
- package/dist/components/kaeso/conversation.js +2 -2
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +3 -3
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +1 -1
- package/dist/components/kaeso.js +4 -4
- package/dist/components/key-value.js +3 -3
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/logo.js +101 -1
- package/dist/components/logo.js.map +1 -0
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +8 -8
- package/dist/components/scroll-area.js +30 -23
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/section.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sheet.js +46 -41
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/stat.js +75 -76
- package/dist/components/stat.js.map +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-image.js +38 -0
- package/dist/components/theme-image.js.map +1 -0
- package/dist/components/theme-menu.js +3 -3
- package/dist/components/theme-select.js +58 -0
- package/dist/components/theme-select.js.map +1 -0
- package/dist/components/toast.js +91 -92
- package/dist/components/toast.js.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +76 -74
- package/dist/kaeso.css +39 -16
- package/dist/styles.css +1 -1
- package/dist/theme.js +1 -1
- package/dist/types/components/app-frame/app-frame.d.ts +2 -10
- package/dist/types/components/app-frame/docs.d.ts +1 -0
- package/dist/types/components/app-frame/index.d.ts +1 -0
- package/dist/types/components/app-frame/nav-sheet.d.ts +11 -0
- package/dist/types/components/charts/linear-scale.d.ts +17 -0
- package/dist/types/components/code/code.d.ts +16 -0
- package/dist/types/components/code/docs.d.ts +1 -0
- package/dist/types/components/code-block/code-block.d.ts +2 -0
- package/dist/types/components/code-block/docs.d.ts +4 -0
- package/dist/types/components/command-palette/command-palette.d.ts +1 -0
- package/dist/types/components/command-palette/docs.d.ts +1 -0
- package/dist/types/components/dialog/dialog.d.ts +5 -2
- package/dist/types/components/dialog/docs.d.ts +10 -0
- package/dist/types/components/dialog/index.d.ts +1 -0
- package/dist/types/components/dialog/scope.d.ts +9 -0
- package/dist/types/components/dialog/step-dialog.d.ts +9 -1
- package/dist/types/components/link/link.d.ts +8 -0
- package/dist/types/components/logo/nav-wordmark.d.ts +6 -0
- package/dist/types/components/scroll-area/scroll-area.d.ts +3 -3
- package/dist/types/components/theme-image/docs.d.ts +13 -0
- package/dist/types/components/theme-image/index.d.ts +1 -0
- package/dist/types/components/theme-image/theme-image.d.ts +23 -0
- package/dist/types/components/theme-select/docs.d.ts +10 -0
- package/dist/types/components/theme-select/index.d.ts +1 -0
- package/dist/types/components/theme-select/theme-select.d.ts +34 -0
- package/dist/types/icons/groups.d.ts +1 -1
- package/dist/types/icons/vocabulary.d.ts +5 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/theme/theme-provider.d.ts +1 -1
- package/dist/types/utils/dialog-scope.d.ts +7 -0
- package/dist/types/utils/lazy-module.d.ts +7 -2
- package/dist/types/utils/observe-resize.d.ts +1 -0
- package/dist/types/utils/resize-motion.d.ts +2 -0
- package/foundations/motion.md +1 -0
- package/package.json +2 -2
- package/dist/chunks/app-frame-BBIMch8X.js +0 -224
- package/dist/chunks/app-frame-BBIMch8X.js.map +0 -1
- package/dist/chunks/code-DDyOlIFO.js +0 -23
- package/dist/chunks/code-DDyOlIFO.js.map +0 -1
- package/dist/chunks/code-block-BbK6E4Eo.js.map +0 -1
- package/dist/chunks/core-Bgefcs3z.js.map +0 -1
- package/dist/chunks/de-BCg1eRVd.js.map +0 -1
- package/dist/chunks/dialog-CVqSVk3T.js +0 -283
- package/dist/chunks/dialog-CVqSVk3T.js.map +0 -1
- package/dist/chunks/icon-Bha63LaN.js.map +0 -1
- package/dist/chunks/link-tTapNTpM.js.map +0 -1
- package/dist/chunks/list-CN8pO8lv.js.map +0 -1
- package/dist/chunks/logo-VmXYhIJL.js.map +0 -1
- package/dist/chunks/restore-focus-Cap1Q-R3.js +0 -19
- package/dist/chunks/restore-focus-Cap1Q-R3.js.map +0 -1
- package/dist/chunks/section-XStLtXKa.js.map +0 -1
- package/dist/chunks/segmented-CDTx2n29.js.map +0 -1
- package/dist/chunks/select-Ca3HGsN1.js +0 -223
- package/dist/chunks/select-Ca3HGsN1.js.map +0 -1
- package/dist/chunks/sidebar-C4fL_KMm.js.map +0 -1
- package/dist/chunks/theme-provider-mgUaQK7L.js +0 -69
- package/dist/chunks/theme-provider-mgUaQK7L.js.map +0 -1
- package/dist/chunks/tooltip-CDu00nzg.js +0 -124
- package/dist/chunks/tooltip-CDu00nzg.js.map +0 -1
- package/dist/chunks/use-layout-width-DZaLOQMT.js +0 -27
- package/dist/chunks/use-layout-width-DZaLOQMT.js.map +0 -1
- package/dist/chunks/use-scroll-margin-DWcfIXac.js +0 -25
- package/dist/chunks/use-scroll-margin-DWcfIXac.js.map +0 -1
- package/dist/chunks/use-truncated-DmQoePvG.js +0 -25
- package/dist/chunks/use-truncated-DmQoePvG.js.map +0 -1
- package/dist/chunks/zh-CN-cPjO1OOo.js.map +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { i as e } from "../chunks/context-BELWW79w.js";
|
|
3
|
+
import { a as t } from "../chunks/theme-provider-DJhORMlc.js";
|
|
4
|
+
import { r as n } from "../chunks/select-Bc4kRiSG.js";
|
|
5
|
+
import { forwardRef as r } from "react";
|
|
6
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/theme-select/theme-select.tsx
|
|
8
|
+
var a = {
|
|
9
|
+
appearance: {
|
|
10
|
+
ghost: { classes: "" },
|
|
11
|
+
default: { classes: "" }
|
|
12
|
+
},
|
|
13
|
+
size: {
|
|
14
|
+
sm: { classes: "" },
|
|
15
|
+
md: { classes: "" }
|
|
16
|
+
}
|
|
17
|
+
}, o = {
|
|
18
|
+
appearance: "ghost",
|
|
19
|
+
size: "sm"
|
|
20
|
+
}, s = [
|
|
21
|
+
"system",
|
|
22
|
+
"light",
|
|
23
|
+
"dark"
|
|
24
|
+
], c = (e) => s.includes(e), l = /* @__PURE__ */ r(function({ appearance: r = "ghost", size: a = "sm", fullWidth: o, className: s, "data-force": l }, u) {
|
|
25
|
+
let { theme: d, setTheme: f } = t(), p = e();
|
|
26
|
+
return /* @__PURE__ */ i(n, {
|
|
27
|
+
ref: u,
|
|
28
|
+
"aria-label": p("themeMenu.theme", "Theme"),
|
|
29
|
+
appearance: r,
|
|
30
|
+
size: a,
|
|
31
|
+
fullWidth: o,
|
|
32
|
+
className: s,
|
|
33
|
+
"data-force": l,
|
|
34
|
+
value: d,
|
|
35
|
+
onValueChange: (e) => {
|
|
36
|
+
c(e) && f(e);
|
|
37
|
+
},
|
|
38
|
+
options: [
|
|
39
|
+
{
|
|
40
|
+
value: "system",
|
|
41
|
+
label: p("themeMenu.system", "System")
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
value: "light",
|
|
45
|
+
label: p("themeMenu.light", "Light")
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
value: "dark",
|
|
49
|
+
label: p("themeMenu.dark", "Dark")
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
process.env.NODE_ENV !== "production" && (l.displayName = "ThemeSelect");
|
|
55
|
+
//#endregion
|
|
56
|
+
export { o as KAESO_THEME_SELECT_DEFAULT_VARIANTS, a as KAESO_THEME_SELECT_VARIANTS, l as ThemeSelect };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=theme-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-select.js","names":["useUiText","useTheme","Select","KAESO_THEME_SELECT_VARIANTS","KAESO_THEME_SELECT_DEFAULT_VARIANTS","PREFERENCES","isPreference","value","ThemeSelect","force","t","theme","setTheme"],"sources":["../../src/components/theme-select/theme-select.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { useTheme, type ThemePreference } from \"../../theme/theme-provider.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { Select } from \"../select/select.js\";\n\nexport const KAESO_THEME_SELECT_VARIANTS = {\n appearance: {\n ghost: { classes: \"\" },\n default: { classes: \"\" },\n },\n size: {\n sm: { classes: \"\" },\n md: { classes: \"\" },\n },\n} as const;\nexport const KAESO_THEME_SELECT_DEFAULT_VARIANTS = { appearance: \"ghost\", size: \"sm\" } as const;\n\nconst PREFERENCES: readonly ThemePreference[] = [\"system\", \"light\", \"dark\"];\nconst isPreference = (value: string): value is ThemePreference => (PREFERENCES as readonly string[]).includes(value);\n\nexport interface ThemeSelectProps {\n appearance?: keyof typeof KAESO_THEME_SELECT_VARIANTS.appearance | undefined;\n size?: keyof typeof KAESO_THEME_SELECT_VARIANTS.size | undefined;\n fullWidth?: boolean | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const ThemeSelect = /* @__PURE__ */ forwardRef<HTMLButtonElement, ThemeSelectProps>(function ThemeSelect(\n { appearance = \"ghost\", size = \"sm\", fullWidth, className, \"data-force\": force },\n ref,\n) {\n const { theme, setTheme } = useTheme();\n const t = useUiText();\n return (\n <Select\n ref={ref}\n aria-label={t(\"themeMenu.theme\", \"Theme\")}\n appearance={appearance}\n size={size}\n fullWidth={fullWidth}\n className={className}\n data-force={force}\n value={theme}\n onValueChange={(value) => {\n if (isPreference(value)) setTheme(value);\n }}\n options={[\n { value: \"system\", label: t(\"themeMenu.system\", \"System\") },\n { value: \"light\", label: t(\"themeMenu.light\", \"Light\") },\n { value: \"dark\", label: t(\"themeMenu.dark\", \"Dark\") },\n ]}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") ThemeSelect.displayName = \"ThemeSelect\";\n"],"mappings":";;;;;;;AAKA,IAAaG,IAA8B;CACzC,YAAY;EACV,OAAO,EAAE,SAAS,GAAG;EACrB,SAAS,EAAE,SAAS,GAAG;CACzB;CACA,MAAM;EACJ,IAAI,EAAE,SAAS,GAAG;EAClB,IAAI,EAAE,SAAS,GAAG;CACpB;AACF,GACaC,IAAsC;CAAE,YAAY;CAAS,MAAM;AAAK,GAE/EC,IAA0C;CAAC;CAAU;CAAS;AAAM,GACpEC,KAAgB,MAA6CD,EAAkC,SAASE,CAAK,GAUtGC,IAA8B,kBAAgD,SACzF,EAAE,gBAAa,SAAS,UAAO,MAAM,cAAW,cAAW,cAAcC,KACzE,GACA;CACA,IAAM,EAAE,UAAO,gBAAaR,EAAS,GAC/BS,IAAIV,EAAU;CACpB,OACE,kBAACE,GAAD;EACO;EACL,cAAYQ,EAAE,mBAAmB,OAAO;EAC5B;EACN;EACK;EACA;EACX,cAAYD;EACZ,OAAOE;EACP,gBAAgB,MAAU;GACxB,AAAIL,EAAaC,CAAK,KAAGK,EAASL,CAAK;EACzC;EACA,SAAS;GACP;IAAE,OAAO;IAAU,OAAOG,EAAE,oBAAoB,QAAQ;GAAE;GAC1D;IAAE,OAAO;IAAS,OAAOA,EAAE,mBAAmB,OAAO;GAAE;GACvD;IAAE,OAAO;IAAQ,OAAOA,EAAE,kBAAkB,MAAM;GAAE;EACtD;CACD,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc"}
|
package/dist/components/toast.js
CHANGED
|
@@ -3,28 +3,29 @@ import { t as e } from "../chunks/cn-CidVUKMm.js";
|
|
|
3
3
|
import { r as t } from "../chunks/portal-context-BBbzDKmY.js";
|
|
4
4
|
import { i as n } from "../chunks/context-BELWW79w.js";
|
|
5
5
|
import { t as r } from "../chunks/icon-CeNQtobn.js";
|
|
6
|
-
import {
|
|
7
|
-
import { r as a } from "../chunks/
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
6
|
+
import { t as i } from "../chunks/observe-resize-DhxhmoyB.js";
|
|
7
|
+
import { r as a } from "../chunks/loader-CUehxvSZ.js";
|
|
8
|
+
import { r as o } from "../chunks/swap-text-BhPI8DOf.js";
|
|
9
|
+
import { useLayoutEffect as s, useRef as c, useState as l } from "react";
|
|
10
|
+
import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
11
|
+
import { Alert02Icon as p, AlertCircleIcon as m, Cancel01Icon as h, CheckmarkCircle02Icon as g, InformationCircleIcon as _ } from "@hugeicons/core-free-icons";
|
|
12
|
+
import { Toast as v } from "@base-ui/react/toast";
|
|
12
13
|
//#region src/components/toast/toast.tsx
|
|
13
|
-
var
|
|
14
|
+
var y = { tone: {
|
|
14
15
|
neutral: { classes: "" },
|
|
15
16
|
success: { classes: "text-success" },
|
|
16
17
|
error: { classes: "text-danger" },
|
|
17
18
|
warning: { classes: "text-warning" },
|
|
18
19
|
info: { classes: "text-info" },
|
|
19
20
|
loading: { classes: "text-toast-fg-secondary" }
|
|
20
|
-
} },
|
|
21
|
-
success:
|
|
22
|
-
error:
|
|
23
|
-
warning:
|
|
24
|
-
info:
|
|
25
|
-
},
|
|
26
|
-
function
|
|
27
|
-
return
|
|
21
|
+
} }, b = { tone: "neutral" }, x = {
|
|
22
|
+
success: g,
|
|
23
|
+
error: m,
|
|
24
|
+
warning: p,
|
|
25
|
+
info: _
|
|
26
|
+
}, S = /* @__PURE__ */ v.createToastManager();
|
|
27
|
+
function C(e, t, n = {}) {
|
|
28
|
+
return S.add({
|
|
28
29
|
title: t,
|
|
29
30
|
type: e,
|
|
30
31
|
...n.description === void 0 ? {} : { description: n.description },
|
|
@@ -37,19 +38,19 @@ function S(e, t, n = {}) {
|
|
|
37
38
|
} } : {}
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
|
-
var
|
|
41
|
-
success: (e, t) =>
|
|
42
|
-
error: (e, t) =>
|
|
43
|
-
warning: (e, t) =>
|
|
44
|
-
info: (e, t) =>
|
|
45
|
-
dismiss: (e) =>
|
|
41
|
+
var w = /* @__PURE__ */ Object.assign((e, t) => C("neutral", e, t), {
|
|
42
|
+
success: (e, t) => C("success", e, t),
|
|
43
|
+
error: (e, t) => C("error", e, t),
|
|
44
|
+
warning: (e, t) => C("warning", e, t),
|
|
45
|
+
info: (e, t) => C("info", e, t),
|
|
46
|
+
dismiss: (e) => S.close(e),
|
|
46
47
|
promise: (e, t) => {
|
|
47
48
|
let n = [
|
|
48
49
|
t.loading,
|
|
49
50
|
...typeof t.success == "string" ? [t.success] : [],
|
|
50
51
|
...typeof t.error == "string" ? [t.error] : []
|
|
51
52
|
];
|
|
52
|
-
return
|
|
53
|
+
return S.promise(e, {
|
|
53
54
|
loading: {
|
|
54
55
|
title: t.loading,
|
|
55
56
|
type: "loading",
|
|
@@ -70,74 +71,72 @@ var C = /* @__PURE__ */ Object.assign((e, t) => S("neutral", e, t), {
|
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
73
|
});
|
|
73
|
-
function
|
|
74
|
-
return t === "neutral" ? null : /* @__PURE__ */
|
|
75
|
-
className: e("flex shrink-0",
|
|
76
|
-
children: t === "loading" ? /* @__PURE__ */
|
|
77
|
-
icon:
|
|
74
|
+
function T({ tone: t }) {
|
|
75
|
+
return t === "neutral" ? null : /* @__PURE__ */ d("span", {
|
|
76
|
+
className: e("flex shrink-0", y.tone[t].classes),
|
|
77
|
+
children: t === "loading" ? /* @__PURE__ */ d(a, { size: "sm" }) : /* @__PURE__ */ d(r, {
|
|
78
|
+
icon: x[t],
|
|
78
79
|
size: "sm"
|
|
79
80
|
})
|
|
80
81
|
});
|
|
81
82
|
}
|
|
82
|
-
var
|
|
83
|
-
function
|
|
84
|
-
let n =
|
|
85
|
-
return
|
|
83
|
+
var E = "relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast", D = "inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring", O = "k-toast-close absolute -top-6 -left-6 inline-flex size-20 cursor-pointer items-center justify-center rounded-pill bg-toast text-toast-fg-secondary shadow-toast hover:text-toast-fg focus-ring";
|
|
84
|
+
function k(e, t) {
|
|
85
|
+
let n = c(null), [r, i] = l(!1);
|
|
86
|
+
return s(() => {
|
|
86
87
|
let e = n.current;
|
|
87
88
|
e && i(e.offsetHeight > 46);
|
|
88
89
|
}, [e, t]), [n, r];
|
|
89
90
|
}
|
|
90
|
-
function
|
|
91
|
-
let [l,
|
|
92
|
-
return /* @__PURE__ */
|
|
91
|
+
function A({ tone: t = "neutral", title: i, description: a, action: o, closable: s, "data-force": c }) {
|
|
92
|
+
let [l, u] = k(i, a), p = n();
|
|
93
|
+
return /* @__PURE__ */ f("div", {
|
|
93
94
|
role: "status",
|
|
94
95
|
className: "k-toast-static relative w-max",
|
|
95
|
-
children: [/* @__PURE__ */
|
|
96
|
+
children: [/* @__PURE__ */ f("div", {
|
|
96
97
|
ref: l,
|
|
97
|
-
className: e(
|
|
98
|
+
className: e(E, u ? "rounded-toast" : "rounded-pill", t === "neutral" ? "pl-16" : "pl-14", o ? "pr-6" : "pr-16"),
|
|
98
99
|
children: [
|
|
99
|
-
/* @__PURE__ */
|
|
100
|
-
/* @__PURE__ */
|
|
100
|
+
/* @__PURE__ */ d(T, { tone: t }),
|
|
101
|
+
/* @__PURE__ */ f("span", {
|
|
101
102
|
className: "min-w-0 text-pretty",
|
|
102
|
-
children: [i, a && /* @__PURE__ */
|
|
103
|
+
children: [i, a && /* @__PURE__ */ f("span", {
|
|
103
104
|
className: "font-regular text-toast-fg-secondary",
|
|
104
105
|
children: [" ", a]
|
|
105
106
|
})]
|
|
106
107
|
}),
|
|
107
|
-
o && /* @__PURE__ */
|
|
108
|
+
o && /* @__PURE__ */ d("button", {
|
|
108
109
|
type: "button",
|
|
109
|
-
className:
|
|
110
|
+
className: D,
|
|
110
111
|
children: o
|
|
111
112
|
})
|
|
112
113
|
]
|
|
113
|
-
}), s && /* @__PURE__ */
|
|
114
|
+
}), s && /* @__PURE__ */ d("button", {
|
|
114
115
|
type: "button",
|
|
115
116
|
"aria-label": p("toast.dismiss", "Dismiss"),
|
|
116
|
-
className:
|
|
117
|
+
className: O,
|
|
117
118
|
"data-force": c ? `visible ${c}` : "visible",
|
|
118
|
-
children: /* @__PURE__ */
|
|
119
|
-
icon:
|
|
119
|
+
children: /* @__PURE__ */ d(r, {
|
|
120
|
+
icon: h,
|
|
120
121
|
size: "xs",
|
|
121
122
|
className: "size-12"
|
|
122
123
|
})
|
|
123
124
|
})]
|
|
124
125
|
});
|
|
125
126
|
}
|
|
126
|
-
process.env.NODE_ENV !== "production" && (
|
|
127
|
-
function
|
|
128
|
-
let
|
|
129
|
-
return
|
|
130
|
-
let e =
|
|
131
|
-
if (
|
|
132
|
-
let t = () =>
|
|
133
|
-
|
|
134
|
-
let n = new ResizeObserver(t);
|
|
135
|
-
return n.observe(e), () => n.disconnect();
|
|
127
|
+
process.env.NODE_ENV !== "production" && (A.displayName = "ToastCapsule");
|
|
128
|
+
function j({ item: t, index: a, limit: c, onFrontWidth: l }) {
|
|
129
|
+
let p = n(), m = t.type ?? "neutral", g = t.data?.reserve, [_, y] = k(t.title, t.description);
|
|
130
|
+
return s(() => {
|
|
131
|
+
let e = _.current;
|
|
132
|
+
if (a !== 0 || !e) return;
|
|
133
|
+
let t = () => l(Math.round(e.offsetWidth));
|
|
134
|
+
return t(), i([e], t);
|
|
136
135
|
}, [
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
]), /* @__PURE__ */
|
|
136
|
+
a,
|
|
137
|
+
l,
|
|
138
|
+
_
|
|
139
|
+
]), /* @__PURE__ */ f(v.Root, {
|
|
141
140
|
toast: t,
|
|
142
141
|
swipeDirection: [
|
|
143
142
|
"down",
|
|
@@ -145,49 +144,49 @@ function A({ item: t, index: i, limit: s, onFrontWidth: c }) {
|
|
|
145
144
|
"right"
|
|
146
145
|
],
|
|
147
146
|
className: "k-toast outline-none",
|
|
148
|
-
...
|
|
149
|
-
...
|
|
150
|
-
children: [/* @__PURE__ */
|
|
151
|
-
ref:
|
|
152
|
-
className: e("k-toast-surface",
|
|
153
|
-
children: /* @__PURE__ */
|
|
147
|
+
...a > 0 ? { "data-behind": "" } : {},
|
|
148
|
+
...a >= c ? { "data-index-hidden": "" } : {},
|
|
149
|
+
children: [/* @__PURE__ */ d("div", {
|
|
150
|
+
ref: _,
|
|
151
|
+
className: e("k-toast-surface", E, y ? "rounded-toast" : "rounded-pill", m === "neutral" ? "pl-16" : "pl-14", t.actionProps ? "pr-6" : "pr-16"),
|
|
152
|
+
children: /* @__PURE__ */ f("div", {
|
|
154
153
|
className: "k-toast-content flex min-w-0 items-center gap-10",
|
|
155
154
|
children: [
|
|
156
|
-
/* @__PURE__ */
|
|
157
|
-
/* @__PURE__ */
|
|
155
|
+
/* @__PURE__ */ d(T, { tone: m }),
|
|
156
|
+
/* @__PURE__ */ f("span", {
|
|
158
157
|
className: "min-w-0 text-pretty",
|
|
159
|
-
children: [
|
|
160
|
-
reserve:
|
|
158
|
+
children: [g ? /* @__PURE__ */ d(o, {
|
|
159
|
+
reserve: g,
|
|
161
160
|
align: "start",
|
|
162
|
-
children: /* @__PURE__ */
|
|
163
|
-
}) : /* @__PURE__ */
|
|
164
|
-
render: /* @__PURE__ */
|
|
161
|
+
children: /* @__PURE__ */ d(v.Title, { render: /* @__PURE__ */ d("span", {}) })
|
|
162
|
+
}) : /* @__PURE__ */ d(v.Title, { render: /* @__PURE__ */ d("span", {}) }), t.description && /* @__PURE__ */ f(u, { children: [" ", /* @__PURE__ */ d(v.Description, {
|
|
163
|
+
render: /* @__PURE__ */ d("span", {}),
|
|
165
164
|
className: "font-regular text-toast-fg-secondary"
|
|
166
165
|
})] })]
|
|
167
166
|
}),
|
|
168
|
-
t.actionProps && /* @__PURE__ */
|
|
167
|
+
t.actionProps && /* @__PURE__ */ d(v.Action, { className: D })
|
|
169
168
|
]
|
|
170
169
|
})
|
|
171
|
-
}), /* @__PURE__ */
|
|
172
|
-
"aria-label":
|
|
173
|
-
className:
|
|
174
|
-
children: /* @__PURE__ */
|
|
175
|
-
icon:
|
|
170
|
+
}), /* @__PURE__ */ d(v.Close, {
|
|
171
|
+
"aria-label": p("toast.dismiss", "Dismiss"),
|
|
172
|
+
className: O,
|
|
173
|
+
children: /* @__PURE__ */ d(r, {
|
|
174
|
+
icon: h,
|
|
176
175
|
size: "xs",
|
|
177
176
|
className: "size-12"
|
|
178
177
|
})
|
|
179
178
|
})]
|
|
180
179
|
});
|
|
181
180
|
}
|
|
182
|
-
function
|
|
183
|
-
let { toasts: r } =
|
|
184
|
-
return /* @__PURE__ */
|
|
181
|
+
function M({ limit: e }) {
|
|
182
|
+
let { toasts: r } = v.useToastManager(), i = r.filter((e) => e.transitionStatus !== "ending"), [a, o] = l(0), s = n();
|
|
183
|
+
return /* @__PURE__ */ d(v.Portal, {
|
|
185
184
|
container: t(),
|
|
186
|
-
children: /* @__PURE__ */
|
|
185
|
+
children: /* @__PURE__ */ d(v.Viewport, {
|
|
187
186
|
"aria-label": s("toast.notifications", "Notifications"),
|
|
188
187
|
className: "fixed right-0 bottom-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none",
|
|
189
188
|
style: { "--k-front-width": a ? `${a}px` : "auto" },
|
|
190
|
-
children: r.map((t) => /* @__PURE__ */
|
|
189
|
+
children: r.map((t) => /* @__PURE__ */ d(j, {
|
|
191
190
|
item: t,
|
|
192
191
|
index: Math.max(0, i.indexOf(t)),
|
|
193
192
|
limit: e,
|
|
@@ -196,19 +195,19 @@ function j({ limit: e }) {
|
|
|
196
195
|
})
|
|
197
196
|
});
|
|
198
197
|
}
|
|
199
|
-
function
|
|
200
|
-
return /* @__PURE__ */
|
|
201
|
-
toastManager:
|
|
198
|
+
function N({ limit: e = 3, timeout: t = 5e3 }) {
|
|
199
|
+
return /* @__PURE__ */ d(v.Provider, {
|
|
200
|
+
toastManager: S,
|
|
202
201
|
limit: e,
|
|
203
202
|
timeout: t,
|
|
204
|
-
children: /* @__PURE__ */
|
|
203
|
+
children: /* @__PURE__ */ d(M, { limit: e })
|
|
205
204
|
});
|
|
206
205
|
}
|
|
207
|
-
process.env.NODE_ENV !== "production" && (
|
|
208
|
-
var
|
|
209
|
-
return /* @__PURE__ */
|
|
210
|
-
}, { add:
|
|
206
|
+
process.env.NODE_ENV !== "production" && (N.displayName = "Toaster");
|
|
207
|
+
var P = /* @__PURE__ */ Object.assign(function(e) {
|
|
208
|
+
return /* @__PURE__ */ d(N, { ...e });
|
|
209
|
+
}, { add: w });
|
|
211
210
|
//#endregion
|
|
212
|
-
export {
|
|
211
|
+
export { b as KAESO_TOAST_DEFAULT_VARIANTS, y as KAESO_TOAST_VARIANTS, P as Toast, A as ToastCapsule, N as Toaster, w as toast, S as toastManager };
|
|
213
212
|
|
|
214
213
|
//# sourceMappingURL=toast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","names":["__icon_CheckmarkCircle02Icon","__icon_AlertCircleIcon","__icon_Alert02Icon","__icon_InformationCircleIcon","__icon_Cancel01Icon","BaseToast","_Fragment","cn","usePortalContainer","useUiText","Icon","Spinner","SwapText","Fragment$1","Toast$1","KAESO_TOAST_VARIANTS","KAESO_TOAST_DEFAULT_VARIANTS","ICON","CheckmarkCircle02Icon","AlertCircleIcon","Alert02Icon","InformationCircleIcon","toastManager","add","tone","o","toast","title","id","reserve","m","p","v","ToneIcon","SURFACE","ACTION","CLOSE","useMultiline","ref","useRef","multi","setMulti","useState","useLayoutEffect","el","description","ToastCapsule","force","t","action","closable","Cancel01Icon","ToastItem","item","index","report","onFrontWidth","ro","limit","List","live","toasts","frontWidth","setFrontWidth","Toaster","Toast","props"],"sources":["../../src/components/toast/toast.tsx"],"sourcesContent":["import { useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CheckmarkCircle02Icon as __icon_CheckmarkCircle02Icon, AlertCircleIcon as __icon_AlertCircleIcon, Alert02Icon as __icon_Alert02Icon, InformationCircleIcon as __icon_InformationCircleIcon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Spinner } from \"../loader/loader.js\";\nimport { SwapText } from \"../swap-text/swap-text.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TOAST_VARIANTS = {\n tone: {\n neutral: { classes: \"\" },\n success: { classes: \"text-success\" },\n error: { classes: \"text-danger\" },\n warning: { classes: \"text-warning\" },\n info: { classes: \"text-info\" },\n loading: { classes: \"text-toast-fg-secondary\" },\n },\n} as const;\nexport const KAESO_TOAST_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\ntype Tone = keyof typeof KAESO_TOAST_VARIANTS.tone;\n\nconst ICON = { success: __icon_CheckmarkCircle02Icon, error: __icon_AlertCircleIcon, warning: __icon_Alert02Icon, info: __icon_InformationCircleIcon } as const;\n\nexport const toastManager = /* @__PURE__ */ BaseToast.createToastManager();\n\nexport interface ToastOptions {\n description?: ReactNode | undefined;\n action?: { label: string; onClick: () => void } | undefined;\n timeout?: number | undefined;\n id?: string | undefined;\n}\n\ninterface ToastData {\n reserve?: ReactNode[] | undefined;\n}\n\nfunction add(tone: Tone, title: ReactNode, o: ToastOptions = {}) {\n return toastManager.add({\n title,\n type: tone,\n ...(o.description !== undefined ? { description: o.description } : {}),\n ...(o.timeout !== undefined ? { timeout: o.timeout } : {}),\n ...(o.id ? { id: o.id } : {}),\n ...(tone === \"error\" ? { priority: \"high\" as const } : {}),\n ...(o.action ? { actionProps: { children: o.action.label, onClick: o.action.onClick } } : {}),\n });\n}\n\nexport const toast = /* @__PURE__ */ Object.assign((title: ReactNode, o?: ToastOptions) => add(\"neutral\", title, o), {\n success: (title: ReactNode, o?: ToastOptions) => add(\"success\", title, o),\n error: (title: ReactNode, o?: ToastOptions) => add(\"error\", title, o),\n warning: (title: ReactNode, o?: ToastOptions) => add(\"warning\", title, o),\n info: (title: ReactNode, o?: ToastOptions) => add(\"info\", title, o),\n dismiss: (id?: string) => toastManager.close(id),\n promise: <T,>(p: Promise<T>, m: { loading: string; success: string | ((v: T) => string); error: string | ((e: unknown) => string) }) => {\n const reserve = [m.loading, ...(typeof m.success === \"string\" ? [m.success] : []), ...(typeof m.error === \"string\" ? [m.error] : [])];\n return toastManager.promise(p, {\n loading: { title: m.loading, type: \"loading\", timeout: 0, data: { reserve } },\n success: (v: T) => ({ title: typeof m.success === \"function\" ? m.success(v) : m.success, type: \"success\", data: { reserve } }),\n error: (e: unknown) => ({ title: typeof m.error === \"function\" ? m.error(e) : m.error, type: \"error\", priority: \"high\", data: { reserve } }),\n });\n },\n});\n\nfunction ToneIcon({ tone }: { tone: Tone }) {\n if (tone === \"neutral\") return null;\n return (\n <span className={cn(\"flex shrink-0\", KAESO_TOAST_VARIANTS.tone[tone].classes)}>\n {tone === \"loading\" ? <Spinner size=\"sm\" /> : <Icon icon={ICON[tone]} size=\"sm\" />}\n </span>\n );\n}\n\nconst SURFACE = \"relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast\";\nconst ACTION =\n \"inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring\";\nconst CLOSE =\n \"k-toast-close absolute -top-6 -left-6 inline-flex size-20 cursor-pointer items-center justify-center rounded-pill bg-toast text-toast-fg-secondary shadow-toast hover:text-toast-fg focus-ring\";\n\nfunction useMultiline(title: ReactNode, description: ReactNode) {\n const ref = useRef<HTMLDivElement>(null);\n const [multi, setMulti] = useState(false);\n useLayoutEffect(() => {\n const el = ref.current;\n if (el) setMulti(el.offsetHeight > 46);\n }, [title, description]);\n return [ref, multi] as const;\n}\n\nexport function ToastCapsule({\n tone = \"neutral\",\n title,\n description,\n action,\n closable,\n \"data-force\": force,\n}: {\n tone?: Tone | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n action?: string | undefined;\n closable?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}) {\n const [ref, multi] = useMultiline(title, description);\n const t = useUiText();\n return (\n <div role=\"status\" className=\"k-toast-static relative w-max\">\n <div ref={ref} className={cn(SURFACE, multi ? \"rounded-toast\" : \"rounded-pill\", tone === \"neutral\" ? \"pl-16\" : \"pl-14\", action ? \"pr-6\" : \"pr-16\")}>\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {title}\n {description && <span className=\"font-regular text-toast-fg-secondary\"> {description}</span>}\n </span>\n {action && (\n <button type=\"button\" className={ACTION}>\n {action}\n </button>\n )}\n </div>\n {closable && (\n <button type=\"button\" aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE} data-force={force ? `visible ${force}` : \"visible\"}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </button>\n )}\n </div>\n );\n}\nif (process.env.NODE_ENV !== \"production\") ToastCapsule.displayName = \"ToastCapsule\";\n\ntype ManagedToast = ReturnType<typeof BaseToast.useToastManager>[\"toasts\"][number];\n\nfunction ToastItem({ item, index, limit, onFrontWidth }: { item: ManagedToast; index: number; limit: number; onFrontWidth: (w: number) => void }) {\n const t = useUiText();\n const tone = ((item.type as Tone) ?? \"neutral\") as Tone;\n const reserve = (item.data as ToastData | undefined)?.reserve;\n const [ref, multi] = useMultiline(item.title, item.description);\n useLayoutEffect(() => {\n const el = ref.current;\n if (index !== 0 || !el) return;\n const report = () => onFrontWidth(Math.round(el.offsetWidth));\n report();\n if (typeof ResizeObserver === \"undefined\") return;\n const ro = new ResizeObserver(report);\n ro.observe(el);\n return () => ro.disconnect();\n }, [index, onFrontWidth, ref]);\n return (\n <BaseToast.Root\n toast={item}\n swipeDirection={[\"down\", \"left\", \"right\"]}\n className=\"k-toast outline-none\"\n {...(index > 0 ? { \"data-behind\": \"\" } : {})}\n {...(index >= limit ? { \"data-index-hidden\": \"\" } : {})}\n >\n <div\n ref={ref}\n className={cn(\n \"k-toast-surface\",\n SURFACE,\n multi ? \"rounded-toast\" : \"rounded-pill\",\n tone === \"neutral\" ? \"pl-16\" : \"pl-14\",\n item.actionProps ? \"pr-6\" : \"pr-16\",\n )}\n >\n <div className=\"k-toast-content flex min-w-0 items-center gap-10\">\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {reserve ? (\n <SwapText reserve={reserve} align=\"start\">\n <BaseToast.Title render={<span />} />\n </SwapText>\n ) : (\n <BaseToast.Title render={<span />} />\n )}\n {item.description && (\n <>\n {\" \"}\n <BaseToast.Description render={<span />} className=\"font-regular text-toast-fg-secondary\" />\n </>\n )}\n </span>\n {item.actionProps && <BaseToast.Action className={ACTION} />}\n </div>\n </div>\n <BaseToast.Close aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </BaseToast.Close>\n </BaseToast.Root>\n );\n}\n\nfunction List({ limit }: { limit: number }) {\n const { toasts } = BaseToast.useToastManager();\n const live = toasts.filter((item) => item.transitionStatus !== \"ending\");\n const [frontWidth, setFrontWidth] = useState(0);\n const t = useUiText();\n return (\n <BaseToast.Portal container={usePortalContainer()}>\n <BaseToast.Viewport\n aria-label={t(\"toast.notifications\", \"Notifications\")}\n className=\"fixed right-0 bottom-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none\"\n style={{ [\"--k-front-width\" as string]: frontWidth ? `${frontWidth}px` : \"auto\" }}\n >\n {toasts.map((item) => (\n <ToastItem key={item.id} item={item} index={Math.max(0, live.indexOf(item))} limit={limit} onFrontWidth={setFrontWidth} />\n ))}\n </BaseToast.Viewport>\n </BaseToast.Portal>\n );\n}\n\nexport function Toaster({ limit = 3, timeout = 5000 }: { limit?: number | undefined; timeout?: number | undefined }) {\n return (\n <BaseToast.Provider toastManager={toastManager} limit={limit} timeout={timeout}>\n <List limit={limit} />\n </BaseToast.Provider>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Toaster.displayName = \"Toaster\";\n\nexport const Toast = /* @__PURE__ */ Object.assign(\n function Toast(props: { limit?: number | undefined; timeout?: number | undefined }) {\n return <Toaster {...props} />;\n },\n { add: toast },\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toast.js","names":["__icon_CheckmarkCircle02Icon","__icon_AlertCircleIcon","__icon_Alert02Icon","__icon_InformationCircleIcon","__icon_Cancel01Icon","BaseToast","_Fragment","cn","usePortalContainer","useUiText","Icon","observeResize","Spinner","SwapText","Fragment$1","Toast$1","KAESO_TOAST_VARIANTS","KAESO_TOAST_DEFAULT_VARIANTS","ICON","CheckmarkCircle02Icon","AlertCircleIcon","Alert02Icon","InformationCircleIcon","toastManager","add","tone","o","toast","title","id","reserve","m","p","v","ToneIcon","SURFACE","ACTION","CLOSE","useMultiline","ref","useRef","multi","setMulti","useState","useLayoutEffect","el","description","ToastCapsule","force","t","action","closable","Cancel01Icon","ToastItem","item","index","report","onFrontWidth","limit","List","live","toasts","frontWidth","setFrontWidth","Toaster","Toast","props"],"sources":["../../src/components/toast/toast.tsx"],"sourcesContent":["import { useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CheckmarkCircle02Icon as __icon_CheckmarkCircle02Icon, AlertCircleIcon as __icon_AlertCircleIcon, Alert02Icon as __icon_Alert02Icon, InformationCircleIcon as __icon_InformationCircleIcon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Spinner } from \"../loader/loader.js\";\nimport { SwapText } from \"../swap-text/swap-text.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TOAST_VARIANTS = {\n tone: {\n neutral: { classes: \"\" },\n success: { classes: \"text-success\" },\n error: { classes: \"text-danger\" },\n warning: { classes: \"text-warning\" },\n info: { classes: \"text-info\" },\n loading: { classes: \"text-toast-fg-secondary\" },\n },\n} as const;\nexport const KAESO_TOAST_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\ntype Tone = keyof typeof KAESO_TOAST_VARIANTS.tone;\n\nconst ICON = { success: __icon_CheckmarkCircle02Icon, error: __icon_AlertCircleIcon, warning: __icon_Alert02Icon, info: __icon_InformationCircleIcon } as const;\n\nexport const toastManager = /* @__PURE__ */ BaseToast.createToastManager();\n\nexport interface ToastOptions {\n description?: ReactNode | undefined;\n action?: { label: string; onClick: () => void } | undefined;\n timeout?: number | undefined;\n id?: string | undefined;\n}\n\ninterface ToastData {\n reserve?: ReactNode[] | undefined;\n}\n\nfunction add(tone: Tone, title: ReactNode, o: ToastOptions = {}) {\n return toastManager.add({\n title,\n type: tone,\n ...(o.description !== undefined ? { description: o.description } : {}),\n ...(o.timeout !== undefined ? { timeout: o.timeout } : {}),\n ...(o.id ? { id: o.id } : {}),\n ...(tone === \"error\" ? { priority: \"high\" as const } : {}),\n ...(o.action ? { actionProps: { children: o.action.label, onClick: o.action.onClick } } : {}),\n });\n}\n\nexport const toast = /* @__PURE__ */ Object.assign((title: ReactNode, o?: ToastOptions) => add(\"neutral\", title, o), {\n success: (title: ReactNode, o?: ToastOptions) => add(\"success\", title, o),\n error: (title: ReactNode, o?: ToastOptions) => add(\"error\", title, o),\n warning: (title: ReactNode, o?: ToastOptions) => add(\"warning\", title, o),\n info: (title: ReactNode, o?: ToastOptions) => add(\"info\", title, o),\n dismiss: (id?: string) => toastManager.close(id),\n promise: <T,>(p: Promise<T>, m: { loading: string; success: string | ((v: T) => string); error: string | ((e: unknown) => string) }) => {\n const reserve = [m.loading, ...(typeof m.success === \"string\" ? [m.success] : []), ...(typeof m.error === \"string\" ? [m.error] : [])];\n return toastManager.promise(p, {\n loading: { title: m.loading, type: \"loading\", timeout: 0, data: { reserve } },\n success: (v: T) => ({ title: typeof m.success === \"function\" ? m.success(v) : m.success, type: \"success\", data: { reserve } }),\n error: (e: unknown) => ({ title: typeof m.error === \"function\" ? m.error(e) : m.error, type: \"error\", priority: \"high\", data: { reserve } }),\n });\n },\n});\n\nfunction ToneIcon({ tone }: { tone: Tone }) {\n if (tone === \"neutral\") return null;\n return (\n <span className={cn(\"flex shrink-0\", KAESO_TOAST_VARIANTS.tone[tone].classes)}>\n {tone === \"loading\" ? <Spinner size=\"sm\" /> : <Icon icon={ICON[tone]} size=\"sm\" />}\n </span>\n );\n}\n\nconst SURFACE = \"relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast\";\nconst ACTION =\n \"inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring\";\nconst CLOSE =\n \"k-toast-close absolute -top-6 -left-6 inline-flex size-20 cursor-pointer items-center justify-center rounded-pill bg-toast text-toast-fg-secondary shadow-toast hover:text-toast-fg focus-ring\";\n\nfunction useMultiline(title: ReactNode, description: ReactNode) {\n const ref = useRef<HTMLDivElement>(null);\n const [multi, setMulti] = useState(false);\n useLayoutEffect(() => {\n const el = ref.current;\n if (el) setMulti(el.offsetHeight > 46);\n }, [title, description]);\n return [ref, multi] as const;\n}\n\nexport function ToastCapsule({\n tone = \"neutral\",\n title,\n description,\n action,\n closable,\n \"data-force\": force,\n}: {\n tone?: Tone | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n action?: string | undefined;\n closable?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}) {\n const [ref, multi] = useMultiline(title, description);\n const t = useUiText();\n return (\n <div role=\"status\" className=\"k-toast-static relative w-max\">\n <div ref={ref} className={cn(SURFACE, multi ? \"rounded-toast\" : \"rounded-pill\", tone === \"neutral\" ? \"pl-16\" : \"pl-14\", action ? \"pr-6\" : \"pr-16\")}>\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {title}\n {description && <span className=\"font-regular text-toast-fg-secondary\"> {description}</span>}\n </span>\n {action && (\n <button type=\"button\" className={ACTION}>\n {action}\n </button>\n )}\n </div>\n {closable && (\n <button type=\"button\" aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE} data-force={force ? `visible ${force}` : \"visible\"}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </button>\n )}\n </div>\n );\n}\nif (process.env.NODE_ENV !== \"production\") ToastCapsule.displayName = \"ToastCapsule\";\n\ntype ManagedToast = ReturnType<typeof BaseToast.useToastManager>[\"toasts\"][number];\n\nfunction ToastItem({ item, index, limit, onFrontWidth }: { item: ManagedToast; index: number; limit: number; onFrontWidth: (w: number) => void }) {\n const t = useUiText();\n const tone = ((item.type as Tone) ?? \"neutral\") as Tone;\n const reserve = (item.data as ToastData | undefined)?.reserve;\n const [ref, multi] = useMultiline(item.title, item.description);\n useLayoutEffect(() => {\n const el = ref.current;\n if (index !== 0 || !el) return;\n const report = () => onFrontWidth(Math.round(el.offsetWidth));\n report();\n return observeResize([el], report);\n }, [index, onFrontWidth, ref]);\n return (\n <BaseToast.Root\n toast={item}\n swipeDirection={[\"down\", \"left\", \"right\"]}\n className=\"k-toast outline-none\"\n {...(index > 0 ? { \"data-behind\": \"\" } : {})}\n {...(index >= limit ? { \"data-index-hidden\": \"\" } : {})}\n >\n <div\n ref={ref}\n className={cn(\n \"k-toast-surface\",\n SURFACE,\n multi ? \"rounded-toast\" : \"rounded-pill\",\n tone === \"neutral\" ? \"pl-16\" : \"pl-14\",\n item.actionProps ? \"pr-6\" : \"pr-16\",\n )}\n >\n <div className=\"k-toast-content flex min-w-0 items-center gap-10\">\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {reserve ? (\n <SwapText reserve={reserve} align=\"start\">\n <BaseToast.Title render={<span />} />\n </SwapText>\n ) : (\n <BaseToast.Title render={<span />} />\n )}\n {item.description && (\n <>\n {\" \"}\n <BaseToast.Description render={<span />} className=\"font-regular text-toast-fg-secondary\" />\n </>\n )}\n </span>\n {item.actionProps && <BaseToast.Action className={ACTION} />}\n </div>\n </div>\n <BaseToast.Close aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </BaseToast.Close>\n </BaseToast.Root>\n );\n}\n\nfunction List({ limit }: { limit: number }) {\n const { toasts } = BaseToast.useToastManager();\n const live = toasts.filter((item) => item.transitionStatus !== \"ending\");\n const [frontWidth, setFrontWidth] = useState(0);\n const t = useUiText();\n return (\n <BaseToast.Portal container={usePortalContainer()}>\n <BaseToast.Viewport\n aria-label={t(\"toast.notifications\", \"Notifications\")}\n className=\"fixed right-0 bottom-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none\"\n style={{ [\"--k-front-width\" as string]: frontWidth ? `${frontWidth}px` : \"auto\" }}\n >\n {toasts.map((item) => (\n <ToastItem key={item.id} item={item} index={Math.max(0, live.indexOf(item))} limit={limit} onFrontWidth={setFrontWidth} />\n ))}\n </BaseToast.Viewport>\n </BaseToast.Portal>\n );\n}\n\nexport function Toaster({ limit = 3, timeout = 5000 }: { limit?: number | undefined; timeout?: number | undefined }) {\n return (\n <BaseToast.Provider toastManager={toastManager} limit={limit} timeout={timeout}>\n <List limit={limit} />\n </BaseToast.Provider>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Toaster.displayName = \"Toaster\";\n\nexport const Toast = /* @__PURE__ */ Object.assign(\n function Toast(props: { limit?: number | undefined; timeout?: number | undefined }) {\n return <Toaster {...props} />;\n },\n { add: toast },\n);\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { i as e, n as t, r as n, t as r } from "../chunks/tooltip-
|
|
2
|
+
import { i as e, n as t, r as n, t as r } from "../chunks/tooltip-DEbCCsru.js";
|
|
3
3
|
import { jsx as i } from "react/jsx-runtime";
|
|
4
4
|
import { Tooltip as a } from "@base-ui/react/tooltip";
|
|
5
5
|
//#region src/components/tooltip/tooltip-provider.tsx
|
package/dist/i18n-provider.js
CHANGED
|
@@ -22,7 +22,7 @@ function s(e) {
|
|
|
22
22
|
}
|
|
23
23
|
async function c(e) {
|
|
24
24
|
let t = s(e);
|
|
25
|
-
return t === "de" ? (await import("./chunks/de-
|
|
25
|
+
return t === "de" ? (await import("./chunks/de-CTAo4KL7.js")).default : t === "zh-CN" ? (await import("./chunks/zh-CN-C7GmVswt.js")).default : {};
|
|
26
26
|
}
|
|
27
27
|
//#endregion
|
|
28
28
|
export { o as LocaleProvider, c as loadUiMessages, s as resolveUiLocale };
|