@adaptive-ds/solid-ui 0.11.0 → 0.13.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/LICENSE +1 -1
- package/README.md +219 -0
- package/dist/demo_pages/LinkBlock.js +1 -1
- package/dist/demo_pages/generateDemoRoutes.js +3 -3
- package/dist/generate_demo_list/generateDemoList.js +1 -1
- package/dist/generate_demo_list/parts/formatGeneratedCodeFile.d.ts +1 -1
- package/dist/generate_demo_list/parts/formatGeneratedCodeFile.js +1 -1
- package/dist/input/check/CheckBoolean.js +1 -1
- package/dist/input/check/CheckBooleanSingle.js +1 -1
- package/dist/input/check/CheckMultiple.js +1 -1
- package/dist/input/check/CheckSingle.js +1 -1
- package/dist/input/check/Checkbox.js +1 -1
- package/dist/input/fieldset/Fieldset.js +1 -1
- package/dist/input/input/Input.js +1 -1
- package/dist/input/input/InputDatalist.js +2 -2
- package/dist/input/label/Label.js +1 -1
- package/dist/input/label/LabelAsterix.js +1 -1
- package/dist/input/label/LabelPseudo.js +1 -1
- package/dist/input/label/LabelWithInfo.js +1 -1
- package/dist/input/label/LabelWithSubtitle.js +1 -1
- package/dist/input/number/NumberInputS.js +2 -2
- package/dist/input/select/SelectMultiple.js +1 -1
- package/dist/input/select/SelectSingleNative.js +1 -1
- package/dist/input/switch/SwitchSingle.js +1 -1
- package/dist/input/textarea/Textarea.js +1 -1
- package/dist/interactive/button/Button.js +1 -1
- package/dist/interactive/button/ButtonIcon1.js +1 -1
- package/dist/interactive/button/ButtonIconOnly.js +1 -1
- package/dist/interactive/button/buttonCva.d.ts +13 -9
- package/dist/interactive/button/buttonCva.d.ts.map +1 -1
- package/dist/interactive/button/buttonCva.js +75 -43
- package/dist/interactive/button/buttonCva.js.map +1 -1
- package/dist/interactive/button/buttonIconCva.d.ts +1 -1
- package/dist/interactive/button/buttonIconCva.d.ts.map +1 -1
- package/dist/interactive/button/buttonIconCva.js +14 -15
- package/dist/interactive/button/buttonIconCva.js.map +1 -1
- package/dist/interactive/button/classesButtonDisabled.d.ts +2 -0
- package/dist/interactive/button/classesButtonDisabled.d.ts.map +1 -0
- package/dist/interactive/button/classesButtonDisabled.js +5 -0
- package/dist/interactive/button/classesButtonDisabled.js.map +1 -0
- package/dist/interactive/details/Details.js +1 -1
- package/dist/interactive/dialog/CorvuDialog.js +1 -1
- package/dist/interactive/dialog/CorvuDialogIcon.js +1 -1
- package/dist/interactive/layout/SidebarLayout.js +1 -1
- package/dist/interactive/link/LinkButton.js +1 -1
- package/dist/interactive/link/LinkButtonIconOnly.js +1 -1
- package/dist/interactive/link/LinkText.js +1 -1
- package/dist/interactive/list/BulletLinks.js +1 -1
- package/dist/interactive/tabs/TabsTop.js +1 -1
- package/dist/interactive/theme/ThemeButton.d.ts +1 -1
- package/dist/interactive/theme/ThemeButton.d.ts.map +1 -1
- package/dist/interactive/theme/ThemeButton.js +4 -4
- package/dist/interactive/theme/ThemeButton.js.map +1 -1
- package/dist/interactive/theme/themeSignal.d.ts.map +1 -1
- package/dist/interactive/theme/themeSignal.js +3 -1
- package/dist/interactive/theme/themeSignal.js.map +1 -1
- package/dist/interactive/toast/Toast.js +1 -1
- package/dist/interactive/toast/Toaster.js +1 -1
- package/dist/interactive/toggle/ToggleButtonIconOnly.js +1 -1
- package/dist/node_modules/@adaptive-ds/utils/dist/bun/runCmdAsync.js +45 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/bun/runCmdAsync.js.map +1 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/int/safeParseInt.js +10 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/int/safeParseInt.js.map +1 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/json/jsonStringifyPretty.js +7 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/json/jsonStringifyPretty.js.map +1 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/obj/objectEntries.js +5 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/obj/objectEntries.js.map +1 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/obj/objectKeys.js +5 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/obj/objectKeys.js.map +1 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/ran/generateId12.js +9 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/ran/generateId12.js.map +1 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/ran/generateReadableId.js +29 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/ran/generateReadableId.js.map +1 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/ran/urlAlphabet32.js +5 -0
- package/dist/node_modules/@adaptive-ds/utils/dist/ran/urlAlphabet32.js.map +1 -0
- package/dist/node_modules/@corvu/dialog/dist/index.js +537 -0
- package/dist/node_modules/@corvu/dialog/dist/index.js.map +1 -0
- package/dist/node_modules/@corvu/popover/dist/index.js +267 -0
- package/dist/node_modules/@corvu/popover/dist/index.js.map +1 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/74BWZKBI.js +7 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/74BWZKBI.js.map +1 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/NVYXOAAC.js +22 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/NVYXOAAC.js.map +1 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/U42ECMND.js +16 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/U42ECMND.js.map +1 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/UKBPAEF5.js +23 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/UKBPAEF5.js.map +1 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/WR7IK7QK.js +41 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/chunk/WR7IK7QK.js.map +1 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/components/FloatingArrow.js +72 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/components/FloatingArrow.js.map +1 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/create/floating.js +132 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/create/floating.js.map +1 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/create/keyedContext.js +20 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/create/keyedContext.js.map +1 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/create/once.js +18 -0
- package/dist/node_modules/@corvu/popover/node_modules/@corvu/utils/dist/create/once.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/74BWZKBI.js +18 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/74BWZKBI.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/GZJAOTUE.js +45 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/GZJAOTUE.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/U42ECMND.js +20 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/U42ECMND.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/UKBPAEF5.js +52 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/UKBPAEF5.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/XJFCWSNS.js +11 -0
- package/dist/node_modules/@corvu/utils/dist/chunk/XJFCWSNS.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/create/controllableSignal.js +29 -0
- package/dist/node_modules/@corvu/utils/dist/create/controllableSignal.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/create/keyedContext.js +20 -0
- package/dist/node_modules/@corvu/utils/dist/create/keyedContext.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/create/once.js +18 -0
- package/dist/node_modules/@corvu/utils/dist/create/once.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/create/register.js +22 -0
- package/dist/node_modules/@corvu/utils/dist/create/register.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/create/style.js +51 -0
- package/dist/node_modules/@corvu/utils/dist/create/style.js.map +1 -0
- package/dist/node_modules/@corvu/utils/dist/scroll/index.js +39 -0
- package/dist/node_modules/@corvu/utils/dist/scroll/index.js.map +1 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +879 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +632 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +177 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +156 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
- package/dist/node_modules/image-size/dist/index.js +942 -0
- package/dist/node_modules/image-size/dist/index.js.map +1 -0
- package/dist/node_modules/solid-dismissible/dist/index.js +253 -0
- package/dist/node_modules/solid-dismissible/dist/index.js.map +1 -0
- package/dist/node_modules/solid-focus-trap/dist/index.js +164 -0
- package/dist/node_modules/solid-focus-trap/dist/index.js.map +1 -0
- package/dist/node_modules/solid-presence/dist/index.js +73 -0
- package/dist/node_modules/solid-presence/dist/index.js.map +1 -0
- package/dist/node_modules/solid-prevent-scroll/dist/index.js +160 -0
- package/dist/node_modules/solid-prevent-scroll/dist/index.js.map +1 -0
- package/dist/static/badge/Badge.js +1 -1
- package/dist/static/container/CardWrapper.js +1 -1
- package/dist/static/dev/TailwindIndicator.js +1 -1
- package/dist/static/grid/FeatureGridSection.js +1 -1
- package/dist/static/icon/Icon.js +1 -1
- package/dist/static/icon/IconGoogle.js +1 -1
- package/dist/static/icons/iconApple.d.ts +2 -0
- package/dist/static/icons/iconApple.d.ts.map +1 -0
- package/dist/static/icons/iconApple.js +5 -0
- package/dist/static/icons/iconApple.js.map +1 -0
- package/dist/static/icons/iconGooglePlay.d.ts +2 -0
- package/dist/static/icons/iconGooglePlay.d.ts.map +1 -0
- package/dist/static/icons/iconGooglePlay.js +5 -0
- package/dist/static/icons/iconGooglePlay.js.map +1 -0
- package/dist/static/img/Img.js +1 -1
- package/dist/static/lists/BlackBulletPoint.js +1 -1
- package/dist/static/lists/BlackBulletPoints.d.ts +8 -0
- package/dist/static/lists/BlackBulletPoints.d.ts.map +1 -0
- package/dist/static/lists/BlackBulletPoints.js +35 -0
- package/dist/static/lists/BlackBulletPoints.js.map +1 -0
- package/dist/static/lists/BlueBulletPoint.js +1 -1
- package/dist/static/lists/BlueBulletPoints.d.ts +3 -0
- package/dist/static/lists/BlueBulletPoints.d.ts.map +1 -0
- package/dist/static/lists/BlueBulletPoints.js +11 -0
- package/dist/static/lists/BlueBulletPoints.js.map +1 -0
- package/dist/static/lists/CheckPoints.d.ts +8 -0
- package/dist/static/lists/CheckPoints.d.ts.map +1 -0
- package/dist/static/lists/CheckPoints.js +35 -0
- package/dist/static/lists/CheckPoints.js.map +1 -0
- package/dist/static/lists/TextOrLink.d.ts +6 -0
- package/dist/static/lists/TextOrLink.d.ts.map +1 -0
- package/dist/static/lists/TextOrLink.js +35 -0
- package/dist/static/lists/TextOrLink.js.map +1 -0
- package/dist/static/loaders/LoaderShuffle4Dots.js +1 -1
- package/dist/static/loaders/LoaderShuffle9Squares.js +1 -1
- package/dist/static/loaders/LoaderSpin4Square.js +1 -1
- package/dist/static/loaders/LoadingPage.js +1 -1
- package/dist/static/logo/LogoImageText.js +1 -1
- package/dist/static/page/PageWrapper.js +1 -1
- package/dist/static/pages/ErrorPage.js +1 -1
- package/dist/static/pages/SuccessPage.js +1 -1
- package/dist/static/separator/SeparatorOr.js +1 -1
- package/dist/static/separator/SeparatorWithText.js +1 -1
- package/dist/static/styles/stylesBgDottedSparse.d.ts +6 -0
- package/dist/static/styles/stylesBgDottedSparse.d.ts.map +1 -0
- package/dist/static/styles/stylesBgDottedSparse.js +9 -0
- package/dist/static/styles/stylesBgDottedSparse.js.map +1 -0
- package/dist/static/timeline/Timeline.js +1 -1
- package/dist/table/Table.js +1 -1
- package/dist/table/table1/Table1D.js +1 -1
- package/dist/table/table1/Table1M.js +1 -1
- package/dist/table/table1/Table1MEntry.js +1 -1
- package/dist/table/table2/Table2D.js +1 -1
- package/dist/table/table2/Table2M.js +1 -1
- package/dist/table/table2/Table2MEntry.js +1 -1
- package/package.json +16 -18
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { classesDisabledDirectly } from "../../classes/classesDisabledDirectly.js";
|
|
2
|
-
import { classesDisabledModifier } from "../../classes/classesDisabledModifier.js";
|
|
3
1
|
import { classesButtonClickAnimation } from "./classesButtonClickAnimation.js";
|
|
2
|
+
import { classesButtonDisabled } from "./classesButtonDisabled.js";
|
|
4
3
|
import { classArr } from "../../utils/classArr.js";
|
|
5
4
|
import { classMerge } from "../../utils/classMerge.js";
|
|
6
5
|
const buttonVariant = {
|
|
6
|
+
none: "none",
|
|
7
7
|
// transparent bg
|
|
8
8
|
outline: "outline",
|
|
9
9
|
ghost: "ghost",
|
|
@@ -11,15 +11,18 @@ const buttonVariant = {
|
|
|
11
11
|
// filled black/white/gray
|
|
12
12
|
filled: "filled",
|
|
13
13
|
subtle: "subtle",
|
|
14
|
-
|
|
14
|
+
contrast: "contrast",
|
|
15
15
|
// filled colors
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
filledYellow: "filledYellow",
|
|
17
|
+
filledAmber: "filledAmber",
|
|
18
|
+
filledOrange: "filledOrange",
|
|
19
|
+
filledRed: "filledRed",
|
|
20
|
+
filledGreen: "filledGreen",
|
|
21
|
+
filledSky: "filledSky",
|
|
22
|
+
filledBlue: "filledBlue",
|
|
23
|
+
filledIndigo: "filledIndigo",
|
|
21
24
|
// outlined colors
|
|
22
|
-
|
|
25
|
+
outlineRed: "outlineRed"
|
|
23
26
|
};
|
|
24
27
|
const buttonSize = {
|
|
25
28
|
none: "none",
|
|
@@ -42,20 +45,20 @@ const baseClasses = classArr(
|
|
|
42
45
|
"transition-colors",
|
|
43
46
|
// animation
|
|
44
47
|
"group",
|
|
45
|
-
"cursor-pointer"
|
|
46
|
-
classesDisabledModifier
|
|
48
|
+
"cursor-pointer"
|
|
47
49
|
);
|
|
48
50
|
const variantClasses = {
|
|
49
51
|
//
|
|
50
52
|
// transparent bg
|
|
51
53
|
//
|
|
54
|
+
none: "",
|
|
52
55
|
outline: classArr(
|
|
53
56
|
"bg-transparent dark:bg-transparent",
|
|
54
57
|
"dark:text-slate-100",
|
|
55
58
|
// text
|
|
56
|
-
"hover:bg-slate-100
|
|
59
|
+
"hover:bg-slate-100",
|
|
57
60
|
// bg hover
|
|
58
|
-
"border border-slate-200 dark:border-
|
|
61
|
+
"border border-slate-200 dark:border-slate-700 dark:hover:bg-slate-900"
|
|
59
62
|
// border
|
|
60
63
|
),
|
|
61
64
|
ghost: classArr(
|
|
@@ -65,7 +68,7 @@ const variantClasses = {
|
|
|
65
68
|
// bg
|
|
66
69
|
"data-[state=open]:bg-transparent dark:data-[state=open]:bg-transparent",
|
|
67
70
|
// bg data
|
|
68
|
-
"hover:bg-slate-100 dark:hover:bg-
|
|
71
|
+
"hover:bg-slate-100 dark:hover:bg-slate-800"
|
|
69
72
|
// bg hover
|
|
70
73
|
),
|
|
71
74
|
link: classArr(
|
|
@@ -84,9 +87,9 @@ const variantClasses = {
|
|
|
84
87
|
filled: classArr(
|
|
85
88
|
"dark:text-slate-100",
|
|
86
89
|
// text
|
|
87
|
-
"bg-white dark:bg-
|
|
90
|
+
"bg-white dark:bg-black",
|
|
88
91
|
// bg
|
|
89
|
-
"hover:bg-slate-50 dark:hover:bg-slate-
|
|
92
|
+
"hover:bg-slate-50 dark:hover:bg-slate-900"
|
|
90
93
|
// bg hover
|
|
91
94
|
),
|
|
92
95
|
subtle: classArr(
|
|
@@ -97,7 +100,7 @@ const variantClasses = {
|
|
|
97
100
|
"hover:bg-slate-200 dark:hover:bg-slate-600"
|
|
98
101
|
// bg hover
|
|
99
102
|
),
|
|
100
|
-
|
|
103
|
+
contrast: classArr(
|
|
101
104
|
"text-white dark:text-slate-900 dark:hover:text-slate-900",
|
|
102
105
|
// text
|
|
103
106
|
"bg-slate-900 dark:bg-slate-50",
|
|
@@ -108,37 +111,47 @@ const variantClasses = {
|
|
|
108
111
|
//
|
|
109
112
|
// filled colors
|
|
110
113
|
//
|
|
111
|
-
|
|
112
|
-
"text-white
|
|
114
|
+
filledYellow: classArr(
|
|
115
|
+
"text-white",
|
|
113
116
|
// text
|
|
114
|
-
"bg-
|
|
117
|
+
"bg-yellow-500 dark:bg-yellow-800 ",
|
|
115
118
|
// bg
|
|
116
|
-
"hover:bg-
|
|
119
|
+
"hover:bg-yellow-700 dark:hover:bg-yellow-600",
|
|
117
120
|
// bg hover
|
|
118
|
-
"focus:ring-
|
|
121
|
+
"focus:ring-yellow-400 dark:focus:ring-yellow-400"
|
|
119
122
|
// focus
|
|
120
123
|
),
|
|
121
|
-
|
|
124
|
+
filledAmber: classArr(
|
|
122
125
|
"text-white",
|
|
123
126
|
// text
|
|
124
|
-
"bg-
|
|
127
|
+
"bg-amber-500 dark:bg-amber-800 ",
|
|
125
128
|
// bg
|
|
126
|
-
"hover:bg-
|
|
129
|
+
"hover:bg-amber-700 dark:hover:bg-amber-600",
|
|
127
130
|
// bg hover
|
|
128
|
-
"focus:ring-
|
|
131
|
+
"focus:ring-amber-400 dark:focus:ring-amber-400"
|
|
129
132
|
// focus
|
|
130
133
|
),
|
|
131
|
-
|
|
132
|
-
"text-white
|
|
134
|
+
filledOrange: classArr(
|
|
135
|
+
"text-white",
|
|
133
136
|
// text
|
|
134
|
-
"bg-
|
|
137
|
+
"bg-orange-500 dark:bg-orange-800 ",
|
|
135
138
|
// bg
|
|
136
|
-
"hover:bg-
|
|
139
|
+
"hover:bg-orange-700 dark:hover:bg-orange-600",
|
|
137
140
|
// bg hover
|
|
138
|
-
"focus:ring-
|
|
141
|
+
"focus:ring-orange-400 dark:focus:ring-orange-400"
|
|
139
142
|
// focus
|
|
140
143
|
),
|
|
141
|
-
|
|
144
|
+
filledRed: classArr(
|
|
145
|
+
"text-white",
|
|
146
|
+
// text
|
|
147
|
+
"bg-red-500 dark:bg-red-700",
|
|
148
|
+
// bg
|
|
149
|
+
"hover:bg-red-600 dark:hover:bg-red-600",
|
|
150
|
+
// bg hover
|
|
151
|
+
"focus:ring-red-400 dark:focus:ring-red-400"
|
|
152
|
+
// focus
|
|
153
|
+
),
|
|
154
|
+
filledGreen: classArr(
|
|
142
155
|
"text-white",
|
|
143
156
|
// text
|
|
144
157
|
"bg-green-500 hover:bg-green-700 dark:hover:bg-green-700",
|
|
@@ -146,7 +159,7 @@ const variantClasses = {
|
|
|
146
159
|
"focus:ring-green-400 dark:focus:ring-green-400"
|
|
147
160
|
// focus
|
|
148
161
|
),
|
|
149
|
-
|
|
162
|
+
filledSky: classArr(
|
|
150
163
|
"text-white",
|
|
151
164
|
// text
|
|
152
165
|
"bg-sky-500 hover:bg-sky-700 dark:hover:bg-sky-700",
|
|
@@ -154,11 +167,31 @@ const variantClasses = {
|
|
|
154
167
|
"focus:ring-sky-400 dark:focus:ring-sky-400"
|
|
155
168
|
// focus
|
|
156
169
|
),
|
|
170
|
+
filledIndigo: classArr(
|
|
171
|
+
"text-white",
|
|
172
|
+
// text
|
|
173
|
+
"bg-indigo-500 dark:bg-indigo-800 ",
|
|
174
|
+
// bg
|
|
175
|
+
"hover:bg-indigo-700 dark:hover:bg-indigo-600",
|
|
176
|
+
// bg hover
|
|
177
|
+
"focus:ring-indigo-400 dark:focus:ring-indigo-400"
|
|
178
|
+
// focus
|
|
179
|
+
),
|
|
180
|
+
filledBlue: classArr(
|
|
181
|
+
"text-white",
|
|
182
|
+
// text
|
|
183
|
+
"bg-blue-500 dark:bg-blue-800 ",
|
|
184
|
+
// bg
|
|
185
|
+
"hover:bg-blue-700 dark:hover:bg-blue-600",
|
|
186
|
+
// bg hover
|
|
187
|
+
"focus:ring-blue-400 dark:focus:ring-blue-400"
|
|
188
|
+
// focus
|
|
189
|
+
),
|
|
157
190
|
//
|
|
158
191
|
// outline toast colors
|
|
159
192
|
//
|
|
160
|
-
|
|
161
|
-
"text-
|
|
193
|
+
outlineRed: classArr(
|
|
194
|
+
"text-red-500 dark:text-red-500",
|
|
162
195
|
// text
|
|
163
196
|
"border border-red-200 dark:border-red-700",
|
|
164
197
|
// border
|
|
@@ -177,30 +210,29 @@ const sizeClasses = {
|
|
|
177
210
|
default: "py-2 px-3",
|
|
178
211
|
lg: "px-8 py-4 text-lg"
|
|
179
212
|
};
|
|
180
|
-
const defaultVariant = buttonVariant.default;
|
|
181
213
|
const defaultSize = buttonSize.default;
|
|
182
|
-
function buttonCva1(variant
|
|
214
|
+
function buttonCva1(variant, ...customClasses) {
|
|
183
215
|
return buttonCva2(variant, null, ...customClasses);
|
|
184
216
|
}
|
|
185
|
-
function buttonCva2(variant =
|
|
186
|
-
const v = variant
|
|
217
|
+
function buttonCva2(variant = buttonVariant.ghost, size = defaultSize, ...customClasses) {
|
|
218
|
+
const v = variant;
|
|
187
219
|
const s = size ?? defaultSize;
|
|
188
220
|
return classMerge(baseClasses, variantClasses[v], sizeClasses[s], combinedClasses(v, s), customClasses);
|
|
189
221
|
}
|
|
190
222
|
function combinedClasses(variant, size) {
|
|
191
|
-
const variantGroup1 = variant === buttonVariant.outline || variant === buttonVariant.
|
|
223
|
+
const variantGroup1 = variant === buttonVariant.outline || variant === buttonVariant.filledYellow || variant === buttonVariant.outlineRed;
|
|
192
224
|
if (variantGroup1 && size === buttonSize.lg) {
|
|
193
225
|
return "border-2";
|
|
194
226
|
}
|
|
195
227
|
return null;
|
|
196
228
|
}
|
|
197
|
-
function buttonCvaIconOnly(variant, isLoading, isDisabled, ...customClasses) {
|
|
229
|
+
function buttonCvaIconOnly(variant = buttonVariant.ghost, isLoading, isDisabled, ...customClasses) {
|
|
198
230
|
const classes = buttonCva2(
|
|
199
231
|
variant,
|
|
200
232
|
buttonSize.none,
|
|
201
233
|
classesButtonClickAnimation,
|
|
202
|
-
"rounded-full p-2",
|
|
203
|
-
(isDisabled || isLoading) &&
|
|
234
|
+
"rounded-full p-2.5",
|
|
235
|
+
(isDisabled || isLoading) && classesButtonDisabled,
|
|
204
236
|
...customClasses
|
|
205
237
|
);
|
|
206
238
|
return classes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonCva.js","sources":["../../../lib/interactive/button/buttonCva.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"buttonCva.js","sources":["../../../lib/interactive/button/buttonCva.ts"],"sourcesContent":["import { classesButtonClickAnimation } from \"~ui/interactive/button/classesButtonClickAnimation\"\nimport { classesButtonDisabled } from \"~ui/interactive/button/classesButtonDisabled\"\nimport { classArr } from \"~ui/utils/classArr\"\nimport { classMerge } from \"~ui/utils/classMerge\"\n\nexport type ButtonVariant = keyof typeof buttonVariant\nexport const buttonVariant = {\n none: \"none\",\n // transparent bg\n outline: \"outline\",\n ghost: \"ghost\",\n link: \"link\",\n // filled black/white/gray\n filled: \"filled\",\n subtle: \"subtle\",\n contrast: \"contrast\",\n // filled colors\n filledYellow: \"filledYellow\",\n filledAmber: \"filledAmber\",\n filledOrange: \"filledOrange\",\n filledRed: \"filledRed\",\n filledGreen: \"filledGreen\",\n filledSky: \"filledSky\",\n filledBlue: \"filledBlue\",\n filledIndigo: \"filledIndigo\",\n // outlined colors\n outlineRed: \"outlineRed\",\n} as const\n\nexport type ButtonSize = keyof typeof buttonSize\nexport const buttonSize = {\n none: \"none\",\n minimal: \"minimal\",\n sm: \"sm\",\n default: \"default\",\n lg: \"lg\",\n} as const\n\nexport type ButtonCvaProps = {\n variant?: ButtonVariant\n size?: ButtonSize\n}\n\nconst baseClasses = classArr(\n \"inline-flex\", // layout\n \"font-medium\", // text\n \"items-center justify-center\", // layout children\n \"rounded-md ring-offset-background\", // rounded, rings\n \"focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\", // focus\n \"transition-colors\", // animation\n \"group\",\n \"cursor-pointer\",\n)\n\nconst variantClasses = {\n //\n // transparent bg\n //\n none: \"\",\n outline: classArr(\n \"bg-transparent dark:bg-transparent\",\n \"dark:text-slate-100\", // text\n \"hover:bg-slate-100\", // bg hover\n \"border border-slate-200 dark:border-slate-700 dark:hover:bg-slate-900\", // border\n ),\n ghost: classArr(\n \"dark:text-slate-100 dark:hover:text-slate-100\", // text\n \"bg-transparent dark:bg-transparent\", // bg\n \"data-[state=open]:bg-transparent dark:data-[state=open]:bg-transparent\", // bg data\n \"hover:bg-slate-100 dark:hover:bg-slate-800\", // bg hover\n ),\n link: classArr(\n \"text-slate-900 dark:text-slate-100\", // text\n \"underline-offset-4 hover:underline \", // underline\n \"bg-transparent dark:bg-transparent\", // bg\n \"hover:bg-transparent dark:hover:bg-transparent\", // bg hover\n ),\n //\n // filled grayscale\n //\n filled: classArr(\n \"dark:text-slate-100\", // text\n \"bg-white dark:bg-black\", // bg\n \"hover:bg-slate-50 dark:hover:bg-slate-900\", // bg hover\n ),\n subtle: classArr(\n \"text-slate-900 dark:text-slate-100\", // text\n \"bg-slate-100 dark:bg-slate-700\", // bg\n \"hover:bg-slate-200 dark:hover:bg-slate-600\", // bg hover\n ),\n contrast: classArr(\n \"text-white dark:text-slate-900 dark:hover:text-slate-900\", // text\n \"bg-slate-900 dark:bg-slate-50\", // bg\n \"hover:bg-slate-700 dark:hover:bg-slate-300\", // bg hover\n ),\n //\n // filled colors\n //\n filledYellow: classArr(\n \"text-white\", // text\n \"bg-yellow-500 dark:bg-yellow-800 \", // bg\n \"hover:bg-yellow-700 dark:hover:bg-yellow-600\", // bg hover\n \"focus:ring-yellow-400 dark:focus:ring-yellow-400\", // focus\n ),\n filledAmber: classArr(\n \"text-white\", // text\n \"bg-amber-500 dark:bg-amber-800 \", // bg\n \"hover:bg-amber-700 dark:hover:bg-amber-600\", // bg hover\n \"focus:ring-amber-400 dark:focus:ring-amber-400\", // focus\n ),\n filledOrange: classArr(\n \"text-white\", // text\n \"bg-orange-500 dark:bg-orange-800 \", // bg\n \"hover:bg-orange-700 dark:hover:bg-orange-600\", // bg hover\n \"focus:ring-orange-400 dark:focus:ring-orange-400\", // focus\n ),\n filledRed: classArr(\n \"text-white\", // text\n \"bg-red-500 dark:bg-red-700\", // bg\n \"hover:bg-red-600 dark:hover:bg-red-600\", // bg hover\n \"focus:ring-red-400 dark:focus:ring-red-400\", // focus\n ),\n filledGreen: classArr(\n \"text-white\", // text\n \"bg-green-500 hover:bg-green-700 dark:hover:bg-green-700\", // bg\n \"focus:ring-green-400 dark:focus:ring-green-400\", // focus\n ),\n filledSky: classArr(\n \"text-white\", // text\n \"bg-sky-500 hover:bg-sky-700 dark:hover:bg-sky-700\", // bg\n \"focus:ring-sky-400 dark:focus:ring-sky-400\", // focus\n ),\n filledIndigo: classArr(\n \"text-white\", // text\n \"bg-indigo-500 dark:bg-indigo-800 \", // bg\n \"hover:bg-indigo-700 dark:hover:bg-indigo-600\", // bg hover\n \"focus:ring-indigo-400 dark:focus:ring-indigo-400\", // focus\n ),\n filledBlue: classArr(\n \"text-white\", // text\n \"bg-blue-500 dark:bg-blue-800 \", // bg\n \"hover:bg-blue-700 dark:hover:bg-blue-600\", // bg hover\n \"focus:ring-blue-400 dark:focus:ring-blue-400\", // focus\n ),\n //\n // outline toast colors\n //\n outlineRed: classArr(\n \"text-red-500 dark:text-red-500\", // text\n \"border border-red-200 dark:border-red-700\", // border\n \"bg-transparent\", // bg\n \"hover:bg-red-100 dark:hover:bg-red-950\", // bg hover\n \"focus:ring-red-400 dark:focus:ring-red-400\", // focus\n ),\n} as const satisfies Record<ButtonVariant, string>\n\nconst sizeClasses = {\n none: \"\",\n minimal: \"rounded-none\",\n sm: \"px-3\",\n default: \"py-2 px-3\",\n lg: \"px-8 py-4 text-lg\",\n} as const satisfies Record<ButtonSize, string>\n\nconst defaultSize = buttonSize.default\n\nexport function buttonCva1(variant: ButtonVariant, ...customClasses: (string | boolean | undefined | null | 0)[]) {\n return buttonCva2(variant, null, ...customClasses)\n}\n\nexport function buttonCva2(\n variant: ButtonVariant = buttonVariant.ghost,\n size: ButtonSize | null = defaultSize,\n ...customClasses: (string | boolean | undefined | null | 0)[]\n) {\n const v = variant\n const s = size ?? defaultSize\n return classMerge(baseClasses, variantClasses[v], sizeClasses[s], combinedClasses(v, s), customClasses)\n}\n\nfunction combinedClasses(variant: ButtonVariant, size: ButtonSize) {\n const variantGroup1 =\n variant === buttonVariant.outline || variant === buttonVariant.filledYellow || variant === buttonVariant.outlineRed\n if (variantGroup1 && size === buttonSize.lg) {\n return \"border-2\"\n }\n return null\n}\n\nexport function buttonCvaIconOnly(\n variant: ButtonVariant = buttonVariant.ghost,\n isLoading: boolean | undefined,\n isDisabled: boolean | undefined,\n ...customClasses: (string | boolean | undefined | null | 0)[]\n) {\n const classes = buttonCva2(\n variant,\n buttonSize.none,\n classesButtonClickAnimation,\n \"rounded-full p-2.5\",\n (isDisabled || isLoading) && classesButtonDisabled,\n ...customClasses,\n )\n return classes\n}\n"],"names":[],"mappings":";;;;AAMO,MAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA;AAAA,EAEN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA;AAAA,EAEN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA;AAAA,EAEV,cAAc;AAAA,EACd,aAAa;AAAA,EACb,cAAc;AAAA,EACd,WAAW;AAAA,EACX,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,cAAc;AAAA;AAAA,EAEd,YAAY;AACd;AAGO,MAAM,aAAa;AAAA,EACxB,MAAM;AAAA,EACN,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AACN;AAOA,MAAM,cAAc;AAAA,EAClB;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAIrB,MAAM;AAAA,EACN,SAAS;AAAA,IACP;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,OAAO;AAAA,IACL;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,MAAM;AAAA,IACJ;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKF,QAAQ;AAAA,IACN;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,QAAQ;AAAA,IACN;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,UAAU;AAAA,IACR;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKF,cAAc;AAAA,IACZ;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,aAAa;AAAA,IACX;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,cAAc;AAAA,IACZ;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,WAAW;AAAA,IACT;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,aAAa;AAAA,IACX;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,WAAW;AAAA,IACT;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,cAAc;AAAA,IACZ;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEF,YAAY;AAAA,IACV;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKF,YAAY;AAAA,IACV;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAEJ;AAEA,MAAM,cAAc;AAAA,EAClB,MAAM;AAAA,EACN,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AACN;AAEA,MAAM,cAAc,WAAW;AAExB,SAAS,WAAW,YAA2B,eAA4D;AAChH,SAAO,WAAW,SAAS,MAAM,GAAG,aAAa;AACnD;AAEO,SAAS,WACd,UAAyB,cAAc,OACvC,OAA0B,gBACvB,eACH;AACA,QAAM,IAAI;AACV,QAAM,IAAI,QAAQ;AAClB,SAAO,WAAW,aAAa,eAAe,CAAC,GAAG,YAAY,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,aAAa;AACxG;AAEA,SAAS,gBAAgB,SAAwB,MAAkB;AACjE,QAAM,gBACJ,YAAY,cAAc,WAAW,YAAY,cAAc,gBAAgB,YAAY,cAAc;AAC3G,MAAI,iBAAiB,SAAS,WAAW,IAAI;AAC3C,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,SAAS,kBACd,UAAyB,cAAc,OACvC,WACA,eACG,eACH;AACA,QAAM,UAAU;AAAA,IACd;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,KACC,cAAc,cAAc;AAAA,IAC7B,GAAG;AAAA,EAAA;AAEL,SAAO;AACT;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ButtonVariant } from './buttonCva';
|
|
2
|
-
export declare function buttonIconCva(variant?: ButtonVariant
|
|
2
|
+
export declare function buttonIconCva(variant?: ButtonVariant, ...customClasses: (string | boolean | undefined | null | 0 | 0n)[]): string;
|
|
3
3
|
//# sourceMappingURL=buttonIconCva.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonIconCva.d.ts","sourceRoot":"","sources":["../../../lib/interactive/button/buttonIconCva.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"buttonIconCva.d.ts","sourceRoot":"","sources":["../../../lib/interactive/button/buttonIconCva.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAgDpF,wBAAgB,aAAa,CAC3B,OAAO,GAAE,aAAmC,EAC5C,GAAG,aAAa,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,UAGnE"}
|
|
@@ -22,6 +22,7 @@ const baseClasses = classArr(
|
|
|
22
22
|
// size
|
|
23
23
|
);
|
|
24
24
|
const buttonIconClasses = {
|
|
25
|
+
none: "",
|
|
25
26
|
// transparent bg
|
|
26
27
|
outline: classesBlackWhite,
|
|
27
28
|
ghost: classesBlackWhite,
|
|
@@ -29,24 +30,22 @@ const buttonIconClasses = {
|
|
|
29
30
|
// filled grayscale
|
|
30
31
|
filled: classesBlackWhite,
|
|
31
32
|
subtle: classesBlackWhite,
|
|
32
|
-
|
|
33
|
+
contrast: classArr(classesTextFillWhite, "dark:text-black dark:fill-black"),
|
|
33
34
|
// filled colors
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
filledYellow: classArr(classesTextFillWhite, "dark:text-yellow-100 dark:fill-yellow-100"),
|
|
36
|
+
filledOrange: classArr(classesTextFillWhite, "dark:text-orange-100 dark:fill-orange-100"),
|
|
37
|
+
filledAmber: classArr(classesTextFillWhite, "dark:text-amber-100 dark:fill-amber-100"),
|
|
38
|
+
filledRed: classArr(classesTextFillWhite, "dark:text-red-100 dark:fill-red-100"),
|
|
39
|
+
filledGreen: classesWhiteWhite,
|
|
40
|
+
filledBlue: classArr(classesTextFillWhite, "dark:text-blue-100 dark:fill-blue-100"),
|
|
41
|
+
filledIndigo: classArr(classesTextFillWhite, "dark:text-indigo-100 dark:fill-indigo-100"),
|
|
42
|
+
// outlineRed: classesWhiteWhite,
|
|
43
|
+
filledSky: classesWhiteWhite,
|
|
39
44
|
// outlined colors
|
|
40
|
-
|
|
41
|
-
"text-destructive dark:text-red-700",
|
|
42
|
-
// text
|
|
43
|
-
"fill-destructive dark:fill-red-700"
|
|
44
|
-
// fill
|
|
45
|
-
)
|
|
45
|
+
outlineRed: classArr("text-red-500 fill-red-500 dark:text-red-700 dark:fill-red-700")
|
|
46
46
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return classMerge(baseClasses, buttonIconClasses[variant ?? defaultVariant], customClasses);
|
|
47
|
+
function buttonIconCva(variant = buttonVariant.ghost, ...customClasses) {
|
|
48
|
+
return classMerge(baseClasses, buttonIconClasses[variant], customClasses);
|
|
50
49
|
}
|
|
51
50
|
export {
|
|
52
51
|
buttonIconCva
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonIconCva.js","sources":["../../../lib/interactive/button/buttonIconCva.ts"],"sourcesContent":["import { buttonVariant, type ButtonVariant } from \"~ui/interactive/button/buttonCva\"\nimport { classArr } from \"~ui/utils/classArr\"\nimport { classMerge } from \"~ui/utils/classMerge\"\n\nconst classesTextFillBlack = \"text-black fill-black\"\nconst classesTextFillWhite = \"text-white fill-white\"\n\nconst classesBlackWhite = classArr(\n classesTextFillBlack,\n \"dark:text-white\", // dark text\n \"dark:fill-white\", // dark fill\n)\n\nconst classesWhiteWhite = classArr(\n classesTextFillWhite,\n \"dark:text-white\", // dark text\n \"dark:fill-white\", // dark fill\n)\n\nconst baseClasses = classArr(\n \"size-6\", // size\n)\n\nconst buttonIconClasses = {\n // transparent bg\n outline: classesBlackWhite,\n ghost: classesBlackWhite,\n link: classesBlackWhite,\n // filled grayscale\n filled: classesBlackWhite,\n subtle: classesBlackWhite,\n
|
|
1
|
+
{"version":3,"file":"buttonIconCva.js","sources":["../../../lib/interactive/button/buttonIconCva.ts"],"sourcesContent":["import { buttonVariant, type ButtonVariant } from \"~ui/interactive/button/buttonCva\"\nimport { classArr } from \"~ui/utils/classArr\"\nimport { classMerge } from \"~ui/utils/classMerge\"\n\nconst classesTextFillBlack = \"text-black fill-black\"\nconst classesTextFillWhite = \"text-white fill-white\"\n\nconst classesBlackWhite = classArr(\n classesTextFillBlack,\n \"dark:text-white\", // dark text\n \"dark:fill-white\", // dark fill\n)\n\nconst classesWhiteWhite = classArr(\n classesTextFillWhite,\n \"dark:text-white\", // dark text\n \"dark:fill-white\", // dark fill\n)\n\nconst baseClasses = classArr(\n \"size-6\", // size\n)\n\nconst buttonIconClasses = {\n none: \"\",\n // transparent bg\n outline: classesBlackWhite,\n ghost: classesBlackWhite,\n link: classesBlackWhite,\n // filled grayscale\n filled: classesBlackWhite,\n subtle: classesBlackWhite,\n contrast: classArr(classesTextFillWhite, \"dark:text-black dark:fill-black\"),\n // filled colors\n filledYellow: classArr(classesTextFillWhite, \"dark:text-yellow-100 dark:fill-yellow-100\"),\n filledOrange: classArr(classesTextFillWhite, \"dark:text-orange-100 dark:fill-orange-100\"),\n filledAmber: classArr(classesTextFillWhite, \"dark:text-amber-100 dark:fill-amber-100\"),\n filledRed: classArr(classesTextFillWhite, \"dark:text-red-100 dark:fill-red-100\"),\n\n filledGreen: classesWhiteWhite,\n filledBlue: classArr(classesTextFillWhite, \"dark:text-blue-100 dark:fill-blue-100\"),\n filledIndigo: classArr(classesTextFillWhite, \"dark:text-indigo-100 dark:fill-indigo-100\"),\n // outlineRed: classesWhiteWhite,\n filledSky: classesWhiteWhite,\n // outlined colors\n outlineRed: classArr(\"text-red-500 fill-red-500 dark:text-red-700 dark:fill-red-700\"),\n} as const satisfies Record<ButtonVariant, string>\n\nexport function buttonIconCva(\n variant: ButtonVariant = buttonVariant.ghost,\n ...customClasses: (string | boolean | undefined | null | 0 | 0n)[]\n) {\n return classMerge(baseClasses, buttonIconClasses[variant], customClasses)\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,uBAAuB;AAC7B,MAAM,uBAAuB;AAE7B,MAAM,oBAAoB;AAAA,EACxB;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAEA,MAAM,oBAAoB;AAAA,EACxB;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;AAEA,MAAM,cAAc;AAAA,EAClB;AAAA;AACF;AAEA,MAAM,oBAAoB;AAAA,EACxB,MAAM;AAAA;AAAA,EAEN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA;AAAA,EAEN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU,SAAS,sBAAsB,iCAAiC;AAAA;AAAA,EAE1E,cAAc,SAAS,sBAAsB,2CAA2C;AAAA,EACxF,cAAc,SAAS,sBAAsB,2CAA2C;AAAA,EACxF,aAAa,SAAS,sBAAsB,yCAAyC;AAAA,EACrF,WAAW,SAAS,sBAAsB,qCAAqC;AAAA,EAE/E,aAAa;AAAA,EACb,YAAY,SAAS,sBAAsB,uCAAuC;AAAA,EAClF,cAAc,SAAS,sBAAsB,2CAA2C;AAAA;AAAA,EAExF,WAAW;AAAA;AAAA,EAEX,YAAY,SAAS,+DAA+D;AACtF;AAEO,SAAS,cACd,UAAyB,cAAc,UACpC,eACH;AACA,SAAO,WAAW,aAAa,kBAAkB,OAAO,GAAG,aAAa;AAC1E;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classesButtonDisabled.d.ts","sourceRoot":"","sources":["../../../lib/interactive/button/classesButtonDisabled.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,kCAAkC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classesButtonDisabled.js","sources":["../../../lib/interactive/button/classesButtonDisabled.ts"],"sourcesContent":["export const classesButtonDisabled = \"cursor-not-allowed opacity-70\"\n"],"names":[],"mappings":"AAAO,MAAM,wBAAwB;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { insert, createComponent, memo, effect, className, template } from "solid-js/web";
|
|
2
2
|
import { mdiChevronDown } from "@mdi/js";
|
|
3
3
|
import { Show } from "solid-js";
|
|
4
4
|
import { Icon } from "../../static/icon/Icon.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createComponent, memo,
|
|
1
|
+
import { createComponent, memo, insert, template } from "solid-js/web";
|
|
2
2
|
import index_default from "../../node_modules/@corvu/dialog/dist/index.js";
|
|
3
3
|
import { mdiClose } from "@mdi/js";
|
|
4
4
|
import { classesDisabledDirectly } from "../../classes/classesDisabledDirectly.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createComponent, mergeProps, memo, template
|
|
1
|
+
import { createComponent, mergeProps, insert, memo, template } from "solid-js/web";
|
|
2
2
|
import index_default from "../../node_modules/@corvu/dialog/dist/index.js";
|
|
3
3
|
import { mdiClose } from "@mdi/js";
|
|
4
4
|
import { splitProps } from "solid-js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { delegateEvents,
|
|
1
|
+
import { delegateEvents, insert, createComponent, effect, className, setAttribute, template } from "solid-js/web";
|
|
2
2
|
import { Show } from "solid-js";
|
|
3
3
|
import { createSignalObject } from "../../utils/createSignalObject.js";
|
|
4
4
|
var _tmpl$ = /* @__PURE__ */ template(`<div class="fixed inset-0 z-50 lg:hidden"role=dialog aria-modal=true aria-labelledby=mobile-sidebar-title><button type=button class="fixed inset-0 bg-black bg-opacity-50"aria-label="Close sidebar"></button><aside class="fixed inset-y-0 left-0 w-64 bg-gray-800 text-white flex flex-col transform transition-transform duration-300 ease-in-out">`), _tmpl$2 = /* @__PURE__ */ template(`<div class="flex h-screen bg-gray-100 dark:bg-gray-900"><aside></aside><div class="flex-1 flex flex-col"><header class="bg-white dark:bg-gray-800 shadow-sm p-4 flex items-center justify-between"><button type=button aria-label="Open main menu"class="lg:hidden p-2 rounded hover:bg-gray-200 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-gray-400"><svg class="w-6 h-6"fill=none stroke=currentColor viewBox="0 0 24 24"><title>Menu</title><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M4 6h16M4 12h16M4 18h16"></path></svg></button><button type=button class="hidden lg:block p-2 rounded hover:bg-gray-200 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-gray-400 cursor-pointer"><svg class="w-6 h-6"fill=none stroke=currentColor viewBox="0 0 24 24"><title>Toggle sidebar</title><path stroke-linecap=round stroke-linejoin=round stroke-width=2></path></svg></button></header><main class="flex-1 p-4 overflow-y-auto">`);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { spread, mergeProps, insert, memo, createComponent, template } from "solid-js/web";
|
|
2
2
|
import { splitProps } from "solid-js";
|
|
3
3
|
import { buttonCva2 } from "../button/buttonCva.js";
|
|
4
4
|
import { buttonIconCva } from "../button/buttonIconCva.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { spread, mergeProps, insert, memo, createComponent, template } from "solid-js/web";
|
|
2
2
|
import { splitProps } from "solid-js";
|
|
3
3
|
import { buttonCvaIconOnly } from "../button/buttonCva.js";
|
|
4
4
|
import { buttonIconCva } from "../button/buttonIconCva.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { spread, mergeProps, template } from "solid-js/web";
|
|
2
2
|
import { splitProps } from "solid-js";
|
|
3
3
|
import { classesTextLink } from "../../classes/classesTextLink.js";
|
|
4
4
|
import { classMerge } from "../../utils/classMerge.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { memo,
|
|
1
|
+
import { memo, insert, createComponent, effect, className, template } from "solid-js/web";
|
|
2
2
|
import { LinkText } from "../link/LinkText.js";
|
|
3
3
|
import { BlueBulletPoint } from "../../static/lists/BlueBulletPoint.js";
|
|
4
4
|
import { classMerge } from "../../utils/classMerge.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { delegateEvents,
|
|
1
|
+
import { delegateEvents, insert, createComponent, effect, setAttribute, className, template } from "solid-js/web";
|
|
2
2
|
import { Key } from "@solid-primitives/keyed";
|
|
3
3
|
import { createUniqueId } from "solid-js";
|
|
4
4
|
import { classArr } from "../../utils/classArr.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MayHaveClass } from '../../utils/MayHaveClass';
|
|
2
1
|
import { ThemeButtonText } from './ThemeButtonText';
|
|
2
|
+
import { MayHaveClass } from '../../utils/MayHaveClass';
|
|
3
3
|
export interface ThemeButtonProps extends MayHaveClass {
|
|
4
4
|
showText?: boolean;
|
|
5
5
|
texts?: ThemeButtonText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeButton.d.ts","sourceRoot":"","sources":["../../../lib/interactive/theme/ThemeButton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemeButton.d.ts","sourceRoot":"","sources":["../../../lib/interactive/theme/ThemeButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AAK5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,kCA0B9C"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { createComponent } from "solid-js/web";
|
|
2
|
-
import {
|
|
2
|
+
import { onMount, onCleanup } from "solid-js";
|
|
3
3
|
import { buttonVariant } from "../button/buttonCva.js";
|
|
4
4
|
import { ButtonIconOnly } from "../button/ButtonIconOnly.js";
|
|
5
|
+
import { themeButtonTextDefault } from "./ThemeButtonText.js";
|
|
5
6
|
import { themeInit, themeSignal, themeRotate } from "./themeSignal.js";
|
|
6
7
|
import { themeIcon } from "./themeVariant.js";
|
|
7
8
|
import { classMerge } from "../../utils/classMerge.js";
|
|
8
|
-
import { themeButtonTextDefault } from "./ThemeButtonText.js";
|
|
9
9
|
function ThemeButton(p) {
|
|
10
|
-
createEffect(themeInit);
|
|
11
10
|
const handleGlobalKeyDown = createGlobalKeyHandler();
|
|
12
11
|
const texts = p.texts ?? themeButtonTextDefault;
|
|
13
|
-
|
|
12
|
+
onMount(() => {
|
|
13
|
+
themeInit();
|
|
14
14
|
window.addEventListener("keydown", handleGlobalKeyDown);
|
|
15
15
|
onCleanup(() => window.removeEventListener("keydown", handleGlobalKeyDown));
|
|
16
16
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeButton.js","sources":["../../../lib/interactive/theme/ThemeButton.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ThemeButton.js","sources":["../../../lib/interactive/theme/ThemeButton.tsx"],"sourcesContent":["import { onCleanup, onMount } from \"solid-js\"\nimport { buttonVariant } from \"~ui/interactive/button/buttonCva\"\nimport { ButtonIconOnly } from \"~ui/interactive/button/ButtonIconOnly\"\nimport type { ThemeButtonText } from \"~ui/interactive/theme/ThemeButtonText\"\nimport { themeButtonTextDefault } from \"~ui/interactive/theme/ThemeButtonText\"\nimport { themeInit, themeRotate, themeSignal } from \"~ui/interactive/theme/themeSignal\"\nimport { themeIcon } from \"~ui/interactive/theme/themeVariant\"\nimport { classMerge } from \"~ui/utils/classMerge\"\nimport type { MayHaveClass } from \"~ui/utils/MayHaveClass\"\n\nexport interface ThemeButtonProps extends MayHaveClass {\n showText?: boolean\n texts?: ThemeButtonText\n}\n\nexport function ThemeButton(p: ThemeButtonProps) {\n const navigate = (to: string) => {}\n const handleGlobalKeyDown = createGlobalKeyHandler(navigate)\n\n const texts = p.texts ?? themeButtonTextDefault\n\n onMount(() => {\n themeInit()\n window.addEventListener(\"keydown\", handleGlobalKeyDown)\n onCleanup(() => window.removeEventListener(\"keydown\", handleGlobalKeyDown))\n })\n\n const currentTheme = themeSignal.get()\n const themeName = texts[currentTheme]\n\n return (\n <ButtonIconOnly\n title={texts.currentTheme(themeName)}\n icon={themeIcon(currentTheme)}\n variant={buttonVariant.ghost}\n class={classMerge(p.class)}\n onClick={themeRotate}\n >\n {p.showText && themeName}\n </ButtonIconOnly>\n )\n}\n\nfunction createGlobalKeyHandler(navigate: (to: string) => void) {\n return (e: KeyboardEvent) => {\n if (e.key === \"s\" && e.altKey) {\n e.preventDefault()\n themeRotate()\n } else if (e.key === \"d\" && e.altKey) {\n e.preventDefault()\n navigate(\"/demos\")\n }\n }\n}\n"],"names":["ThemeButton","p","handleGlobalKeyDown","createGlobalKeyHandler","texts","themeButtonTextDefault","onMount","themeInit","window","addEventListener","onCleanup","removeEventListener","currentTheme","themeSignal","get","themeName","_$createComponent","ButtonIconOnly","title","icon","themeIcon","variant","buttonVariant","ghost","classMerge","class","onClick","themeRotate","children","showText","navigate","e","key","altKey","preventDefault"],"mappings":";;;;;;;;AAeO,SAASA,YAAYC,GAAqB;AAE/C,QAAMC,sBAAsBC,uBAA+B;AAE3D,QAAMC,QAAQH,EAAEG,SAASC;AAEzBC,UAAQ,MAAM;AACZC,cAAAA;AACAC,WAAOC,iBAAiB,WAAWP,mBAAmB;AACtDQ,cAAU,MAAMF,OAAOG,oBAAoB,WAAWT,mBAAmB,CAAC;AAAA,EAC5E,CAAC;AAED,QAAMU,eAAeC,YAAYC,IAAAA;AACjC,QAAMC,YAAYX,MAAMQ,YAAY;AAEpC,SAAAI,gBACGC,gBAAc;AAAA,IAAA,IACbC,QAAK;AAAA,aAAEd,MAAMQ,aAAaG,SAAS;AAAA,IAAC;AAAA,IAAA,IACpCI,OAAI;AAAA,aAAEC,UAAUR,YAAY;AAAA,IAAC;AAAA,IAAA,IAC7BS,UAAO;AAAA,aAAEC,cAAcC;AAAAA,IAAK;AAAA,IAAA,KAAA,OAAA,IAAA;AAAA,aACrBC,WAAWvB,EAAEwB,KAAK;AAAA,IAAC;AAAA,IAC1BC,SAASC;AAAAA,IAAW,IAAAC,WAAA;AAAA,aAEnB3B,EAAE4B,YAAYd;AAAAA,IAAS;AAAA,EAAA,CAAA;AAG9B;AAEA,SAASZ,uBAAuB2B,UAAgC;AAC9D,SAAO,CAACC,MAAqB;AAC3B,QAAIA,EAAEC,QAAQ,OAAOD,EAAEE,QAAQ;AAC7BF,QAAEG,eAAAA;AACFP,kBAAAA;AAAAA,IACF,WAAWI,EAAEC,QAAQ,OAAOD,EAAEE,QAAQ;AACpCF,QAAEG,eAAAA;AAAAA,IAEJ;AAAA,EACF;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themeSignal.d.ts","sourceRoot":"","sources":["../../../lib/interactive/theme/themeSignal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"themeSignal.d.ts","sourceRoot":"","sources":["../../../lib/interactive/theme/themeSignal.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,YAAY,EAElB,MAAM,oCAAoC,CAAA;AAK3C,eAAO,MAAM,WAAW,8EAAoD,CAAA;AAE5E,wBAAgB,SAAS,SAKxB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,QAKnE;AAmBD,wBAAgB,WAAW,SAS1B"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { isServer } from "solid-js/web";
|
|
1
2
|
import * as v from "valibot";
|
|
2
3
|
import { themeButtonTextDefault } from "./ThemeButtonText.js";
|
|
3
|
-
import { themeVariant, getThemeFromStorageOrBrowserPref,
|
|
4
|
+
import { themeVariant, getThemeFromStorageOrBrowserPref, nextTheme2, themeIcon, setThemeToBrowser, themeLocalStorageKey, themeSchema } from "./themeVariant.js";
|
|
4
5
|
import { toastAdd } from "../toast/toastAdd.js";
|
|
5
6
|
import { toastVariant } from "../toast/toastVariant.js";
|
|
6
7
|
import { createSignalObject } from "../../utils/createSignalObject.js";
|
|
7
8
|
const themeSignal = createSignalObject(themeVariant.os);
|
|
8
9
|
function themeInit() {
|
|
10
|
+
if (isServer) return;
|
|
9
11
|
const theme = getThemeFromStorageOrBrowserPref();
|
|
10
12
|
themeSet(theme, false);
|
|
11
13
|
themeRegisterStorageListener();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themeSignal.js","sources":["../../../lib/interactive/theme/themeSignal.ts"],"sourcesContent":["import * as v from \"valibot\"\nimport { themeButtonTextDefault } from \"~ui/interactive/theme/ThemeButtonText\"\nimport {\n getThemeFromStorageOrBrowserPref,\n nextTheme2,\n setThemeToBrowser,\n themeIcon,\n themeLocalStorageKey,\n themeSchema,\n type ThemeVariant,\n themeVariant,\n} from \"~ui/interactive/theme/themeVariant\"\nimport { toastAdd } from \"~ui/interactive/toast/toastAdd\"\nimport { toastVariant } from \"~ui/interactive/toast/toastVariant\"\nimport { createSignalObject } from \"~ui/utils/createSignalObject\"\n\nexport const themeSignal = createSignalObject<ThemeVariant>(themeVariant.os)\n\nexport function themeInit() {\n const theme = getThemeFromStorageOrBrowserPref()\n themeSet(theme, false)\n themeRegisterStorageListener()\n}\n\nexport function themeSet(theme: ThemeVariant, saveToStorage: boolean) {\n themeSignal.set(theme)\n setThemeToBrowser(theme)\n if (!saveToStorage) return\n localStorage.setItem(themeLocalStorageKey, theme)\n}\n\nfunction themeRegisterStorageListener() {\n const onStorage = (e: StorageEvent) => {\n if (e.key !== themeLocalStorageKey) return\n const themeString = e.newValue\n const result = v.safeParse(themeSchema, themeString)\n if (!result.success) {\n console.log(\"failed to parse storage event\")\n return\n }\n themeSet(result.output, false)\n }\n window.addEventListener(\"storage\", onStorage)\n return () => {\n window.removeEventListener(\"storage\", onStorage)\n }\n}\n\nexport function themeRotate() {\n const currentTheme = themeSignal.get()\n const newTheme = nextTheme2(currentTheme)\n\n const themeText = themeButtonTextDefault[newTheme]\n const title = themeButtonTextDefault.setTheme(themeText)\n const icon = themeIcon(newTheme)\n toastAdd({ title, icon, variant: toastVariant.default })\n themeSet(newTheme, true)\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"themeSignal.js","sources":["../../../lib/interactive/theme/themeSignal.ts"],"sourcesContent":["import { isServer } from \"solid-js/web\"\nimport * as v from \"valibot\"\nimport { themeButtonTextDefault } from \"~ui/interactive/theme/ThemeButtonText\"\nimport {\n getThemeFromStorageOrBrowserPref,\n nextTheme2,\n setThemeToBrowser,\n themeIcon,\n themeLocalStorageKey,\n themeSchema,\n type ThemeVariant,\n themeVariant,\n} from \"~ui/interactive/theme/themeVariant\"\nimport { toastAdd } from \"~ui/interactive/toast/toastAdd\"\nimport { toastVariant } from \"~ui/interactive/toast/toastVariant\"\nimport { createSignalObject } from \"~ui/utils/createSignalObject\"\n\nexport const themeSignal = createSignalObject<ThemeVariant>(themeVariant.os)\n\nexport function themeInit() {\n if (isServer) return // Skip during SSR\n const theme = getThemeFromStorageOrBrowserPref()\n themeSet(theme, false)\n themeRegisterStorageListener()\n}\n\nexport function themeSet(theme: ThemeVariant, saveToStorage: boolean) {\n themeSignal.set(theme)\n setThemeToBrowser(theme)\n if (!saveToStorage) return\n localStorage.setItem(themeLocalStorageKey, theme)\n}\n\nfunction themeRegisterStorageListener() {\n const onStorage = (e: StorageEvent) => {\n if (e.key !== themeLocalStorageKey) return\n const themeString = e.newValue\n const result = v.safeParse(themeSchema, themeString)\n if (!result.success) {\n console.log(\"failed to parse storage event\")\n return\n }\n themeSet(result.output, false)\n }\n window.addEventListener(\"storage\", onStorage)\n return () => {\n window.removeEventListener(\"storage\", onStorage)\n }\n}\n\nexport function themeRotate() {\n const currentTheme = themeSignal.get()\n const newTheme = nextTheme2(currentTheme)\n\n const themeText = themeButtonTextDefault[newTheme]\n const title = themeButtonTextDefault.setTheme(themeText)\n const icon = themeIcon(newTheme)\n toastAdd({ title, icon, variant: toastVariant.default })\n themeSet(newTheme, true)\n}\n"],"names":[],"mappings":";;;;;;;AAiBO,MAAM,cAAc,mBAAiC,aAAa,EAAE;AAEpE,SAAS,YAAY;AAC1B,MAAI,SAAU;AACd,QAAM,QAAQ,iCAAA;AACd,WAAS,OAAO,KAAK;AACrB,+BAAA;AACF;AAEO,SAAS,SAAS,OAAqB,eAAwB;AACpE,cAAY,IAAI,KAAK;AACrB,oBAAkB,KAAK;AACvB,MAAI,CAAC,cAAe;AACpB,eAAa,QAAQ,sBAAsB,KAAK;AAClD;AAEA,SAAS,+BAA+B;AACtC,QAAM,YAAY,CAAC,MAAoB;AACrC,QAAI,EAAE,QAAQ,qBAAsB;AACpC,UAAM,cAAc,EAAE;AACtB,UAAM,SAAS,EAAE,UAAU,aAAa,WAAW;AACnD,QAAI,CAAC,OAAO,SAAS;AACnB,cAAQ,IAAI,+BAA+B;AAC3C;AAAA,IACF;AACA,aAAS,OAAO,QAAQ,KAAK;AAAA,EAC/B;AACA,SAAO,iBAAiB,WAAW,SAAS;AAC5C,SAAO,MAAM;AACX,WAAO,oBAAoB,WAAW,SAAS;AAAA,EACjD;AACF;AAEO,SAAS,cAAc;AAC5B,QAAM,eAAe,YAAY,IAAA;AACjC,QAAM,WAAW,WAAW,YAAY;AAExC,QAAM,YAAY,uBAAuB,QAAQ;AACjD,QAAM,QAAQ,uBAAuB,SAAS,SAAS;AACvD,QAAM,OAAO,UAAU,QAAQ;AAC/B,WAAS,EAAE,OAAO,MAAM,SAAS,aAAa,SAAS;AACvD,WAAS,UAAU,IAAI;AACzB;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { setAttribute, insert, createComponent, mergeProps, effect, className, template } from "solid-js/web";
|
|
2
2
|
import { mdiClose } from "@mdi/js";
|
|
3
3
|
import { Show } from "solid-js";
|
|
4
4
|
import { ttt } from "../../i18n/ttt.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { insert, createComponent, mergeProps, effect, className, template } from "solid-js/web";
|
|
2
2
|
import { Key } from "@solid-primitives/keyed";
|
|
3
3
|
import { Toast } from "./Toast.js";
|
|
4
4
|
import { toasterState } from "./toasterState.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { delegateEvents,
|
|
1
|
+
import { delegateEvents, spread, mergeProps, insert, createComponent, template } from "solid-js/web";
|
|
2
2
|
import { splitProps } from "solid-js";
|
|
3
3
|
import { classesDisabledDirectly } from "../../classes/classesDisabledDirectly.js";
|
|
4
4
|
import { buttonCvaIconOnly } from "../button/buttonCva.js";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsonStringifyPretty } from "../json/jsonStringifyPretty.js";
|
|
2
|
+
async function runCmdAsync(cmd, logBunCmd = true) {
|
|
3
|
+
const startedAt = performance.now();
|
|
4
|
+
if (logBunCmd) {
|
|
5
|
+
console.log({ cmd });
|
|
6
|
+
}
|
|
7
|
+
const process = Bun.spawn(cmd, {
|
|
8
|
+
stdout: "pipe",
|
|
9
|
+
stderr: "pipe"
|
|
10
|
+
});
|
|
11
|
+
const exitCode = await process.exited;
|
|
12
|
+
const output = await process.stdout.text();
|
|
13
|
+
const error = await process.stderr.text();
|
|
14
|
+
const outputLines = output.split("\n").filter((s) => s.length > 0);
|
|
15
|
+
const errorLines = error.split("\n").filter((s) => s.length > 0);
|
|
16
|
+
const lines = [...outputLines, ...errorLines];
|
|
17
|
+
const endedAt = performance.now();
|
|
18
|
+
const ms = Math.round(endedAt - startedAt);
|
|
19
|
+
const r = {
|
|
20
|
+
cmd,
|
|
21
|
+
success: exitCode === 0,
|
|
22
|
+
exitCode,
|
|
23
|
+
lines,
|
|
24
|
+
ms
|
|
25
|
+
};
|
|
26
|
+
if (logBunCmd) {
|
|
27
|
+
if (lines.length < 8) {
|
|
28
|
+
console.log(r);
|
|
29
|
+
} else {
|
|
30
|
+
const l = {
|
|
31
|
+
cmd,
|
|
32
|
+
success: exitCode === 0,
|
|
33
|
+
exitCode,
|
|
34
|
+
ms
|
|
35
|
+
};
|
|
36
|
+
console.log(l);
|
|
37
|
+
console.log(jsonStringifyPretty(lines));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return r;
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
runCmdAsync
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=runCmdAsync.js.map
|