@datum-cloud/datum-ui 3.7.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{action-row-DTvs91_3.mjs → action-row-BEzE9x37.mjs} +2 -3
- package/dist/{adapter-context-h0jCVqGO.mjs → adapter-context-XT749tyT.mjs} +1 -2
- package/dist/alert/index.mjs +1 -2
- package/dist/{alert-SAPwee1h.mjs → alert-CVckvox4.mjs} +2 -3
- package/dist/app-navigation/index.mjs +2 -2
- package/dist/{app-navigation-BB_NLEWv.mjs → app-navigation-DyNZwlSG.mjs} +14 -20
- package/dist/assistant/index.mjs +57 -63
- package/dist/autocomplete/index.mjs +1 -2
- package/dist/{autocomplete-BxtzndxZ.mjs → autocomplete-D0zAcT78.mjs} +6 -8
- package/dist/autosearch/index.mjs +8 -10
- package/dist/avatar/index.mjs +2 -3
- package/dist/avatar-stack/index.mjs +1 -2
- package/dist/{avatar-stack-BUcsjhA6.mjs → avatar-stack-2ow672bR.mjs} +3 -4
- package/dist/badge/index.mjs +181 -1
- package/dist/breadcrumb/index.mjs +1 -2
- package/dist/{breadcrumb-DmdhC8bE.mjs → breadcrumb-D97jAZ2N.mjs} +2 -3
- package/dist/button/index.mjs +2 -2
- package/dist/{button-CsdF61EI.mjs → button-C57mkFkS.mjs} +2 -3
- package/dist/{button-DoMqfQLu.mjs → button-Cn4KagBO.mjs} +4 -6
- package/dist/{button-CDPui_Ov.mjs → button-IK-Lnu_9.mjs} +3 -4
- package/dist/button-group/index.mjs +1 -2
- package/dist/{button-group-DFrTH4L8.mjs → button-group-C3GKo-0p.mjs} +3 -4
- package/dist/calendar/index.mjs +4 -5
- package/dist/{calendar-date-picker-DPvVAW2I.mjs → calendar-date-picker-CknZM6a2.mjs} +3 -4
- package/dist/card/index.mjs +1 -2
- package/dist/{card-save-bar-BZzNnKYj.mjs → card-save-bar-Te8jf-ie.mjs} +5 -8
- package/dist/chart/index.mjs +1 -2
- package/dist/{chart-EgzTS28l.mjs → chart-BsGsx2jb.mjs} +2 -3
- package/dist/checkbox/index.mjs +1 -2
- package/dist/checkbox-BAo5sbHk.mjs +84 -0
- package/dist/{close.icon-DdXKQ4m0.mjs → close.icon-BCPmH4nN.mjs} +2 -3
- package/dist/code-editor/index.mjs +1 -2
- package/dist/{col-BYGWTB4j.mjs → col-CYHIfPJq.mjs} +5 -9
- package/dist/collapsible/index.mjs +1 -7
- package/dist/collapsible-B-KP3JZ-.mjs +104 -0
- package/dist/command/index.mjs +1 -2
- package/dist/{command-C0aGIYnQ.mjs → command-B0be-zU5.mjs} +3 -4
- package/dist/components/base/checkbox/checkbox.d.ts +11 -3
- package/dist/components/base/collapsible/collapsible.d.ts +28 -0
- package/dist/components/base/collapsible/index.d.ts +1 -1
- package/dist/components/base/radio-group/radio-group.d.ts +11 -5
- package/dist/components/base/spinner/index.d.ts +1 -1
- package/dist/components/base/spinner/spinner.d.ts +11 -0
- package/dist/components/base/switch/switch.d.ts +6 -1
- package/dist/components/base/typography/typography.d.ts +1 -1
- package/dist/components/features/_shared/copy-state-icon.d.ts +12 -0
- package/dist/components/features/_shared/index.d.ts +2 -0
- package/dist/components/features/_shared/motion-chip.d.ts +293 -0
- package/dist/components/features/assistant/components/message/plan-card.d.ts +1 -1
- package/dist/components/icons/spinner.icon.d.ts +17 -3
- package/dist/copy-state-icon-DMvXXsZm.mjs +61 -0
- package/dist/data-table/index.mjs +1 -2
- package/dist/{data-table-CJiQQ6TM.mjs → data-table-CpBwO8Ea.mjs} +39 -66
- package/dist/date-picker/index.mjs +3 -3
- package/dist/date-time/index.mjs +1 -2
- package/dist/{date-time-lZdefM4H.mjs → date-time-BBRVM9qb.mjs} +4 -6
- package/dist/date-time-picker/index.mjs +1 -2
- package/dist/{date-time-picker-CricsXgF.mjs → date-time-picker-Bc41Ixrs.mjs} +3 -4
- package/dist/{date-time-range-picker-DM4AIvQ1.mjs → date-time-range-picker-yy1Acntn.mjs} +36 -59
- package/dist/dialog/index.mjs +1 -2
- package/dist/{dialog-Gu70fban.mjs → dialog-C8RXIQYm.mjs} +4 -5
- package/dist/{dialog-CmkrpaYy.mjs → dialog-D6sDXaH6.mjs} +2 -3
- package/dist/dropdown/index.mjs +1 -2
- package/dist/{dropdown-Xvduih96.mjs → dropdown-DR9j3Ni_.mjs} +3 -4
- package/dist/{dropdown-menu-b8zY5Cs6.mjs → dropdown-menu-CjgTr8Ab.mjs} +2 -3
- package/dist/dropzone/index.mjs +1 -2
- package/dist/{dropzone-ihksfjN2.mjs → dropzone-qKYfSe7o.mjs} +6 -8
- package/dist/empty-content/index.mjs +1 -2
- package/dist/{empty-content-CmuVcU0P.mjs → empty-content-CTMHak36.mjs} +8 -13
- package/dist/form/adapters/conform/index.mjs +4 -6
- package/dist/form/adapters/rhf/index.mjs +6 -9
- package/dist/form/index.mjs +2 -2
- package/dist/form/stepper/index.mjs +11 -16
- package/dist/{form-D4R6C609.mjs → form-DTaVgDSV.mjs} +64 -89
- package/dist/{form-context-DzB2a-dw.mjs → form-context-BRzt53M5.mjs} +1 -2
- package/dist/grid/index.mjs +1 -2
- package/dist/grouped-table/index.mjs +1 -2
- package/dist/{grouped-table-fHguJz9W.mjs → grouped-table-Dl6DclbV.mjs} +17 -25
- package/dist/hooks/index.mjs +4 -4
- package/dist/{hooks-CwZ6hyI1.mjs → hooks-WVJbyhCz.mjs} +1 -2
- package/dist/hover-card/index.mjs +1 -2
- package/dist/{hover-card-BNOE5vT5.mjs → hover-card-DSt1lZGg.mjs} +3 -5
- package/dist/{icon-wrapper-DKfJlJd0.mjs → icon-wrapper-CIk2th6R.mjs} +1 -2
- package/dist/icons/index.mjs +3 -3
- package/dist/index.mjs +80 -80
- package/dist/input/index.mjs +1 -2
- package/dist/{input-j4tbmYYz.mjs → input-DsT5qkJn.mjs} +3 -4
- package/dist/{input-DR-XbgpD.mjs → input-Wl1K48ca.mjs} +2 -3
- package/dist/input-group/index.mjs +1 -2
- package/dist/{input-group-DieA8aBt.mjs → input-group-CCzvJIZM.mjs} +5 -6
- package/dist/input-number/index.mjs +1 -2
- package/dist/{input-number-TXmW-X9o.mjs → input-number-DF-bfIo8.mjs} +5 -6
- package/dist/input-with-addons/index.mjs +2 -3
- package/dist/label/index.mjs +1 -2
- package/dist/{label-Bk6FXsju.mjs → label-BR1V3Imy.mjs} +3 -5
- package/dist/{layers-DWYdrGmC.mjs → layers-DLUbkJtt.mjs} +26 -27
- package/dist/loader-overlay/index.mjs +1 -2
- package/dist/{loader-overlay-DD94azZX.mjs → loader-overlay-DP0pvHuG.mjs} +3 -4
- package/dist/logo/index.mjs +2 -2
- package/dist/logo/themed/index.mjs +3 -4
- package/dist/{logo-C3FxD7jb.mjs → logo-CkzKra6H.mjs} +2 -3
- package/dist/{logo-text-Dpm5O6Kg.mjs → logo-text-B54YiEte.mjs} +6 -11
- package/dist/logs/fixtures/index.mjs +2 -4
- package/dist/logs/index.mjs +68 -87
- package/dist/map/index.mjs +1 -2
- package/dist/{map-leaflet-imports-S3kx8Q-S.mjs → map-leaflet-imports-Xdz9Xiaf.mjs} +1 -2
- package/dist/mobile-sheet/index.mjs +1 -2
- package/dist/{mobile-sheet-9TootJGg.mjs → mobile-sheet-1995HYY_.mjs} +6 -9
- package/dist/more-actions/index.mjs +2 -2
- package/dist/{more-actions-C3DYWO0a.mjs → more-actions-BlSOVwa8.mjs} +6 -7
- package/dist/{motion-DvGRWdsm.mjs → motion-DOrRbLmy.mjs} +1 -2
- package/dist/motion-chip-BczV7spP.mjs +52 -0
- package/dist/multi-select/index.mjs +1 -2
- package/dist/{multi-select-CF0Yq5yf.mjs → multi-select-C2cBrqXl.mjs} +61 -57
- package/dist/nprogress/index.mjs +1 -2
- package/dist/page-title/index.mjs +1 -2
- package/dist/{page-title-ipRWEOeM.mjs → page-title-Djl3LvPT.mjs} +2 -3
- package/dist/picker/index.mjs +2 -2
- package/dist/{picker-BoKXW6_s.mjs → picker-DC3GErYg.mjs} +14 -25
- package/dist/popover/index.mjs +1 -2
- package/dist/{popover-X82NwhX9.mjs → popover-7YxyP_W0.mjs} +3 -5
- package/dist/radio-group/index.mjs +1 -2
- package/dist/radio-group-Boxi2hm0.mjs +83 -0
- package/dist/responsive-dropdown/index.mjs +1 -2
- package/dist/{responsive-dropdown-C_KKgLbH.mjs → responsive-dropdown-DsWgpE_i.mjs} +5 -6
- package/dist/responsive-popover/index.mjs +1 -2
- package/dist/{responsive-popover-8VcjBM2d.mjs → responsive-popover-DJYd8lOK.mjs} +5 -6
- package/dist/rich-text-content/index.mjs +1 -2
- package/dist/{rich-text-content-DNonBD39.mjs → rich-text-content-BiIIowBU.mjs} +2 -3
- package/dist/rich-text-editor/index.mjs +2 -2
- package/dist/{rich-text-editor-CP1YyxMR.mjs → rich-text-editor-BUz06s-b.mjs} +14 -22
- package/dist/select/index.mjs +1 -2
- package/dist/{select-D4pk9e2d.mjs → select-DemYhwnG.mjs} +3 -4
- package/dist/{select-daE2Nn0Z.mjs → select-jgK6wyXj.mjs} +2 -3
- package/dist/separator/index.mjs +1 -2
- package/dist/{separator-vbPD_WFQ.mjs → separator-DNiiN2BN.mjs} +2 -3
- package/dist/settings-nav/index.mjs +1 -2
- package/dist/{settings-nav-Hf3GrCGv.mjs → settings-nav-CCZdPD-x.mjs} +2 -3
- package/dist/sheet/index.mjs +2 -2
- package/dist/{sheet-DHn6C_rs.mjs → sheet-DEpEJ_Rk.mjs} +4 -5
- package/dist/{sheet-DXCZyMHI.mjs → sheet-DYPtVIb2.mjs} +2 -3
- package/dist/sidebar/index.mjs +1 -2
- package/dist/{sidebar-sbqOOFii.mjs → sidebar-DWnxQWQ8.mjs} +13 -18
- package/dist/skeleton/index.mjs +3 -4
- package/dist/{skeleton-DFExK4GX.mjs → skeleton-CDPoo7-M.mjs} +2 -3
- package/dist/spinner/index.mjs +1 -2
- package/dist/spinner-DSlDJdWl.mjs +23 -0
- package/dist/spinner.icon-BiUnMAxw.mjs +104 -0
- package/dist/stepper/index.mjs +1 -2
- package/dist/{stepper-dNvkipop.mjs → stepper-ZipxpzWY.mjs} +10 -11
- package/dist/switch/index.mjs +1 -2
- package/dist/switch-IduVwiPZ.mjs +114 -0
- package/dist/table/index.mjs +2 -3
- package/dist/tabs/index.mjs +3 -4
- package/dist/tag-input/index.mjs +1 -2
- package/dist/{tag-input-c9OvWTSe.mjs → tag-input-a3ktkGrH.mjs} +46 -43
- package/dist/task-queue/index.mjs +1 -2
- package/dist/{task-queue-dropdown-CHPP5WIm.mjs → task-queue-dropdown-DuCAAybs.mjs} +39 -59
- package/dist/textarea/index.mjs +1 -2
- package/dist/{textarea-DiSGxCBO.mjs → textarea-CvhdK6JY.mjs} +3 -4
- package/dist/{textarea-CCxpXJdh.mjs → textarea-D36SE4ki.mjs} +2 -3
- package/dist/theme/index.mjs +1 -2
- package/dist/{themes-Ba2bajuF.mjs → themes-BoxnQbbu.mjs} +8 -10
- package/dist/time-picker/index.mjs +1 -2
- package/dist/{time-picker-DQlc2gKW.mjs → time-picker-B_am4eAK.mjs} +3 -4
- package/dist/{to-api-format-QuJ81vQ9.mjs → to-api-format-DyImCzCn.mjs} +15 -23
- package/dist/toast/index.mjs +2 -2
- package/dist/{toast-BUPlDkN3.mjs → toast-CizxCEcK.mjs} +4 -6
- package/dist/tooltip/index.mjs +1 -2
- package/dist/{tooltip-DhbN1BDK.mjs → tooltip-OIySjJWW.mjs} +3 -5
- package/dist/transfer/index.mjs +1 -2
- package/dist/{transfer-DsshYgIk.mjs → transfer-DGUeAQUL.mjs} +8 -14
- package/dist/{types-agDpVXBG.mjs → types-ChINrR8H.mjs} +7 -11
- package/dist/typography/index.mjs +1 -2
- package/dist/{typography-B1bpHKmV.mjs → typography-XFfN6PGD.mjs} +2 -3
- package/dist/{use-breakpoint-CwiUJSmk.mjs → use-breakpoint-zY_JYINK.mjs} +1 -2
- package/dist/{use-controllable-state-Dna7u3r9.mjs → use-controllable-state-DLeVgbAb.mjs} +1 -2
- package/dist/{use-copy-to-clipboard-DZDq_85T.mjs → use-copy-to-clipboard-CWKWHLxI.mjs} +1 -2
- package/dist/{use-debounced-search-input-yu_F0QBt.mjs → use-debounced-search-input-B4u28iLx.mjs} +1 -2
- package/dist/{use-deprecation-warning-DXrGc0jX.mjs → use-deprecation-warning-BS1V4IS5.mjs} +1 -2
- package/dist/{use-display-touched-CMEEv7aT.mjs → use-display-touched-BSq0Ninl.mjs} +3 -5
- package/dist/{use-option-picker-s2bUYwXC.mjs → use-option-picker-DXY2SNnT.mjs} +6 -9
- package/dist/{use-toast-Bpq0yJIT.mjs → use-toast-CZAZeS95.mjs} +3 -5
- package/dist/utils/index.mjs +3 -3
- package/dist/{utils-CA4QEIJ8.mjs → utils-CPJ5MCfd.mjs} +1 -2
- package/dist/{utils-Bu32wN-x.mjs → utils-CTIuhCOs.mjs} +1 -2
- package/dist/visually-hidden/index.mjs +1 -2
- package/dist/{visuallyhidden-D7L_qs8b.mjs → visuallyhidden-Mg4OsZ-l.mjs} +1 -2
- package/dist/{zod-helpers-YEhVo2S-.mjs → zod-helpers-JcfFVJJd.mjs} +1 -2
- package/package.json +20 -23
- package/dist/badge-DOZUr5DV.mjs +0 -183
- package/dist/checkbox-C6P12fio.mjs +0 -30
- package/dist/radio-group-LduBVTnh.mjs +0 -45
- package/dist/spinner-C5Xv-i2C.mjs +0 -14
- package/dist/spinner.icon-BYUMQ8H-.mjs +0 -48
- package/dist/switch-BaR-Vna4.mjs +0 -34
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
2
|
-
import { t as
|
|
3
|
-
import { t as
|
|
4
|
-
import { t as
|
|
5
|
-
import { t as
|
|
6
|
-
import { t as LoaderOverlay } from "./loader-overlay-
|
|
7
|
-
import { n as
|
|
1
|
+
import { t as cn } from "./utils-CTIuhCOs.mjs";
|
|
2
|
+
import { t as useControllableState } from "./use-controllable-state-DLeVgbAb.mjs";
|
|
3
|
+
import { n as OptionList, t as useOptionPicker } from "./use-option-picker-DXY2SNnT.mjs";
|
|
4
|
+
import { t as ResponsivePopover } from "./responsive-popover-DJYd8lOK.mjs";
|
|
5
|
+
import { t as Separator } from "./separator-DNiiN2BN.mjs";
|
|
6
|
+
import { t as LoaderOverlay } from "./loader-overlay-DP0pvHuG.mjs";
|
|
7
|
+
import { n as useChipMotion, t as MotionBadge } from "./motion-chip-BczV7spP.mjs";
|
|
8
8
|
import { cva } from "class-variance-authority";
|
|
9
9
|
import { CheckIcon, ChevronDown, WandSparkles, XCircle, XIcon } from "lucide-react";
|
|
10
10
|
import * as React from "react";
|
|
11
11
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
-
|
|
12
|
+
import { AnimatePresence } from "motion/react";
|
|
13
|
+
// src/components/features/multi-select/multi-select-options.tsx
|
|
13
14
|
/**
|
|
14
15
|
* Presentational popover command list for the multi-select: the searchable
|
|
15
16
|
* option list with a checkbox affordance per row. Selection state and search
|
|
@@ -35,8 +36,7 @@ function MultiSelectOptions({ picker, searchPlaceholder, emptyContent, header, f
|
|
|
35
36
|
});
|
|
36
37
|
}
|
|
37
38
|
MultiSelectOptions.displayName = "MultiSelectOptions";
|
|
38
|
-
|
|
39
|
-
//#region src/components/features/multi-select/multi-select-shared.ts
|
|
39
|
+
// src/components/features/multi-select/multi-select-shared.ts
|
|
40
40
|
/**
|
|
41
41
|
* Variants for the multi-select badges to handle different styles.
|
|
42
42
|
* Uses class-variance-authority (cva) to define styles based on the `variant` prop.
|
|
@@ -53,8 +53,7 @@ const multiSelectVariants = cva("flex items-center gap-1 rounded-md border px-2
|
|
|
53
53
|
} },
|
|
54
54
|
defaultVariants: { variant: "default" }
|
|
55
55
|
});
|
|
56
|
-
|
|
57
|
-
//#region src/components/features/multi-select/selected-badge-list.tsx
|
|
56
|
+
// src/components/features/multi-select/selected-badge-list.tsx
|
|
58
57
|
/**
|
|
59
58
|
* A keyboard-operable icon control. The badge/clear affordances live inside the
|
|
60
59
|
* trigger button, so they cannot be real nested `<button>`s (invalid DOM). We
|
|
@@ -90,52 +89,59 @@ function IconAction({ label, onActivate, className, children }) {
|
|
|
90
89
|
function SelectedBadgeList({ selectedOptions, maxCount, variant, badgeClassName, clickableBadges, isAnimating, animation, onRemove, onClearExtra, onClearAll, onBadgeClick }) {
|
|
91
90
|
const visibleOptions = selectedOptions.slice(0, maxCount === -1 ? void 0 : maxCount);
|
|
92
91
|
const overflowCount = maxCount === -1 ? 0 : selectedOptions.length - maxCount;
|
|
92
|
+
const chipMotion = useChipMotion();
|
|
93
93
|
return /* @__PURE__ */ jsxs("div", {
|
|
94
94
|
className: "flex w-full items-center justify-between",
|
|
95
|
-
children: [/* @__PURE__ */
|
|
96
|
-
className: "flex flex-wrap items-center gap-2",
|
|
97
|
-
children:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
95
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
96
|
+
className: "relative flex flex-wrap items-center gap-2",
|
|
97
|
+
children: /* @__PURE__ */ jsxs(AnimatePresence, {
|
|
98
|
+
initial: false,
|
|
99
|
+
mode: "popLayout",
|
|
100
|
+
children: [visibleOptions.map((option) => {
|
|
101
|
+
const IconComponent = option.icon;
|
|
102
|
+
return /* @__PURE__ */ jsxs(MotionBadge, {
|
|
103
|
+
...chipMotion,
|
|
104
|
+
className: cn(multiSelectVariants({ variant }), "truncate", isAnimating && "animate-bounce", clickableBadges && "cursor-pointer", badgeClassName),
|
|
105
|
+
style: { animationDuration: `${animation}s` },
|
|
106
|
+
onClick: (event) => {
|
|
107
|
+
if (clickableBadges) {
|
|
108
|
+
event.stopPropagation();
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
onBadgeClick?.(option);
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
children: [
|
|
114
|
+
IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: "text-muted-foreground size-3" }),
|
|
115
|
+
/* @__PURE__ */ jsx("span", {
|
|
116
|
+
className: "max-w-[120px] truncate",
|
|
117
|
+
children: option.label
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ jsx(IconAction, {
|
|
120
|
+
label: `Remove ${option.label}`,
|
|
121
|
+
onActivate: () => onRemove(option.value),
|
|
122
|
+
className: "text-muted-foreground ml-1",
|
|
123
|
+
children: /* @__PURE__ */ jsx(XCircle, {
|
|
124
|
+
className: "size-3",
|
|
125
|
+
"aria-hidden": "true"
|
|
126
|
+
})
|
|
122
127
|
})
|
|
128
|
+
]
|
|
129
|
+
}, option.value);
|
|
130
|
+
}), overflowCount > 0 && /* @__PURE__ */ jsxs(MotionBadge, {
|
|
131
|
+
...chipMotion,
|
|
132
|
+
className: cn(multiSelectVariants({ variant }), "text-muted-foreground", isAnimating && "animate-bounce"),
|
|
133
|
+
style: { animationDuration: `${animation}s` },
|
|
134
|
+
children: [`+ ${overflowCount} more`, /* @__PURE__ */ jsx(IconAction, {
|
|
135
|
+
label: "Clear extra selected",
|
|
136
|
+
onActivate: onClearExtra,
|
|
137
|
+
className: "text-muted-foreground ml-1",
|
|
138
|
+
children: /* @__PURE__ */ jsx(XCircle, {
|
|
139
|
+
className: "size-3",
|
|
140
|
+
"aria-hidden": "true"
|
|
123
141
|
})
|
|
124
|
-
]
|
|
125
|
-
},
|
|
126
|
-
})
|
|
127
|
-
className: cn(multiSelectVariants({ variant }), "text-muted-foreground", isAnimating && "animate-bounce"),
|
|
128
|
-
style: { animationDuration: `${animation}s` },
|
|
129
|
-
children: [`+ ${overflowCount} more`, /* @__PURE__ */ jsx(IconAction, {
|
|
130
|
-
label: "Clear extra selected",
|
|
131
|
-
onActivate: onClearExtra,
|
|
132
|
-
className: "text-muted-foreground ml-1",
|
|
133
|
-
children: /* @__PURE__ */ jsx(XCircle, {
|
|
134
|
-
className: "size-3",
|
|
135
|
-
"aria-hidden": "true"
|
|
136
|
-
})
|
|
137
|
-
})]
|
|
138
|
-
})]
|
|
142
|
+
})]
|
|
143
|
+
}, "overflow")]
|
|
144
|
+
})
|
|
139
145
|
}), /* @__PURE__ */ jsxs("div", {
|
|
140
146
|
className: "flex items-center justify-between",
|
|
141
147
|
children: [
|
|
@@ -161,8 +167,7 @@ function SelectedBadgeList({ selectedOptions, maxCount, variant, badgeClassName,
|
|
|
161
167
|
});
|
|
162
168
|
}
|
|
163
169
|
SelectedBadgeList.displayName = "SelectedBadgeList";
|
|
164
|
-
|
|
165
|
-
//#region src/components/features/multi-select/multi-select.tsx
|
|
170
|
+
// src/components/features/multi-select/multi-select.tsx
|
|
166
171
|
const EMPTY_ARRAY = [];
|
|
167
172
|
function MultiSelect({ options, onValueChange, variant, defaultValue = EMPTY_ARRAY, value, placeholder = "Select options", animation = 0, maxCount = 3, modalPopover = false, className, boxClassName, actions, onBadgeClick, badgeClassName, clickableBadges = false, showCloseButton = true, showClearButton = true, showSelectAll = false, disabled = false, id, name, isLoading = false, emptyContent = "No results found.", responsive = true, sheetTitle, asChild: _asChild, onClick: onTriggerClick, ...rest }) {
|
|
168
173
|
const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
|
|
@@ -306,5 +311,4 @@ function MultiSelect({ options, onValueChange, variant, defaultValue = EMPTY_ARR
|
|
|
306
311
|
] });
|
|
307
312
|
}
|
|
308
313
|
MultiSelect.displayName = "MultiSelect";
|
|
309
|
-
//#endregion
|
|
310
314
|
export { MultiSelect as t };
|
package/dist/nprogress/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import NProgress from "nprogress";
|
|
2
|
-
|
|
2
|
+
// src/components/features/nprogress/index.ts
|
|
3
3
|
/**
|
|
4
4
|
* NProgress Module
|
|
5
5
|
*
|
|
@@ -26,5 +26,4 @@ function configureProgress() {
|
|
|
26
26
|
trickleSpeed: 100
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
//#endregion
|
|
30
29
|
export { configureProgress, startProgress, stopProgress };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { PageTitle };
|
|
1
|
+
export { t as PageTitle } from "../page-title-Djl3LvPT.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
1
|
+
import { t as cn } from "./utils-CTIuhCOs.mjs";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
|
|
3
|
+
// src/components/features/page-title/page-title.tsx
|
|
4
4
|
function PageTitle({ title, description, actions, className, titleClassName, descriptionClassName, actionsClassName, actionsPosition = "inline" }) {
|
|
5
5
|
const isInline = actionsPosition === "inline";
|
|
6
6
|
return /* @__PURE__ */ jsxs("div", {
|
|
@@ -21,5 +21,4 @@ function PageTitle({ title, description, actions, className, titleClassName, des
|
|
|
21
21
|
})]
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
//#endregion
|
|
25
24
|
export { PageTitle as t };
|
package/dist/picker/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as formatInTimezone, B as isDateBearingMode, C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, I as ALLOWED_STEPS, L as DATE_BEARING_MODES, M as getBrowserTimezone, N as getTimezoneOffset, O as PickerContext, P as isoToZonedDate, R as RANGE_MODES, S as PickerCancel, T as PickerReset, V as isRangeMode, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, d as DATE_PRESETS, f as getDefaultPresets, g as isValidTimeString, h as formatTimeLabel, i as PickerTrigger, j as formatTimezoneLabel, k as usePickerContext, l as usePresets, m as dateToYYYYMMDD, o as PickerTimeInput, p as usePickerState, r as formatPickerValue, s as useTimeSlots, t as DateTimeRangePicker, u as DATETIME_PRESETS, v as resolveCommit, w as PickerFooter, x as PickerApply, y as useKeyboardShortcuts, z as TIME_BEARING_MODES } from "../date-time-range-picker-
|
|
2
|
-
import { a as DateRangePicker, c as getDaysDifference, d as isSameDateRange, f as isSameStringRange, i as DateRangeTimePicker, l as isRangeValid, m as PickerTimezoneSelect, n as TimePicker, o as DatePicker, p as Picker, r as DateTimePicker, s as clampRange, t as TimeRangePicker, u as isSameDate } from "../picker-
|
|
1
|
+
import { A as formatInTimezone, B as isDateBearingMode, C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, I as ALLOWED_STEPS, L as DATE_BEARING_MODES, M as getBrowserTimezone, N as getTimezoneOffset, O as PickerContext, P as isoToZonedDate, R as RANGE_MODES, S as PickerCancel, T as PickerReset, V as isRangeMode, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, d as DATE_PRESETS, f as getDefaultPresets, g as isValidTimeString, h as formatTimeLabel, i as PickerTrigger, j as formatTimezoneLabel, k as usePickerContext, l as usePresets, m as dateToYYYYMMDD, o as PickerTimeInput, p as usePickerState, r as formatPickerValue, s as useTimeSlots, t as DateTimeRangePicker, u as DATETIME_PRESETS, v as resolveCommit, w as PickerFooter, x as PickerApply, y as useKeyboardShortcuts, z as TIME_BEARING_MODES } from "../date-time-range-picker-yy1Acntn.mjs";
|
|
2
|
+
import { a as DateRangePicker, c as getDaysDifference, d as isSameDateRange, f as isSameStringRange, i as DateRangeTimePicker, l as isRangeValid, m as PickerTimezoneSelect, n as TimePicker, o as DatePicker, p as Picker, r as DateTimePicker, s as clampRange, t as TimeRangePicker, u as isSameDate } from "../picker-DC3GErYg.mjs";
|
|
3
3
|
export { ALLOWED_STEPS, DATETIME_PRESETS, DATE_BEARING_MODES, DATE_PRESETS, DatePicker, DateRangePicker, DateRangeTimePicker, DateTimePicker, DateTimeRangePicker, Picker, PickerApply, PickerCalendar, PickerCancel, PickerClear, PickerContent, PickerContext, PickerFooter, PickerPresets, PickerReset, PickerTimeInput, PickerTimezoneIndicator, PickerTimezoneSelect, PickerTrigger, RANGE_MODES, TIME_BEARING_MODES, TimePicker, TimeRangePicker, clampRange, dateToYYYYMMDD, formatInTimezone, formatPickerValue, formatTimeLabel, formatTimezoneLabel, getBrowserTimezone, getDaysDifference, getDefaultPresets, getTimezoneOffset, isDateBearingMode, isRangeMode, isRangeValid, isSameDate, isSameDateRange, isSameStringRange, isTimeBearingMode, isValidTimeString, isoToZonedDate, parseTimeString, resolveCommit, useKeyboardShortcuts, usePickerContext, usePickerState, usePresets, useTimeSlots, zonedDateToIso };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
2
|
-
import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-
|
|
3
|
-
import { C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, P as isoToZonedDate, S as PickerCancel, T as PickerReset, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, c as Picker$1, i as PickerTrigger, k as usePickerContext, n as DefaultFooter, o as PickerTimeInput, r as formatPickerValue, w as PickerFooter, x as PickerApply } from "./date-time-range-picker-
|
|
1
|
+
import { t as cn } from "./utils-CTIuhCOs.mjs";
|
|
2
|
+
import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-jgK6wyXj.mjs";
|
|
3
|
+
import { C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, P as isoToZonedDate, S as PickerCancel, T as PickerReset, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, c as Picker$1, i as PickerTrigger, k as usePickerContext, n as DefaultFooter, o as PickerTimeInput, r as formatPickerValue, w as PickerFooter, x as PickerApply } from "./date-time-range-picker-yy1Acntn.mjs";
|
|
4
4
|
import { Clock, Globe } from "lucide-react";
|
|
5
5
|
import { useEffect, useState } from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { addDays, differenceInCalendarDays } from "date-fns";
|
|
8
|
-
|
|
8
|
+
// src/components/features/picker/components/timezone-select.tsx
|
|
9
9
|
function PickerTimezoneSelect({ options, onChange, className, placeholder = "Select timezone" }) {
|
|
10
10
|
const { mode, timezone } = usePickerContext();
|
|
11
11
|
if (!isTimeBearingMode(mode)) return null;
|
|
@@ -27,8 +27,7 @@ function PickerTimezoneSelect({ options, onChange, className, placeholder = "Sel
|
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
PickerTimezoneSelect.displayName = "Picker.TimezoneSelect";
|
|
30
|
-
|
|
31
|
-
//#region src/components/features/picker/components/index.ts
|
|
30
|
+
// src/components/features/picker/components/index.ts
|
|
32
31
|
const Picker = Object.assign(Picker$1, {
|
|
33
32
|
Trigger: PickerTrigger,
|
|
34
33
|
Content: PickerContent,
|
|
@@ -43,8 +42,7 @@ const Picker = Object.assign(Picker$1, {
|
|
|
43
42
|
TimezoneIndicator: PickerTimezoneIndicator,
|
|
44
43
|
TimezoneSelect: PickerTimezoneSelect
|
|
45
44
|
});
|
|
46
|
-
|
|
47
|
-
//#region src/components/features/picker/utils/compare.ts
|
|
45
|
+
// src/components/features/picker/utils/compare.ts
|
|
48
46
|
/** Strict equality of two nullable Date references by millisecond value. */
|
|
49
47
|
function isSameDate(a, b) {
|
|
50
48
|
if (a === b) return true;
|
|
@@ -67,8 +65,7 @@ function isSameStringRange(a, b) {
|
|
|
67
65
|
if (a === null || b === null) return false;
|
|
68
66
|
return a.from === b.from && a.to === b.to && a.preset === b.preset;
|
|
69
67
|
}
|
|
70
|
-
|
|
71
|
-
//#region src/components/features/picker/utils/range.ts
|
|
68
|
+
// src/components/features/picker/utils/range.ts
|
|
72
69
|
/**
|
|
73
70
|
* Number of calendar days between two dates. Always non-negative.
|
|
74
71
|
*
|
|
@@ -105,8 +102,7 @@ function clampRange(from, to, maxRange) {
|
|
|
105
102
|
to: addDays(from, maxRange)
|
|
106
103
|
};
|
|
107
104
|
}
|
|
108
|
-
|
|
109
|
-
//#region src/components/features/picker/wrappers/date-picker.tsx
|
|
105
|
+
// src/components/features/picker/wrappers/date-picker.tsx
|
|
110
106
|
function DatePicker({ value, onChange, placeholder = "Pick a date", clearable = true, responsive = true, sheetTitle = "Pick a date", numberOfMonths = 1, triggerLabel, icon, disabled, className, triggerClassName, popoverClassName, id, sheetDescription, modal, commit, disablePast, disableFuture, minDate, maxDate, dateFormat }) {
|
|
111
107
|
return /* @__PURE__ */ jsx(Picker$1.Root, {
|
|
112
108
|
mode: "date",
|
|
@@ -146,8 +142,7 @@ function DatePicker({ value, onChange, placeholder = "Pick a date", clearable =
|
|
|
146
142
|
});
|
|
147
143
|
}
|
|
148
144
|
DatePicker.displayName = "DatePicker";
|
|
149
|
-
|
|
150
|
-
//#region src/components/features/picker/wrappers/date-range-picker.tsx
|
|
145
|
+
// src/components/features/picker/wrappers/date-range-picker.tsx
|
|
151
146
|
function DateRangePicker({ value, onChange, placeholder = "Pick a date range", clearable = true, responsive = true, sheetTitle = "Pick a date range", numberOfMonths = 2, triggerLabel, icon, disabled, className, triggerClassName, popoverClassName, id, sheetDescription, modal, commit, disablePast, disableFuture, minDate, maxDate, presets, excludePresets, dateFormat }) {
|
|
152
147
|
return /* @__PURE__ */ jsx(Picker$1.Root, {
|
|
153
148
|
mode: "date-range",
|
|
@@ -191,8 +186,7 @@ function DateRangePicker({ value, onChange, placeholder = "Pick a date range", c
|
|
|
191
186
|
});
|
|
192
187
|
}
|
|
193
188
|
DateRangePicker.displayName = "DateRangePicker";
|
|
194
|
-
|
|
195
|
-
//#region src/components/features/picker/wrappers/date-range-time-picker.tsx
|
|
189
|
+
// src/components/features/picker/wrappers/date-range-time-picker.tsx
|
|
196
190
|
function DateRangeTimePicker({ value, onChange, placeholder = "Pick a date range with time", clearable = true, responsive = true, sheetTitle = "Pick a date range with time", timezone, step = 15, hourCycle, numberOfMonths = 2, hideTimezone = false, triggerLabel, icon, disabled, className, triggerClassName, popoverClassName, id, sheetDescription, modal, disablePast, disableFuture, minDate, maxDate, presets, excludePresets, dateFormat, timeFormat }) {
|
|
197
191
|
return /* @__PURE__ */ jsx(Picker$1.Root, {
|
|
198
192
|
mode: "date-range-time",
|
|
@@ -257,8 +251,7 @@ function DateRangeTimePicker({ value, onChange, placeholder = "Pick a date range
|
|
|
257
251
|
});
|
|
258
252
|
}
|
|
259
253
|
DateRangeTimePicker.displayName = "DateRangeTimePicker";
|
|
260
|
-
|
|
261
|
-
//#region src/components/features/picker/components/time-input-field.tsx
|
|
254
|
+
// src/components/features/picker/components/time-input-field.tsx
|
|
262
255
|
function formatZonedTimeOfDay(iso, tz) {
|
|
263
256
|
try {
|
|
264
257
|
const d = isoToZonedDate(iso, tz);
|
|
@@ -299,8 +292,7 @@ function PickerTimeInputField({ className, ariaLabel = "Select time", id }) {
|
|
|
299
292
|
});
|
|
300
293
|
}
|
|
301
294
|
PickerTimeInputField.displayName = "Picker.TimeInputField";
|
|
302
|
-
|
|
303
|
-
//#region src/components/features/picker/wrappers/date-time-picker.tsx
|
|
295
|
+
// src/components/features/picker/wrappers/date-time-picker.tsx
|
|
304
296
|
function DateTimePicker({ value, onChange, placeholder = "Pick a date & time", clearable = true, responsive = true, sheetTitle = "Pick a date & time", timezone, step = 15, hourCycle, numberOfMonths = 1, hideTimezone = false, timeInputMode = "slot", timezoneIndicatorVariant = "full", triggerLabel, icon, disabled, className, triggerClassName, popoverClassName, id, sheetDescription, modal, disablePast, disableFuture, minDate, maxDate, dateFormat, timeFormat }) {
|
|
305
297
|
return /* @__PURE__ */ jsx(Picker$1.Root, {
|
|
306
298
|
mode: "datetime",
|
|
@@ -358,8 +350,7 @@ function DateTimePicker({ value, onChange, placeholder = "Pick a date & time", c
|
|
|
358
350
|
});
|
|
359
351
|
}
|
|
360
352
|
DateTimePicker.displayName = "DateTimePicker";
|
|
361
|
-
|
|
362
|
-
//#region src/components/features/picker/wrappers/time-picker.tsx
|
|
353
|
+
// src/components/features/picker/wrappers/time-picker.tsx
|
|
363
354
|
const DEFAULT_TIME_ICON$1 = /* @__PURE__ */ jsx(Clock, { className: "text-muted-foreground size-4 shrink-0" });
|
|
364
355
|
function TimePicker({ value, onChange, placeholder = "Pick a time", clearable = true, responsive = true, sheetTitle = "Pick a time", step = 15, hourCycle, minTime, maxTime, timeFormat, triggerLabel, icon, disabled, className, triggerClassName, popoverClassName, id, sheetDescription, modal, commit }) {
|
|
365
356
|
return /* @__PURE__ */ jsx(Picker$1.Root, {
|
|
@@ -398,8 +389,7 @@ function TimePicker({ value, onChange, placeholder = "Pick a time", clearable =
|
|
|
398
389
|
});
|
|
399
390
|
}
|
|
400
391
|
TimePicker.displayName = "TimePicker";
|
|
401
|
-
|
|
402
|
-
//#region src/components/features/picker/wrappers/time-range-picker.tsx
|
|
392
|
+
// src/components/features/picker/wrappers/time-range-picker.tsx
|
|
403
393
|
const DEFAULT_TIME_ICON = /* @__PURE__ */ jsx(Clock, { className: "text-muted-foreground size-4 shrink-0" });
|
|
404
394
|
function TimeRangePicker({ value, onChange, placeholder = "Pick a time range", clearable = true, responsive = true, sheetTitle = "Pick a time range", step = 15, hourCycle, timeFormat, triggerLabel, icon, disabled, className, triggerClassName, popoverClassName, id, sheetDescription, modal, commit }) {
|
|
405
395
|
return /* @__PURE__ */ jsx(Picker$1.Root, {
|
|
@@ -449,5 +439,4 @@ function TimeRangePicker({ value, onChange, placeholder = "Pick a time range", c
|
|
|
449
439
|
});
|
|
450
440
|
}
|
|
451
441
|
TimeRangePicker.displayName = "TimeRangePicker";
|
|
452
|
-
//#endregion
|
|
453
442
|
export { DateRangePicker as a, getDaysDifference as c, isSameDateRange as d, isSameStringRange as f, DateRangeTimePicker as i, isRangeValid as l, PickerTimezoneSelect as m, TimePicker as n, DatePicker as o, Picker as p, DateTimePicker as r, clampRange as s, TimeRangePicker as t, isSameDate as u };
|
package/dist/popover/index.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
|
|
1
|
+
export { t as Popover, n as PopoverAnchor, r as PopoverContent, i as PopoverTrigger } from "../popover-7YxyP_W0.mjs";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
1
|
+
import { t as cn } from "./utils-CTIuhCOs.mjs";
|
|
2
2
|
import "react";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
5
|
-
|
|
5
|
+
// ../shadcn/ui/popover.tsx
|
|
6
6
|
function Popover$1({ ...props }) {
|
|
7
7
|
return /* @__PURE__ */ jsx(PopoverPrimitive.Root, {
|
|
8
8
|
"data-slot": "popover",
|
|
@@ -30,8 +30,7 @@ function PopoverAnchor$1({ ...props }) {
|
|
|
30
30
|
...props
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
//#region src/components/base/popover/popover.tsx
|
|
33
|
+
// src/components/base/popover/popover.tsx
|
|
35
34
|
/**
|
|
36
35
|
* Datum Popover
|
|
37
36
|
*
|
|
@@ -49,5 +48,4 @@ function PopoverContent({ className, ...props }) {
|
|
|
49
48
|
...props
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
|
-
//#endregion
|
|
53
51
|
export { PopoverTrigger as i, PopoverAnchor as n, PopoverContent as r, Popover as t };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { RadioGroup, RadioGroupItem };
|
|
1
|
+
export { t as RadioGroup, n as RadioGroupItem } from "../radio-group-Boxi2hm0.mjs";
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { t as cn } from "./utils-CTIuhCOs.mjs";
|
|
2
|
+
import { n as EASE } from "./motion-DOrRbLmy.mjs";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { motion, useReducedMotion } from "motion/react";
|
|
6
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
7
|
+
// src/components/base/radio-group/radio-group.tsx
|
|
8
|
+
/**
|
|
9
|
+
* The selected value, mirrored from Radix so each item can animate its dot in
|
|
10
|
+
* and out. `null` means there is no datum `RadioGroup` above the item (it was
|
|
11
|
+
* placed in a bare Radix root), in which case the item falls back to Radix's
|
|
12
|
+
* own mount/unmount and does not animate.
|
|
13
|
+
*/
|
|
14
|
+
const RadioGroupValueContext = React.createContext(null);
|
|
15
|
+
function RadioGroup({ ref, className, value: valueProp, defaultValue, onValueChange, ...props }) {
|
|
16
|
+
const [uncontrolled, setUncontrolled] = React.useState(defaultValue);
|
|
17
|
+
const value = valueProp ?? uncontrolled;
|
|
18
|
+
const handleValueChange = React.useCallback((next) => {
|
|
19
|
+
if (valueProp === void 0) setUncontrolled(next);
|
|
20
|
+
onValueChange?.(next);
|
|
21
|
+
}, [onValueChange, valueProp]);
|
|
22
|
+
return /* @__PURE__ */ jsx(RadioGroupValueContext, {
|
|
23
|
+
value,
|
|
24
|
+
children: /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, {
|
|
25
|
+
ref,
|
|
26
|
+
"data-slot": "radio-group",
|
|
27
|
+
className: cn("grid gap-3", className),
|
|
28
|
+
value: valueProp,
|
|
29
|
+
defaultValue,
|
|
30
|
+
onValueChange: handleValueChange,
|
|
31
|
+
...props
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
RadioGroup.displayName = "RadioGroup";
|
|
36
|
+
const DOT_IN = {
|
|
37
|
+
type: "spring",
|
|
38
|
+
visualDuration: .2,
|
|
39
|
+
bounce: .35
|
|
40
|
+
};
|
|
41
|
+
const DOT_OUT = {
|
|
42
|
+
duration: .1,
|
|
43
|
+
ease: EASE.out
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* RadioGroupItem renders the Radix primitive directly (not the shadcn wrapper)
|
|
47
|
+
* so the dot can stay mounted and animate out as well as in. The dot pops in
|
|
48
|
+
* from half size with a small spring and fades out quickly when another option
|
|
49
|
+
* takes the selection. Under reduced motion it only fades.
|
|
50
|
+
*/
|
|
51
|
+
function RadioGroupItem({ ref, className, value, ...props }) {
|
|
52
|
+
const groupValue = React.use(RadioGroupValueContext);
|
|
53
|
+
const reduceMotion = Boolean(useReducedMotion());
|
|
54
|
+
const animated = groupValue !== null;
|
|
55
|
+
const visible = animated ? groupValue === value : true;
|
|
56
|
+
return /* @__PURE__ */ jsx(RadioGroupPrimitive.Item, {
|
|
57
|
+
ref,
|
|
58
|
+
value,
|
|
59
|
+
"data-slot": "radio-group-item",
|
|
60
|
+
className: cn("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", "transition-[color,box-shadow,transform] duration-[var(--duration-fast)] ease-out active:scale-[0.92] disabled:active:scale-100", className),
|
|
61
|
+
...props,
|
|
62
|
+
children: /* @__PURE__ */ jsx(RadioGroupPrimitive.Indicator, {
|
|
63
|
+
forceMount: animated ? true : void 0,
|
|
64
|
+
"data-slot": "radio-group-indicator",
|
|
65
|
+
className: "flex size-full items-center justify-center",
|
|
66
|
+
children: /* @__PURE__ */ jsx(motion.span, {
|
|
67
|
+
"aria-hidden": true,
|
|
68
|
+
className: "bg-primary size-2 rounded-full",
|
|
69
|
+
initial: false,
|
|
70
|
+
animate: visible ? {
|
|
71
|
+
scale: 1,
|
|
72
|
+
opacity: 1
|
|
73
|
+
} : {
|
|
74
|
+
scale: reduceMotion ? 1 : .5,
|
|
75
|
+
opacity: 0
|
|
76
|
+
},
|
|
77
|
+
transition: visible && !reduceMotion ? DOT_IN : DOT_OUT
|
|
78
|
+
})
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
RadioGroupItem.displayName = "RadioGroupItem";
|
|
83
|
+
export { RadioGroupItem as n, RadioGroup as t };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { ResponsiveDropdown };
|
|
1
|
+
export { t as ResponsiveDropdown } from "../responsive-dropdown-DsWgpE_i.mjs";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import {
|
|
3
|
-
import { i as
|
|
4
|
-
import { t as
|
|
1
|
+
import { t as useBreakpoint } from "./use-breakpoint-zY_JYINK.mjs";
|
|
2
|
+
import { t as cn } from "./utils-CTIuhCOs.mjs";
|
|
3
|
+
import { i as useInSheet, t as ResponsiveSheetTrigger } from "./mobile-sheet-1995HYY_.mjs";
|
|
4
|
+
import { i as PopoverTrigger, r as PopoverContent, t as Popover } from "./popover-7YxyP_W0.mjs";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
|
|
6
|
+
// src/components/base/responsive-dropdown/responsive-dropdown.tsx
|
|
7
7
|
function ResponsiveDropdown({ open, onOpenChange, trigger, children, sheetTitle, sheetDescription, sheetFooter, align = "end", contentClassName, onCloseAutoFocus, responsive = true }) {
|
|
8
8
|
const breakpoint = useBreakpoint();
|
|
9
9
|
const inSheet = useInSheet();
|
|
@@ -31,5 +31,4 @@ function ResponsiveDropdown({ open, onOpenChange, trigger, children, sheetTitle,
|
|
|
31
31
|
})]
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
-
//#endregion
|
|
35
34
|
export { ResponsiveDropdown as t };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { ResponsivePopover };
|
|
1
|
+
export { t as ResponsivePopover } from "../responsive-popover-DJYd8lOK.mjs";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import {
|
|
3
|
-
import { i as
|
|
4
|
-
import { t as
|
|
1
|
+
import { t as useBreakpoint } from "./use-breakpoint-zY_JYINK.mjs";
|
|
2
|
+
import { t as cn } from "./utils-CTIuhCOs.mjs";
|
|
3
|
+
import { i as useInSheet, t as ResponsiveSheetTrigger } from "./mobile-sheet-1995HYY_.mjs";
|
|
4
|
+
import { i as PopoverTrigger, r as PopoverContent, t as Popover } from "./popover-7YxyP_W0.mjs";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
|
|
6
|
+
// src/components/base/responsive-popover/responsive-popover.tsx
|
|
7
7
|
function ResponsivePopover({ open, onOpenChange, trigger, children, sheetTitle, sheetDescription, sheetFooter, align = "start", side = "bottom", contentClassName, sideOffset, alignOffset, avoidCollisions, onOpenAutoFocus, onCloseAutoFocus, onInteractOutside, onEscapeKeyDown, responsive = true, modal = false }) {
|
|
8
8
|
const breakpoint = useBreakpoint();
|
|
9
9
|
const inSheet = useInSheet();
|
|
@@ -38,5 +38,4 @@ function ResponsivePopover({ open, onOpenChange, trigger, children, sheetTitle,
|
|
|
38
38
|
})]
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
//#endregion
|
|
42
41
|
export { ResponsivePopover as t };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { RichTextContent };
|
|
1
|
+
export { t as RichTextContent } from "../rich-text-content-BiIIowBU.mjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
1
|
+
import { t as cn } from "./utils-CTIuhCOs.mjs";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import DOMPurify from "isomorphic-dompurify";
|
|
4
|
-
|
|
4
|
+
// src/components/features/rich-text-editor/rich-text-content.tsx
|
|
5
5
|
const SANITIZE_CONFIG = {
|
|
6
6
|
ALLOWED_TAGS: [
|
|
7
7
|
"strong",
|
|
@@ -59,5 +59,4 @@ function RichTextContent({ content, className }) {
|
|
|
59
59
|
dangerouslySetInnerHTML: { __html: withSafeLinks }
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
-
//#endregion
|
|
63
62
|
export { RichTextContent as t };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as RichTextContent } from "../rich-text-content-
|
|
2
|
-
import { n as useRichTextEditor, t as RichTextEditor } from "../rich-text-editor-
|
|
1
|
+
import { t as RichTextContent } from "../rich-text-content-BiIIowBU.mjs";
|
|
2
|
+
import { n as useRichTextEditor, t as RichTextEditor } from "../rich-text-editor-BUz06s-b.mjs";
|
|
3
3
|
export { RichTextContent, RichTextEditor, useRichTextEditor };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
2
|
-
import { t as
|
|
3
|
-
import { t as
|
|
4
|
-
import { t as Input } from "./input-
|
|
5
|
-
import { t as ResponsivePopover } from "./responsive-popover-
|
|
6
|
-
import { t as
|
|
1
|
+
import { t as cn } from "./utils-CTIuhCOs.mjs";
|
|
2
|
+
import { t as Tooltip } from "./tooltip-OIySjJWW.mjs";
|
|
3
|
+
import { t as Button } from "./button-Cn4KagBO.mjs";
|
|
4
|
+
import { t as Input } from "./input-DsT5qkJn.mjs";
|
|
5
|
+
import { t as ResponsivePopover } from "./responsive-popover-DJYd8lOK.mjs";
|
|
6
|
+
import { t as Icon } from "./icon-wrapper-CIk2th6R.mjs";
|
|
7
7
|
import { BoldIcon, ItalicIcon, LinkIcon, StrikethroughIcon, UnderlineIcon, UnlinkIcon } from "lucide-react";
|
|
8
8
|
import { createContext, use, useCallback, useEffect, useState } from "react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -13,7 +13,7 @@ import Placeholder from "@tiptap/extension-placeholder";
|
|
|
13
13
|
import Underline from "@tiptap/extension-underline";
|
|
14
14
|
import { EditorContent, useEditor } from "@tiptap/react";
|
|
15
15
|
import StarterKit from "@tiptap/starter-kit";
|
|
16
|
-
|
|
16
|
+
// src/components/features/rich-text-editor/toolbar/toolbar-button.tsx
|
|
17
17
|
function ToolbarButton({ ref, active, disabled, onClick, tooltip, children, className }) {
|
|
18
18
|
const button = /* @__PURE__ */ jsx("button", {
|
|
19
19
|
ref,
|
|
@@ -35,8 +35,7 @@ function ToolbarButton({ ref, active, disabled, onClick, tooltip, children, clas
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
ToolbarButton.displayName = "ToolbarButton";
|
|
38
|
-
|
|
39
|
-
//#region src/components/features/rich-text-editor/toolbar/bold-toolbar.tsx
|
|
38
|
+
// src/components/features/rich-text-editor/toolbar/bold-toolbar.tsx
|
|
40
39
|
function BoldToolbar() {
|
|
41
40
|
const { editor } = useRichTextEditor();
|
|
42
41
|
return /* @__PURE__ */ jsx(ToolbarButton, {
|
|
@@ -48,8 +47,7 @@ function BoldToolbar() {
|
|
|
48
47
|
children: /* @__PURE__ */ jsx(BoldIcon, { className: "h-4 w-4" })
|
|
49
48
|
});
|
|
50
49
|
}
|
|
51
|
-
|
|
52
|
-
//#region src/components/features/rich-text-editor/toolbar/italic-toolbar.tsx
|
|
50
|
+
// src/components/features/rich-text-editor/toolbar/italic-toolbar.tsx
|
|
53
51
|
function ItalicToolbar() {
|
|
54
52
|
const { editor } = useRichTextEditor();
|
|
55
53
|
return /* @__PURE__ */ jsx(ToolbarButton, {
|
|
@@ -61,8 +59,7 @@ function ItalicToolbar() {
|
|
|
61
59
|
children: /* @__PURE__ */ jsx(ItalicIcon, { className: "h-4 w-4" })
|
|
62
60
|
});
|
|
63
61
|
}
|
|
64
|
-
|
|
65
|
-
//#region src/components/features/rich-text-editor/toolbar/link-toolbar.tsx
|
|
62
|
+
// src/components/features/rich-text-editor/toolbar/link-toolbar.tsx
|
|
66
63
|
function normalizeUrl(input) {
|
|
67
64
|
const trimmed = input.trim();
|
|
68
65
|
if (!trimmed) return trimmed;
|
|
@@ -133,8 +130,7 @@ function LinkToolbar() {
|
|
|
133
130
|
})
|
|
134
131
|
});
|
|
135
132
|
}
|
|
136
|
-
|
|
137
|
-
//#region src/components/features/rich-text-editor/toolbar/strike-toolbar.tsx
|
|
133
|
+
// src/components/features/rich-text-editor/toolbar/strike-toolbar.tsx
|
|
138
134
|
function StrikeToolbar() {
|
|
139
135
|
const { editor } = useRichTextEditor();
|
|
140
136
|
return /* @__PURE__ */ jsx(ToolbarButton, {
|
|
@@ -146,8 +142,7 @@ function StrikeToolbar() {
|
|
|
146
142
|
children: /* @__PURE__ */ jsx(StrikethroughIcon, { className: "h-4 w-4" })
|
|
147
143
|
});
|
|
148
144
|
}
|
|
149
|
-
|
|
150
|
-
//#region src/components/features/rich-text-editor/toolbar/toolbar.tsx
|
|
145
|
+
// src/components/features/rich-text-editor/toolbar/toolbar.tsx
|
|
151
146
|
function Toolbar({ children, className }) {
|
|
152
147
|
return /* @__PURE__ */ jsx("div", {
|
|
153
148
|
className: cn("border-input-border flex items-center gap-0.5 border-b px-2 py-1", className),
|
|
@@ -157,8 +152,7 @@ function Toolbar({ children, className }) {
|
|
|
157
152
|
function ToolbarSeparator() {
|
|
158
153
|
return /* @__PURE__ */ jsx("div", { className: "bg-input-border mx-1 h-5 w-px" });
|
|
159
154
|
}
|
|
160
|
-
|
|
161
|
-
//#region src/components/features/rich-text-editor/toolbar/underline-toolbar.tsx
|
|
155
|
+
// src/components/features/rich-text-editor/toolbar/underline-toolbar.tsx
|
|
162
156
|
function UnderlineToolbar() {
|
|
163
157
|
const { editor } = useRichTextEditor();
|
|
164
158
|
return /* @__PURE__ */ jsx(ToolbarButton, {
|
|
@@ -170,8 +164,7 @@ function UnderlineToolbar() {
|
|
|
170
164
|
children: /* @__PURE__ */ jsx(UnderlineIcon, { className: "h-4 w-4" })
|
|
171
165
|
});
|
|
172
166
|
}
|
|
173
|
-
|
|
174
|
-
//#region src/components/features/rich-text-editor/rich-text-editor.tsx
|
|
167
|
+
// src/components/features/rich-text-editor/rich-text-editor.tsx
|
|
175
168
|
const RichTextEditorContext = createContext({ editor: null });
|
|
176
169
|
function useRichTextEditor() {
|
|
177
170
|
return use(RichTextEditorContext);
|
|
@@ -270,5 +263,4 @@ const RichTextEditor = Object.assign(RichTextEditorRoot, {
|
|
|
270
263
|
Link: LinkToolbar,
|
|
271
264
|
Separator: ToolbarSeparator
|
|
272
265
|
});
|
|
273
|
-
//#endregion
|
|
274
266
|
export { useRichTextEditor as n, RichTextEditor as t };
|