@tempots/beatui 0.82.1 → 0.83.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/ar-CBrjAlIY.cjs +1 -0
- package/dist/ar-DjMvIww5.js +175 -0
- package/dist/{ar-NCCPhOpI.js → ar-DwDxAANU.js} +16 -1
- package/dist/ar-kZBzg02I.cjs +1 -0
- package/dist/auth/index.cjs.js +1 -1
- package/dist/auth/index.es.js +33 -32
- package/dist/{auth-divider-Wr-S16kF.js → auth-divider-C3_CgC0l.js} +589 -569
- package/dist/auth-divider-C4WTL71M.cjs +1 -0
- package/dist/beatui.css +5678 -1438
- package/dist/beatui.tailwind.css +5662 -1422
- package/dist/better-auth/index.cjs.js +1 -1
- package/dist/better-auth/index.es.js +18 -31
- package/dist/{colors-B2yrgHSW.cjs → colors-BI0YhONJ.cjs} +1 -1
- package/dist/{colors-DPo9GEJR.js → colors-BmLYKmoH.js} +38 -30
- package/dist/de-B03SM9eF.cjs +1 -0
- package/dist/{de-BVK2MkCk.js → de-CSGSC0xX.js} +18 -3
- package/dist/de-CrBw41po.cjs +1 -0
- package/dist/{de-f2xcEb34.js → de-wChFYqM4.js} +79 -5
- package/dist/deep-merge-CmQoIYPC.js +1689 -0
- package/dist/deep-merge-UghuPcyW.cjs +1 -0
- package/dist/{duration-input-B9UNmUCh.cjs → duration-input-BJzKgI15.cjs} +1 -1
- package/dist/{duration-input-DqcJbxKD.js → duration-input-DaB6s0rL.js} +4 -4
- package/dist/editor-toolbar-group-BslfdazC.js +32 -0
- package/dist/editor-toolbar-group-_V1rDM-1.cjs +1 -0
- package/dist/{es-BxBeTRCv.cjs → es-BRa0hV-7.cjs} +1 -1
- package/dist/es-Ca5xT3NE.cjs +1 -0
- package/dist/es-CmPF3IGl.js +175 -0
- package/dist/{es-BQS8PL9j.js → es-dR46FTMF.js} +16 -1
- package/dist/{fa-DxPseW3g.cjs → fa-BxCSKn9j.cjs} +1 -1
- package/dist/fa-D696e75R.js +175 -0
- package/dist/fa-DhZJYuC6.cjs +1 -0
- package/dist/{fa-T-tkJSJr.js → fa-FsHBFjdY.js} +16 -1
- package/dist/fr-1nSKSIlw.cjs +1 -0
- package/dist/{fr-yOW_68YY.js → fr-B0jeX1Hx.js} +83 -9
- package/dist/{fr-CSRRhyCG.js → fr-Di6BT9_V.js} +18 -3
- package/dist/fr-Dq6RAY9s.cjs +1 -0
- package/dist/he-BBX1h9uD.cjs +1 -0
- package/dist/{he-Bxdc4M08.js → he-CXujw1Lw.js} +16 -1
- package/dist/he-DhcurPt5.cjs +1 -0
- package/dist/he-SgAsIYJA.js +175 -0
- package/dist/{hi-CJeFvTBe.js → hi-Bvh4d9bO.js} +16 -1
- package/dist/hi-Cd0YQZTU.cjs +1 -0
- package/dist/hi-CxsIxbfM.cjs +1 -0
- package/dist/hi-s9oiIihq.js +175 -0
- package/dist/{index-Bt7FYl80.cjs → index-Bm43lZqE.cjs} +2 -2
- package/dist/{index-05UbKOYe.cjs → index-C2_iX1um.cjs} +1 -1
- package/dist/{index-C2Lq1m45.js → index-C32iUFIr.js} +5 -5
- package/dist/{index-lYhXnu6I.js → index-CEqc0H3v.js} +1 -1
- package/dist/index-DH37GTQj.cjs +1 -0
- package/dist/{index-DklKfzD4.js → index-Di1_W_7Q.js} +351 -361
- package/dist/index.cjs.js +4 -4
- package/dist/index.es.js +6220 -3084
- package/dist/input-container-CSi72GI1.cjs +1 -0
- package/dist/{input-container-DiCjOzR2.js → input-container-Nx0gMAzS.js} +86 -75
- package/dist/it-ByIEk5Cq.cjs +1 -0
- package/dist/it-D_IcaYxp.cjs +1 -0
- package/dist/{it-6e6X-4BB.js → it-Dc4IMciD.js} +80 -6
- package/dist/{it-Zmp0BhIj.js → it-EWhykhHv.js} +18 -3
- package/dist/ja-CMGqpPo7.cjs +1 -0
- package/dist/{ja-BxNuNo2H.js → ja-D2t2g5xj.js} +85 -11
- package/dist/ja-DV6Fpp18.cjs +1 -0
- package/dist/{ja-DWjoA-hQ.js → ja-YZ0P5woj.js} +16 -1
- package/dist/json-schema/index.cjs.js +1 -1
- package/dist/json-schema/index.es.js +191 -185
- package/dist/json-schema-display/index.cjs.js +1 -1
- package/dist/json-schema-display/index.es.js +1 -1
- package/dist/json-structure/index.cjs.js +1 -1
- package/dist/json-structure/index.es.js +679 -660
- package/dist/ko-BPl5rP97.cjs +1 -0
- package/dist/ko-BRylA5JZ.js +175 -0
- package/dist/ko-DR1f0as8.cjs +1 -0
- package/dist/{ko-BOlI-33h.js → ko-U7BSUAxZ.js} +16 -1
- package/dist/lexical/index.cjs.js +31 -31
- package/dist/lexical/index.es.js +5248 -5221
- package/dist/lexical.css +5 -7
- package/dist/menu-CX72LaZ3.cjs +1 -0
- package/dist/menu-D_slbwl8.js +374 -0
- package/dist/{modal-v3u2Fpnd.js → modal-DaI1jH-X.js} +4 -4
- package/dist/{modal-I5srcntN.cjs → modal-kyZfvVZb.cjs} +1 -1
- package/dist/nl-BSfaHFt0.cjs +1 -0
- package/dist/{nl-Dr-l6zUy.cjs → nl-CQF0N7Mc.cjs} +1 -1
- package/dist/{nl-kQNcAdY1.js → nl-CqAxoB4J.js} +18 -3
- package/dist/nl-Dh7LUWAn.js +176 -0
- package/dist/{notice-CLDdy1MW.cjs → notice-Bc1L4Zpr.cjs} +1 -1
- package/dist/{notice-BuZvdvZh.js → notice-Dz4nX57_.js} +4 -4
- package/dist/{oneof-branch-detection-Dt8ss9lc.js → oneof-branch-detection-BED_n2MT.js} +522 -519
- package/dist/{oneof-branch-detection-DsM1K5xc.cjs → oneof-branch-detection-Vov_e3kI.cjs} +4 -4
- package/dist/{pl-CKyPFvss.js → pl-C-weXGCB.js} +16 -1
- package/dist/pl-D-O4sCnr.cjs +1 -0
- package/dist/{pl-Bs4nLJ__.js → pl-XEG-p1Q9.js} +77 -3
- package/dist/{pl-BK0i_yvq.cjs → pl-y_w3DWF3.cjs} +1 -1
- package/dist/prosemirror/index.cjs.js +1 -1
- package/dist/prosemirror/index.es.js +1 -1
- package/dist/{pt-DBmUhaNI.js → pt-BjNGOoZH.js} +18 -3
- package/dist/pt-DYsDA2sZ.js +175 -0
- package/dist/pt-DqaZWmbG.cjs +1 -0
- package/dist/pt-chEEYLlt.cjs +1 -0
- package/dist/ru-B46hVpFF.cjs +1 -0
- package/dist/{ru-Bi1_DEKM.js → ru-BTKBykp-.js} +86 -12
- package/dist/{ru-CsJ_yT-7.js → ru-CFmeZBXK.js} +16 -1
- package/dist/ru-CISMzCHR.cjs +1 -0
- package/dist/{styles-url-B2dzXrYt.cjs → styles-url-CVCcF0ra.cjs} +1 -1
- package/dist/{styles-url-Cw_mxshe.js → styles-url-DUdp56Ts.js} +1 -1
- package/dist/tailwind/index.cjs.js +1 -1
- package/dist/tailwind/index.es.js +3 -3
- package/dist/tailwind/preset.cjs.js +1 -1
- package/dist/tailwind/preset.es.js +74 -4
- package/dist/tailwind/vite-plugin.cjs.js +10 -10
- package/dist/tailwind/vite-plugin.es.js +289 -410
- package/dist/text-input-8v79fzEy.cjs +1 -0
- package/dist/text-input-CPJzUC2r.js +45 -0
- package/dist/{toolbar-D994_E_s.js → toolbar-CjQG7l7X.js} +1 -1
- package/dist/{toolbar-x0_8lmKu.cjs → toolbar-D3ZsC0g_.cjs} +1 -1
- package/dist/{tr-Bn5ldVJs.js → tr-C5X2gFZS.js} +17 -2
- package/dist/tr-CaMaflJL.cjs +1 -0
- package/dist/{tr-DiYB-FwX.js → tr-Cp8ZCUic.js} +77 -3
- package/dist/{tr-CgJ8uhZu.cjs → tr-mWu2E__o.cjs} +1 -1
- package/dist/{translations-Cq8bUKJP.js → translations-BGblCUBj.js} +144 -70
- package/dist/translations-CZ0KOii3.cjs +1 -0
- package/dist/translations-gVgMyNno.cjs +1 -0
- package/dist/translations-jUYta1_1.js +87 -0
- package/dist/types/auth/index.d.ts +13 -0
- package/dist/types/auth-i18n/default.d.ts +14 -0
- package/dist/types/auth-i18n/locales/ar.d.ts +14 -0
- package/dist/types/auth-i18n/locales/de.d.ts +14 -0
- package/dist/types/auth-i18n/locales/en.d.ts +14 -0
- package/dist/types/auth-i18n/locales/es.d.ts +14 -0
- package/dist/types/auth-i18n/locales/fa.d.ts +14 -0
- package/dist/types/auth-i18n/locales/fr.d.ts +14 -0
- package/dist/types/auth-i18n/locales/he.d.ts +14 -0
- package/dist/types/auth-i18n/locales/hi.d.ts +14 -0
- package/dist/types/auth-i18n/locales/it.d.ts +14 -0
- package/dist/types/auth-i18n/locales/ja.d.ts +14 -0
- package/dist/types/auth-i18n/locales/ko.d.ts +14 -0
- package/dist/types/auth-i18n/locales/nl.d.ts +14 -0
- package/dist/types/auth-i18n/locales/pl.d.ts +14 -0
- package/dist/types/auth-i18n/locales/pt.d.ts +14 -0
- package/dist/types/auth-i18n/locales/ru.d.ts +14 -0
- package/dist/types/auth-i18n/locales/tr.d.ts +14 -0
- package/dist/types/auth-i18n/locales/ur.d.ts +14 -0
- package/dist/types/auth-i18n/locales/vi.d.ts +14 -0
- package/dist/types/auth-i18n/locales/zh.d.ts +14 -0
- package/dist/types/auth-i18n/translations.d.ts +14 -0
- package/dist/types/beatui-i18n/default.d.ts +99 -0
- package/dist/types/beatui-i18n/index.d.ts +11 -0
- package/dist/types/beatui-i18n/locales/en.d.ts +63 -0
- package/dist/types/beatui-i18n/translations.d.ts +87 -0
- package/dist/types/better-auth/components/authenticated.d.ts +2 -2
- package/dist/types/better-auth/components/better-auth-container.d.ts +1 -1
- package/dist/types/better-auth/components/better-auth-modal.d.ts +1 -1
- package/dist/types/better-auth/index.d.ts +13 -0
- package/dist/types/better-auth/provider.d.ts +33 -0
- package/dist/types/better-auth/types.d.ts +112 -0
- package/dist/types/components/auth/auth-container.d.ts +63 -2
- package/dist/types/components/auth/auth-divider.d.ts +30 -0
- package/dist/types/components/auth/auth-email-prop.d.ts +25 -0
- package/dist/types/components/auth/index.d.ts +9 -0
- package/dist/types/components/auth/password-strength-indicator.d.ts +58 -0
- package/dist/types/components/auth/reset-password-form.d.ts +33 -0
- package/dist/types/components/auth/schemas.d.ts +183 -5
- package/dist/types/components/auth/signin-form.d.ts +33 -0
- package/dist/types/components/auth/signup-form.d.ts +36 -0
- package/dist/types/components/auth/social-login-button.d.ts +213 -0
- package/dist/types/components/auth/social-providers.d.ts +27 -1
- package/dist/types/components/auth/types.d.ts +299 -0
- package/dist/types/components/auth/utils.d.ts +198 -0
- package/dist/types/components/beatui.d.ts +35 -0
- package/dist/types/components/button/button.d.ts +61 -0
- package/dist/types/components/button/close-button.d.ts +32 -1
- package/dist/types/components/button/index.d.ts +2 -0
- package/dist/types/components/button/toggle-button-group.d.ts +95 -0
- package/dist/types/components/button/toggle-button.d.ts +60 -0
- package/dist/types/components/data/avatar-group.d.ts +74 -0
- package/dist/types/components/data/avatar.d.ts +62 -0
- package/dist/types/components/data/badge.d.ts +49 -2
- package/dist/types/components/data/calendar-shared.d.ts +59 -0
- package/dist/types/components/data/calendar.d.ts +107 -0
- package/dist/types/components/data/history-timeline.d.ts +35 -0
- package/dist/types/components/data/icon-badge.d.ts +14 -0
- package/dist/types/components/data/icon.d.ts +55 -4
- package/dist/types/components/data/index.d.ts +9 -0
- package/dist/types/components/data/page-drop-zone.d.ts +61 -8
- package/dist/types/components/data/presence-overlay.d.ts +26 -0
- package/dist/types/components/data/progress-bar.d.ts +81 -0
- package/dist/types/components/data/range-calendar.d.ts +104 -0
- package/dist/types/components/data/skeleton.d.ts +70 -0
- package/dist/types/components/data/table.d.ts +38 -11
- package/dist/types/components/data/tag.d.ts +40 -0
- package/dist/types/components/data/unstyled-drop-zone.d.ts +73 -0
- package/dist/types/components/form/control/control.d.ts +155 -0
- package/dist/types/components/form/control/date-utils.d.ts +81 -0
- package/dist/types/components/form/control/ensure-control.d.ts +28 -0
- package/dist/types/components/form/control/form-status.d.ts +63 -0
- package/dist/types/components/form/control/index.d.ts +10 -0
- package/dist/types/components/form/control/list-control.d.ts +100 -1
- package/dist/types/components/form/control/list-item-controls.d.ts +65 -0
- package/dist/types/components/form/controller/color-controller.d.ts +29 -1
- package/dist/types/components/form/controller/controller-validation.d.ts +31 -0
- package/dist/types/components/form/controller/controller.d.ts +286 -0
- package/dist/types/components/form/controller/index.d.ts +12 -0
- package/dist/types/components/form/controller/path.d.ts +69 -0
- package/dist/types/components/form/controller/union-controller.d.ts +106 -11
- package/dist/types/components/form/controller/utils.d.ts +67 -0
- package/dist/types/components/form/input/advanced-slider.d.ts +143 -0
- package/dist/types/components/form/input/appearance-selector.d.ts +39 -0
- package/dist/types/components/form/input/base64-input.d.ts +34 -0
- package/dist/types/components/form/input/base64s-input.d.ts +47 -0
- package/dist/types/components/form/input/bigint-input.d.ts +27 -0
- package/dist/types/components/form/input/checkbox-input.d.ts +46 -0
- package/dist/types/components/form/input/color-input.d.ts +42 -0
- package/dist/types/components/form/input/color-swatch-input.d.ts +53 -0
- package/dist/types/components/form/input/combobox-input.d.ts +73 -0
- package/dist/types/components/form/input/combobox-tags-input.d.ts +54 -0
- package/dist/types/components/form/input/date-input.d.ts +33 -0
- package/dist/types/components/form/input/date-time-input.d.ts +34 -0
- package/dist/types/components/form/input/dropdown-base.d.ts +52 -0
- package/dist/types/components/form/input/dropdown-input.d.ts +86 -0
- package/dist/types/components/form/input/duration-input.d.ts +18 -0
- package/dist/types/components/form/input/duration-mask.d.ts +24 -0
- package/dist/types/components/form/input/editable-text.d.ts +33 -0
- package/dist/types/components/form/input/email-input.d.ts +34 -0
- package/dist/types/components/form/input/file-input.d.ts +33 -0
- package/dist/types/components/form/input/files-input.d.ts +44 -0
- package/dist/types/components/form/input/index.d.ts +5 -0
- package/dist/types/components/form/input/input-adornment.d.ts +38 -0
- package/dist/types/components/form/input/input-container.d.ts +65 -0
- package/dist/types/components/form/input/input-options.d.ts +70 -0
- package/dist/types/components/form/input/input-wrapper.d.ts +78 -0
- package/dist/types/components/form/input/instant-input.d.ts +18 -0
- package/dist/types/components/form/input/lazy-native-select.d.ts +43 -0
- package/dist/types/components/form/input/list-input.d.ts +50 -0
- package/dist/types/components/form/input/mask-input.d.ts +158 -0
- package/dist/types/components/form/input/native-select.d.ts +50 -0
- package/dist/types/components/form/input/nullable-base64-input.d.ts +25 -0
- package/dist/types/components/form/input/nullable-bigint-input.d.ts +26 -0
- package/dist/types/components/form/input/nullable-date-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-date-time-input.d.ts +19 -0
- package/dist/types/components/form/input/nullable-duration-input.d.ts +19 -0
- package/dist/types/components/form/input/nullable-email-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-instant-input.d.ts +19 -0
- package/dist/types/components/form/input/nullable-mask-input.d.ts +24 -0
- package/dist/types/components/form/input/nullable-number-input.d.ts +29 -0
- package/dist/types/components/form/input/nullable-password-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-plain-date-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-plain-date-time-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-plain-month-day-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-plain-time-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-plain-year-month-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-rating-input.d.ts +33 -0
- package/dist/types/components/form/input/nullable-text-area.d.ts +27 -0
- package/dist/types/components/form/input/nullable-text-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-url-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-utils.d.ts +22 -2
- package/dist/types/components/form/input/nullable-uuid-input.d.ts +18 -0
- package/dist/types/components/form/input/nullable-zoned-date-time-input.d.ts +20 -0
- package/dist/types/components/form/input/number-input.d.ts +49 -0
- package/dist/types/components/form/input/option.d.ts +165 -0
- package/dist/types/components/form/input/otp-input.d.ts +77 -0
- package/dist/types/components/form/input/password-input.d.ts +39 -0
- package/dist/types/components/form/input/plain-date-input.d.ts +17 -0
- package/dist/types/components/form/input/plain-date-time-input.d.ts +17 -0
- package/dist/types/components/form/input/plain-month-day-input.d.ts +18 -0
- package/dist/types/components/form/input/plain-time-input.d.ts +17 -0
- package/dist/types/components/form/input/plain-year-month-input.d.ts +17 -0
- package/dist/types/components/form/input/radio-group.d.ts +108 -0
- package/dist/types/components/form/input/rating-input.d.ts +57 -0
- package/dist/types/components/form/input/segmented-input.d.ts +70 -1
- package/dist/types/components/form/input/select-tags-input.d.ts +69 -0
- package/dist/types/components/form/input/slider-input.d.ts +82 -0
- package/dist/types/components/form/input/switch.d.ts +59 -1
- package/dist/types/components/form/input/tag-input.d.ts +19 -0
- package/dist/types/components/form/input/tag-utils.d.ts +111 -0
- package/dist/types/components/form/input/tags-input.d.ts +18 -0
- package/dist/types/components/form/input/text-area.d.ts +42 -0
- package/dist/types/components/form/input/text-input.d.ts +63 -1
- package/dist/types/components/form/input/url-input.d.ts +34 -0
- package/dist/types/components/form/input/uuid-input.d.ts +19 -0
- package/dist/types/components/form/input/zoned-date-time-input.d.ts +20 -0
- package/dist/types/components/form/schema/standard-schema-v1.d.ts +98 -23
- package/dist/types/components/form/use-form.d.ts +146 -2
- package/dist/types/components/i18n/index.d.ts +9 -0
- package/dist/types/components/i18n/locale-direction.d.ts +21 -1
- package/dist/types/components/i18n/locale-selector.d.ts +45 -0
- package/dist/types/components/i18n/make-i18nprovider.d.ts +42 -0
- package/dist/types/components/json-schema/schema-types.d.ts +133 -0
- package/dist/types/components/json-structure/controls/deprecation-utils.d.ts +2 -3
- package/dist/types/components/json-structure/structure-types.d.ts +473 -19
- package/dist/types/components/layout/accordion.d.ts +77 -0
- package/dist/types/components/layout/action-card.d.ts +90 -2
- package/dist/types/components/layout/app-shell.d.ts +76 -0
- package/dist/types/components/layout/card.d.ts +27 -0
- package/dist/types/components/layout/center.d.ts +39 -0
- package/dist/types/components/layout/collapse.d.ts +28 -0
- package/dist/types/components/layout/divider.d.ts +84 -0
- package/dist/types/components/layout/group.d.ts +15 -0
- package/dist/types/components/layout/index.d.ts +2 -0
- package/dist/types/components/layout/nine-slice-scroll-view.d.ts +105 -0
- package/dist/types/components/layout/scrollable-panel.d.ts +54 -0
- package/dist/types/components/layout/sink.d.ts +46 -0
- package/dist/types/components/layout/stack.d.ts +16 -0
- package/dist/types/components/layout/with-breakpoint.d.ts +194 -0
- package/dist/types/components/lexical/code/language-selector.d.ts +2 -2
- package/dist/types/components/lexical/floating/block-handle.d.ts +2 -2
- package/dist/types/components/lexical/floating/floating-toolbar.d.ts +2 -2
- package/dist/types/components/lexical/floating/slash-command-palette.d.ts +2 -2
- package/dist/types/components/lexical/table/table-controls.d.ts +2 -2
- package/dist/types/components/lexical/toolbar/lexical-toolbar.d.ts +2 -2
- package/dist/types/components/lexical/toolbar/toolbar-helpers.d.ts +4 -2
- package/dist/types/components/misc/empty-state.d.ts +86 -0
- package/dist/types/components/misc/expando.d.ts +81 -0
- package/dist/types/components/misc/index.d.ts +2 -1
- package/dist/types/components/misc/link-portal.d.ts +40 -2
- package/dist/types/components/misc/notice.d.ts +93 -0
- package/dist/types/components/misc/notification-panel.d.ts +21 -0
- package/dist/types/components/misc/notification-provider.d.ts +141 -0
- package/dist/types/components/misc/notification.d.ts +93 -0
- package/dist/types/components/misc/style-portal.d.ts +31 -1
- package/dist/types/components/monaco/monaco-editor-input.d.ts +59 -2
- package/dist/types/components/navigation/breadcrumbs.d.ts +96 -0
- package/dist/types/components/navigation/flyout.d.ts +118 -16
- package/dist/types/components/navigation/index.d.ts +3 -0
- package/dist/types/components/navigation/link/link.d.ts +100 -0
- package/dist/types/components/navigation/menu.d.ts +155 -35
- package/dist/types/components/navigation/pagination.d.ts +82 -0
- package/dist/types/components/navigation/sidebar/sidebar-group.d.ts +42 -0
- package/dist/types/components/navigation/sidebar/sidebar-link.d.ts +101 -0
- package/dist/types/components/navigation/sidebar/sidebar-separator.d.ts +17 -0
- package/dist/types/components/navigation/sidebar/sidebar.d.ts +57 -0
- package/dist/types/components/navigation/tabs/tabs.d.ts +3 -2
- package/dist/types/components/navigation/toolbar/toolbar.d.ts +125 -0
- package/dist/types/components/navigation/tree-view.d.ts +95 -0
- package/dist/types/components/overlay/announcement-bar.d.ts +41 -2
- package/dist/types/components/overlay/block-command-palette.d.ts +25 -0
- package/dist/types/components/overlay/command-palette.d.ts +17 -0
- package/dist/types/components/overlay/dialogs.d.ts +213 -0
- package/dist/types/components/overlay/drawer.d.ts +76 -12
- package/dist/types/components/overlay/index.d.ts +4 -0
- package/dist/types/components/overlay/lightbox.d.ts +53 -10
- package/dist/types/components/overlay/modal.d.ts +113 -13
- package/dist/types/components/overlay/overlay.d.ts +61 -0
- package/dist/types/components/overlay/popover.d.ts +100 -0
- package/dist/types/components/overlay/ribbon.d.ts +58 -9
- package/dist/types/components/prosemirror/etoolbar-button.d.ts +10 -0
- package/dist/types/components/prosemirror/etoolbar-group.d.ts +10 -0
- package/dist/types/components/prosemirror/link-control.d.ts +43 -2
- package/dist/types/components/prosemirror/prosemirror-toolbar.d.ts +46 -6
- package/dist/types/components/prosemirror/utils.d.ts +113 -1
- package/dist/types/components/theme/style-utils.d.ts +95 -0
- package/dist/types/components/theme/theme.d.ts +39 -0
- package/dist/types/components/theme/types.d.ts +133 -1
- package/dist/types/components/typography/index.d.ts +1 -0
- package/dist/types/components/typography/kbd.d.ts +48 -0
- package/dist/types/components/typography/label.d.ts +45 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/json-schema/index.d.ts +13 -0
- package/dist/types/json-schema-display/index.d.ts +12 -0
- package/dist/types/json-structure/index.d.ts +9 -4
- package/dist/types/markdown/index.d.ts +13 -0
- package/dist/types/monaco/index.d.ts +17 -0
- package/dist/types/monaco/lazy-loader.d.ts +79 -0
- package/dist/types/monaco/styles-url.d.ts +11 -0
- package/dist/types/monaco/styles.d.ts +11 -0
- package/dist/types/monaco/types.d.ts +47 -0
- package/dist/types/prosemirror/index.d.ts +12 -0
- package/dist/types/prosemirror/styles-url.d.ts +11 -0
- package/dist/types/prosemirror/styles.d.ts +10 -0
- package/dist/types/tailwind/google-fonts.d.ts +15 -0
- package/dist/types/tailwind/index.d.ts +13 -0
- package/dist/types/tailwind/preset.d.ts +111 -0
- package/dist/types/tailwind/vite-plugin.d.ts +39 -4
- package/dist/types/tokens/base-colors.d.ts +21 -0
- package/dist/types/tokens/breakpoints.d.ts +67 -0
- package/dist/types/tokens/colors.d.ts +213 -4
- package/dist/types/tokens/motion.d.ts +142 -3
- package/dist/types/tokens/radius.d.ts +99 -0
- package/dist/types/tokens/shadows.d.ts +85 -0
- package/dist/types/tokens/spacing.d.ts +111 -0
- package/dist/types/tokens/text-shadows.d.ts +82 -0
- package/dist/types/tokens/typography.d.ts +313 -25
- package/dist/types/tokens/z-index.d.ts +62 -0
- package/dist/types/utils/color.d.ts +297 -28
- package/dist/types/utils/download.d.ts +92 -0
- package/dist/types/utils/focus-trap.d.ts +67 -11
- package/dist/types/utils/format-file-size.d.ts +44 -0
- package/dist/ur-B6yB2JQ7.cjs +1 -0
- package/dist/ur-CvGP14xo.cjs +1 -0
- package/dist/{ur-Bg9eX81v.js → ur-Deo004ME.js} +16 -1
- package/dist/{ur-B69X-xNs.js → ur-DkIYJxsF.js} +82 -8
- package/dist/use-animated-toggle-89fKlXxy.js +195 -0
- package/dist/use-animated-toggle-DrqK7nUS.cjs +1 -0
- package/dist/{use-form-B56E_x5Y.js → use-form-BurzbPVV.js} +190 -2
- package/dist/{use-form-Cnp3XQ5X.cjs → use-form-Uree6QFy.cjs} +1 -1
- package/dist/vi-BYk1rJDv.js +53 -0
- package/dist/vi-DKw6PBja.js +175 -0
- package/dist/vi-Df4WZe9y.cjs +1 -0
- package/dist/vi-DneuUbkq.cjs +1 -0
- package/dist/{widget-customization-Ds9sicAg.js → widget-customization-0is7oTeP.js} +205 -204
- package/dist/widget-customization-B-LmxkPE.cjs +1 -0
- package/dist/zh-C5a9NGFW.cjs +1 -0
- package/dist/zh-CaKHseXJ.js +175 -0
- package/dist/zh-DFHuW_5g.cjs +1 -0
- package/dist/{zh-BIykcEu9.js → zh-DR7QaM65.js} +16 -1
- package/package.json +1 -1
- package/dist/ar-BsUm-TCn.cjs +0 -1
- package/dist/ar-D7CXDmVZ.cjs +0 -1
- package/dist/ar-nOSKXpIW.js +0 -101
- package/dist/auth-divider-BqZPH1-z.cjs +0 -1
- package/dist/de-BUFLEyKr.cjs +0 -1
- package/dist/de-WzsOu9Gn.cjs +0 -1
- package/dist/deep-merge-BYm0y62g.js +0 -1620
- package/dist/deep-merge-d7sf0xmN.cjs +0 -1
- package/dist/editor-toolbar-group--a-xgsJw.cjs +0 -1
- package/dist/editor-toolbar-group-CVpl5mxF.js +0 -31
- package/dist/es-CDqqzpCw.js +0 -101
- package/dist/es-Ds2Xf3wV.cjs +0 -1
- package/dist/fa-C7tE_hR3.js +0 -101
- package/dist/fa-Ct1UtDB7.cjs +0 -1
- package/dist/fr-Cdyopuz3.cjs +0 -1
- package/dist/fr-CzAkRFed.cjs +0 -1
- package/dist/he-D2oUloCJ.js +0 -101
- package/dist/he-DarDNPn0.cjs +0 -1
- package/dist/he-DlXALrK7.cjs +0 -1
- package/dist/hi-3dBhLwDs.cjs +0 -1
- package/dist/hi-D5ZlZoQq.js +0 -101
- package/dist/hi-tATwsXJ6.cjs +0 -1
- package/dist/index-DE2tjivA.cjs +0 -1
- package/dist/input-container-C6qEIjcA.cjs +0 -1
- package/dist/it-BmFag7j0.cjs +0 -1
- package/dist/it-DohtcWi9.cjs +0 -1
- package/dist/ja-Dj-bAKLf.cjs +0 -1
- package/dist/ja-eyTArrgS.cjs +0 -1
- package/dist/ko-BFLCDMMs.cjs +0 -1
- package/dist/ko-BomUE-yQ.cjs +0 -1
- package/dist/ko-Ch0jFsBV.js +0 -101
- package/dist/menu-CZzRsQP_.js +0 -372
- package/dist/menu-ClrU72xH.cjs +0 -1
- package/dist/nl-Bx2ACvr4.cjs +0 -1
- package/dist/nl-NuTdZO1s.js +0 -102
- package/dist/pl-QHl6sl8f.cjs +0 -1
- package/dist/pt-BETjHZrL.js +0 -101
- package/dist/pt-DZGw2Z-1.cjs +0 -1
- package/dist/pt-oBMmVYcu.cjs +0 -1
- package/dist/ru-CtxMmoa6.cjs +0 -1
- package/dist/ru-D03IuLqh.cjs +0 -1
- package/dist/text-input-B3VBat1k.js +0 -44
- package/dist/text-input-Ds8e7Z1G.cjs +0 -1
- package/dist/tr-B_-_1wua.cjs +0 -1
- package/dist/translations-B4-Zd2LM.cjs +0 -1
- package/dist/translations-D62qqNV9.cjs +0 -1
- package/dist/translations-DPr6c05Z.js +0 -67
- package/dist/ur-DvqAg9gW.cjs +0 -1
- package/dist/ur-DyUSmIbo.cjs +0 -1
- package/dist/use-animated-toggle-ChycsEoj.js +0 -175
- package/dist/use-animated-toggle-DR6CyMac.cjs +0 -1
- package/dist/vi-BdzxA60L.js +0 -101
- package/dist/vi-CBmPaHxg.cjs +0 -1
- package/dist/vi-D5R3YcU0.cjs +0 -1
- package/dist/vi-DhdsHHf_.js +0 -38
- package/dist/widget-customization-Dk7XcVly.cjs +0 -1
- package/dist/zh-CCGXcj5r.cjs +0 -1
- package/dist/zh-Cb1b8uik.cjs +0 -1
- package/dist/zh-Dn1UJiZa.js +0 -101
|
@@ -1,5 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single segment in a controller path.
|
|
3
|
+
*
|
|
4
|
+
* - `string` represents a named property (e.g., `'name'`, `'address'`)
|
|
5
|
+
* - `number` represents an array index (e.g., `0`, `1`)
|
|
6
|
+
*/
|
|
1
7
|
export type PathSegment = string | number;
|
|
8
|
+
/**
|
|
9
|
+
* An array of path segments representing the location of a value within a nested data structure.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const path: Path = ['users', 0, 'name']
|
|
14
|
+
* // Represents: users[0].name
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
2
17
|
export type Path = PathSegment[];
|
|
18
|
+
/**
|
|
19
|
+
* Parses a dot-separated path string into an array of path segments.
|
|
20
|
+
*
|
|
21
|
+
* String segments are treated as property names. Segments matching the pattern
|
|
22
|
+
* `[n]` (where `n` is a number) are parsed as numeric array indices.
|
|
23
|
+
*
|
|
24
|
+
* @param path - The dot-separated path string to parse (e.g., `'users.[0].name'`)
|
|
25
|
+
* @returns An array of path segments
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* parsePath('users.[0].name')
|
|
30
|
+
* // => ['users', 0, 'name']
|
|
31
|
+
*
|
|
32
|
+
* parsePath('settings.theme')
|
|
33
|
+
* // => ['settings', 'theme']
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
3
36
|
export declare function parsePath(path: string): Path;
|
|
37
|
+
/**
|
|
38
|
+
* Wraps a single path segment into its string representation for path serialization.
|
|
39
|
+
*
|
|
40
|
+
* - Numeric segments are wrapped in brackets: `0` becomes `[0]`
|
|
41
|
+
* - String segments are prefixed with a dot: `'name'` becomes `.name`
|
|
42
|
+
*
|
|
43
|
+
* @param v - The path segment to wrap
|
|
44
|
+
* @returns The formatted segment string
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* wrapSegment(0) // => '[0]'
|
|
49
|
+
* wrapSegment('name') // => '.name'
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
4
52
|
export declare function wrapSegment(v: number | string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Converts an array of path segments into a human-readable string representation.
|
|
55
|
+
*
|
|
56
|
+
* The first segment is rendered without a leading dot. Subsequent segments use
|
|
57
|
+
* {@link wrapSegment} formatting.
|
|
58
|
+
*
|
|
59
|
+
* @param path - The path segments to serialize
|
|
60
|
+
* @returns The string representation of the path, or an empty string if the path is empty
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* pathToString(['users', 0, 'name'])
|
|
65
|
+
* // => 'users[0].name'
|
|
66
|
+
*
|
|
67
|
+
* pathToString(['settings', 'theme'])
|
|
68
|
+
* // => 'settings.theme'
|
|
69
|
+
*
|
|
70
|
+
* pathToString([])
|
|
71
|
+
* // => ''
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
5
74
|
export declare function pathToString(path: Path): string;
|
|
@@ -3,51 +3,146 @@ import { Path } from './path';
|
|
|
3
3
|
import { Controller } from './controller';
|
|
4
4
|
import { ControllerValidation } from './controller-validation';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Defines a single branch (variant) within a union type for use with {@link UnionController}.
|
|
7
|
+
*
|
|
8
|
+
* Each branch has a unique key, a display label, a detection predicate, an optional
|
|
9
|
+
* conversion function for migrating values between branches, and a factory for default values.
|
|
10
|
+
*
|
|
11
|
+
* @typeParam T - The value type produced by this branch
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const stringBranch: UnionBranch<string> = {
|
|
16
|
+
* key: 'string',
|
|
17
|
+
* label: 'Text',
|
|
18
|
+
* detect: (v) => typeof v === 'string',
|
|
19
|
+
* defaultValue: () => '',
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* const numberBranch: UnionBranch<number> = {
|
|
23
|
+
* key: 'number',
|
|
24
|
+
* label: 'Number',
|
|
25
|
+
* detect: (v) => typeof v === 'number',
|
|
26
|
+
* convert: (v) => {
|
|
27
|
+
* const n = Number(v)
|
|
28
|
+
* return isNaN(n) ? { ok: false } : { ok: true, value: n }
|
|
29
|
+
* },
|
|
30
|
+
* defaultValue: () => 0,
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
7
33
|
*/
|
|
8
34
|
export interface UnionBranch<T = unknown> {
|
|
9
|
-
/** Unique identifier for this branch */
|
|
35
|
+
/** Unique identifier for this branch (used as path segment and lookup key) */
|
|
10
36
|
key: string;
|
|
11
|
-
/**
|
|
37
|
+
/** Human-readable display label for this branch, shown in UI selectors */
|
|
12
38
|
label: string;
|
|
13
|
-
/** Type guard function
|
|
39
|
+
/** Type guard function that returns `true` if a value belongs to this branch */
|
|
14
40
|
detect: (value: unknown) => boolean;
|
|
15
|
-
/**
|
|
41
|
+
/** Optional function to convert a value from another branch to this branch's type. Returns `{ ok: true, value }` on success or `{ ok: false }` on failure. */
|
|
16
42
|
convert?: (value: unknown) => {
|
|
17
43
|
ok: true;
|
|
18
44
|
value: T;
|
|
19
45
|
} | {
|
|
20
46
|
ok: false;
|
|
21
47
|
};
|
|
22
|
-
/**
|
|
48
|
+
/** Factory function that produces the default value when switching to this branch */
|
|
23
49
|
defaultValue: () => T;
|
|
24
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Determines when validation errors are displayed.
|
|
53
|
+
*
|
|
54
|
+
* - `'onSubmit'` - Errors shown only after form submission
|
|
55
|
+
* - `'eager'` - Errors shown immediately as values change
|
|
56
|
+
* - `'onTouched'` - Errors shown after the field has been touched/blurred
|
|
57
|
+
*/
|
|
25
58
|
export type ValidationMode = 'onSubmit' | 'eager' | 'onTouched';
|
|
26
59
|
/**
|
|
27
|
-
* Controller for union types that manages multiple possible value
|
|
60
|
+
* Controller for union/discriminated types that manages multiple possible value branches.
|
|
61
|
+
*
|
|
62
|
+
* Extends `Controller<T>` to support values that can be one of several types.
|
|
63
|
+
* Automatically detects which branch is active based on the current value,
|
|
64
|
+
* creates per-branch sub-controllers lazily, and supports switching between branches
|
|
65
|
+
* with optional value conversion.
|
|
66
|
+
*
|
|
67
|
+
* @typeParam T - The union type representing all possible value shapes
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* import { UnionController, UnionBranch } from '@tempots/beatui'
|
|
72
|
+
*
|
|
73
|
+
* type Value = string | number
|
|
74
|
+
*
|
|
75
|
+
* const branches: UnionBranch[] = [
|
|
76
|
+
* { key: 'string', label: 'Text', detect: v => typeof v === 'string', defaultValue: () => '' },
|
|
77
|
+
* { key: 'number', label: 'Number', detect: v => typeof v === 'number', defaultValue: () => 0 },
|
|
78
|
+
* ]
|
|
79
|
+
*
|
|
80
|
+
* // The active branch is automatically detected from the current value
|
|
81
|
+
* console.log(unionCtrl.activeBranch.value) // 'string' or 'number'
|
|
82
|
+
*
|
|
83
|
+
* // Switch to a different branch
|
|
84
|
+
* unionCtrl.switchToBranch('number')
|
|
85
|
+
* ```
|
|
28
86
|
*/
|
|
29
87
|
export declare class UnionController<T> extends Controller<T> {
|
|
30
88
|
#private;
|
|
89
|
+
/** The immutable list of branch definitions for this union */
|
|
31
90
|
readonly branches: readonly UnionBranch[];
|
|
91
|
+
/** Reactive signal containing the key of the currently active branch */
|
|
32
92
|
readonly activeBranch: Signal<string>;
|
|
93
|
+
/**
|
|
94
|
+
* Creates a new UnionController.
|
|
95
|
+
*
|
|
96
|
+
* @param path - The path segments identifying this controller in the form tree
|
|
97
|
+
* @param change - Callback to propagate value changes to the parent
|
|
98
|
+
* @param signal - Reactive signal holding the current union value
|
|
99
|
+
* @param status - Reactive signal holding the current validation status
|
|
100
|
+
* @param parent - Parent context providing disabled state and optional validation mode
|
|
101
|
+
* @param branches - Array of branch definitions describing the possible value types
|
|
102
|
+
* @param equals - Optional equality function for comparing values. Defaults to `strictEqual`.
|
|
103
|
+
*/
|
|
33
104
|
constructor(path: Path, change: (value: T) => void, signal: Signal<T>, status: Signal<ControllerValidation>, parent: {
|
|
34
105
|
disabled: Signal<boolean>;
|
|
35
106
|
validationMode?: Signal<ValidationMode>;
|
|
36
107
|
}, branches: UnionBranch[], equals?: (a: T, b: T) => boolean);
|
|
37
108
|
/**
|
|
38
|
-
*
|
|
109
|
+
* Gets the controller for the currently active branch.
|
|
110
|
+
*
|
|
111
|
+
* The returned controller's value and type correspond to the branch that
|
|
112
|
+
* matches the current union value.
|
|
113
|
+
*
|
|
114
|
+
* @returns The `Controller<unknown>` for the active branch
|
|
39
115
|
*/
|
|
40
116
|
get activeController(): Controller<unknown>;
|
|
41
117
|
/**
|
|
42
|
-
*
|
|
118
|
+
* Gets or creates a controller for a specific branch by key.
|
|
119
|
+
*
|
|
120
|
+
* Controllers are created lazily and cached for subsequent calls.
|
|
121
|
+
*
|
|
122
|
+
* @param branchKey - The unique key of the branch to get a controller for
|
|
123
|
+
* @returns The `Controller<unknown>` for the specified branch
|
|
124
|
+
* @throws Error if the branch key is not found in the branches array
|
|
43
125
|
*/
|
|
44
126
|
getBranchController(branchKey: string): Controller<unknown>;
|
|
45
127
|
/**
|
|
46
|
-
*
|
|
128
|
+
* Switches the union value to a different branch.
|
|
129
|
+
*
|
|
130
|
+
* Attempts the following in order:
|
|
131
|
+
* 1. If already on the target branch, returns `true` immediately
|
|
132
|
+
* 2. If the branch has a `convert` function, tries to convert the current value
|
|
133
|
+
* 3. If conversion fails and `confirmChange` is true, prompts the user with `window.confirm`
|
|
134
|
+
* 4. Sets the value to the branch's default value
|
|
135
|
+
*
|
|
136
|
+
* @param branchKey - The key of the branch to switch to
|
|
137
|
+
* @param confirmChange - If true, prompts the user before losing the current value when conversion fails
|
|
138
|
+
* @returns `true` if the switch was successful, `false` if the user cancelled
|
|
139
|
+
* @throws Error if the branch key is not found in the branches array
|
|
47
140
|
*/
|
|
48
141
|
switchToBranch(branchKey: string, confirmChange?: boolean): boolean;
|
|
49
142
|
/**
|
|
50
|
-
*
|
|
143
|
+
* Gets the {@link UnionBranch} definition for the currently active branch.
|
|
144
|
+
*
|
|
145
|
+
* @returns The active branch definition, or `undefined` if no branch matches
|
|
51
146
|
*/
|
|
52
147
|
get activeBranchDefinition(): UnionBranch | undefined;
|
|
53
148
|
}
|
|
@@ -1,4 +1,71 @@
|
|
|
1
1
|
import { Controller } from './controller';
|
|
2
|
+
/**
|
|
3
|
+
* Transforms a controller that uses `undefined` for absent values into one that uses `null`.
|
|
4
|
+
*
|
|
5
|
+
* Useful for bridging between APIs that represent missing values differently.
|
|
6
|
+
* The returned controller exposes `null` to consumers while the underlying controller stores `undefined`.
|
|
7
|
+
*
|
|
8
|
+
* @typeParam T - The non-nullable base value type
|
|
9
|
+
*
|
|
10
|
+
* @param controller - A controller whose value is `NonNullable<T> | undefined`
|
|
11
|
+
* @returns A new controller whose value is `NonNullable<T> | null`
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { transformNullToUndefined } from '@tempots/beatui'
|
|
16
|
+
*
|
|
17
|
+
* // Original controller uses undefined for absent values
|
|
18
|
+
* const undefinedCtrl: Controller<string | undefined> = ...
|
|
19
|
+
*
|
|
20
|
+
* // Transform to use null instead
|
|
21
|
+
* const nullCtrl = transformNullToUndefined(undefinedCtrl)
|
|
22
|
+
* // nullCtrl.signal.value is string | null
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
2
25
|
export declare function transformNullToUndefined<T>(controller: Controller<NonNullable<T> | undefined>): Controller<NonNullable<T> | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Transforms a controller that uses `undefined` for absent values into one that uses empty strings.
|
|
28
|
+
*
|
|
29
|
+
* Maps `undefined` to `''` when reading and `''` to `undefined` when writing.
|
|
30
|
+
* Useful for text inputs that need to represent "no value" as an empty string.
|
|
31
|
+
*
|
|
32
|
+
* @param controller - A controller whose value is `string | undefined`
|
|
33
|
+
* @returns A new controller whose value is always `string` (never undefined)
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { transformEmptyStringToUndefined } from '@tempots/beatui'
|
|
38
|
+
*
|
|
39
|
+
* // Original controller uses undefined for empty
|
|
40
|
+
* const optionalCtrl: Controller<string | undefined> = ...
|
|
41
|
+
*
|
|
42
|
+
* // Transform so empty string maps to undefined
|
|
43
|
+
* const stringCtrl = transformEmptyStringToUndefined(optionalCtrl)
|
|
44
|
+
* // stringCtrl.signal.value is always string
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
3
47
|
export declare function transformEmptyStringToUndefined(controller: Controller<NonNullable<string> | undefined>): Controller<NonNullable<string>>;
|
|
48
|
+
/**
|
|
49
|
+
* Transforms a controller that uses `null` for absent values into one that uses `undefined`.
|
|
50
|
+
*
|
|
51
|
+
* The inverse of {@link transformNullToUndefined}. Maps `null` to `undefined` when reading
|
|
52
|
+
* and `undefined` to `null` when writing.
|
|
53
|
+
*
|
|
54
|
+
* @typeParam T - The non-nullable base value type
|
|
55
|
+
*
|
|
56
|
+
* @param controller - A controller whose value is `NonNullable<T> | null`
|
|
57
|
+
* @returns A new controller whose value is `NonNullable<T> | undefined`
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* import { transformUndefinedToNull } from '@tempots/beatui'
|
|
62
|
+
*
|
|
63
|
+
* // Original controller uses null for absent values
|
|
64
|
+
* const nullCtrl: Controller<string | null> = ...
|
|
65
|
+
*
|
|
66
|
+
* // Transform to use undefined instead
|
|
67
|
+
* const undefinedCtrl = transformUndefinedToNull(nullCtrl)
|
|
68
|
+
* // undefinedCtrl.signal.value is string | undefined
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
4
71
|
export declare function transformUndefinedToNull<T>(controller: Controller<NonNullable<T> | null>): Controller<NonNullable<T> | undefined>;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { Value, TNode } from '@tempots/dom';
|
|
2
|
+
import { ControlSize } from '../../theme';
|
|
3
|
+
import { ThemeColorName } from '../../../tokens';
|
|
4
|
+
/**
|
|
5
|
+
* Definition of a tick mark on the slider track.
|
|
6
|
+
*/
|
|
7
|
+
export interface SliderTick {
|
|
8
|
+
/** The numeric value where this tick appears */
|
|
9
|
+
value: number;
|
|
10
|
+
/** Optional label displayed below the tick mark */
|
|
11
|
+
label?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Configuration options for the {@link AdvancedSlider} component.
|
|
15
|
+
*
|
|
16
|
+
* Supports single value, range (two thumbs), and multi-point (arbitrary number
|
|
17
|
+
* of thumbs) modes. Features tick marks, value labels, and customizable colors.
|
|
18
|
+
*/
|
|
19
|
+
export interface AdvancedSliderOptions {
|
|
20
|
+
/** Minimum value of the slider range */
|
|
21
|
+
min?: number;
|
|
22
|
+
/** Maximum value of the slider range */
|
|
23
|
+
max?: number;
|
|
24
|
+
/** Step increment between valid values. @default 1 */
|
|
25
|
+
step?: number;
|
|
26
|
+
/** Whether the slider is disabled. @default false */
|
|
27
|
+
disabled?: Value<boolean>;
|
|
28
|
+
/** Visual size of the slider. @default 'md' */
|
|
29
|
+
size?: Value<ControlSize>;
|
|
30
|
+
/** Theme color for the filled track and thumbs. @default 'primary' */
|
|
31
|
+
color?: Value<ThemeColorName>;
|
|
32
|
+
/**
|
|
33
|
+
* Single value mode: the current slider value.
|
|
34
|
+
* Use this for a simple single-thumb slider.
|
|
35
|
+
*/
|
|
36
|
+
value?: Value<number>;
|
|
37
|
+
/** Callback for single-value mode changes */
|
|
38
|
+
onChange?: (value: number) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Range mode: a two-element array `[low, high]`.
|
|
41
|
+
* When provided, two thumbs are rendered.
|
|
42
|
+
*/
|
|
43
|
+
range?: Value<[number, number]>;
|
|
44
|
+
/** Callback for range mode changes */
|
|
45
|
+
onRangeChange?: (range: [number, number]) => void;
|
|
46
|
+
/**
|
|
47
|
+
* Multi-point mode: an array of values, each getting its own thumb.
|
|
48
|
+
* When provided, multiple thumbs are rendered at initialization time.
|
|
49
|
+
* The number of points is fixed after component creation.
|
|
50
|
+
*/
|
|
51
|
+
points?: Value<number[]>;
|
|
52
|
+
/** Callback for multi-point mode changes */
|
|
53
|
+
onPointsChange?: (points: number[]) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Tick marks along the slider track.
|
|
56
|
+
* Can be `true` for automatic step-based ticks, or an array of custom tick definitions.
|
|
57
|
+
*/
|
|
58
|
+
ticks?: boolean | SliderTick[];
|
|
59
|
+
/**
|
|
60
|
+
* Whether to show the current value label(s) above the thumb(s).
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
63
|
+
showValue?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Custom formatter for the displayed value labels.
|
|
66
|
+
* @default (v) => String(v)
|
|
67
|
+
*/
|
|
68
|
+
formatValue?: (value: number) => string;
|
|
69
|
+
/**
|
|
70
|
+
* Colors for individual segments between consecutive thumbs in multi-point mode.
|
|
71
|
+
* Each entry corresponds to the segment between thumb[i] and thumb[i+1].
|
|
72
|
+
* If fewer colors than segments are provided, remaining segments use the default color.
|
|
73
|
+
* If not provided, a single fill spanning all thumbs is used (existing behavior).
|
|
74
|
+
*/
|
|
75
|
+
segmentColors?: ThemeColorName[];
|
|
76
|
+
/**
|
|
77
|
+
* Custom renderer for the thumb element. When provided, replaces the default
|
|
78
|
+
* circular thumb with your custom content. The rendered content is placed
|
|
79
|
+
* inside the thumb container that handles positioning, ARIA attributes,
|
|
80
|
+
* keyboard navigation, and pointer events.
|
|
81
|
+
*
|
|
82
|
+
* @param index - The zero-based index of the thumb
|
|
83
|
+
* @param value - A reactive value holding the current thumb position
|
|
84
|
+
* @returns A TNode to render as the thumb
|
|
85
|
+
*/
|
|
86
|
+
renderThumb?: (index: number, value: Value<number>) => TNode;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* An advanced slider component supporting single value, range selection,
|
|
90
|
+
* and multi-point modes with tick marks and value display.
|
|
91
|
+
*
|
|
92
|
+
* - **Single mode**: Pass `value` and `onChange` for a standard single-thumb slider.
|
|
93
|
+
* - **Range mode**: Pass `range` and `onRangeChange` for a two-thumb range selector.
|
|
94
|
+
* - **Multi-point mode**: Pass `points` and `onPointsChange` for arbitrary number of thumbs.
|
|
95
|
+
*
|
|
96
|
+
* Additional features include configurable tick marks (automatic or custom),
|
|
97
|
+
* value labels above the thumbs, step snapping, and theme-aware coloring.
|
|
98
|
+
*
|
|
99
|
+
* @param options - Configuration for the slider
|
|
100
|
+
* @returns A styled slider element
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* // Simple slider with value display
|
|
105
|
+
* const vol = prop(50)
|
|
106
|
+
* AdvancedSlider({
|
|
107
|
+
* value: vol, onChange: vol.set,
|
|
108
|
+
* min: 0, max: 100,
|
|
109
|
+
* showValue: true,
|
|
110
|
+
* ticks: true,
|
|
111
|
+
* })
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* // Range slider
|
|
117
|
+
* const priceRange = prop<[number, number]>([20, 80])
|
|
118
|
+
* AdvancedSlider({
|
|
119
|
+
* range: priceRange, onRangeChange: priceRange.set,
|
|
120
|
+
* min: 0, max: 100, step: 5,
|
|
121
|
+
* ticks: [
|
|
122
|
+
* { value: 0, label: '$0' },
|
|
123
|
+
* { value: 50, label: '$50' },
|
|
124
|
+
* { value: 100, label: '$100' },
|
|
125
|
+
* ],
|
|
126
|
+
* showValue: true,
|
|
127
|
+
* formatValue: v => `$${v}`,
|
|
128
|
+
* })
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* // Multi-point slider
|
|
134
|
+
* const pts = prop([10, 40, 70])
|
|
135
|
+
* AdvancedSlider({
|
|
136
|
+
* points: pts, onPointsChange: pts.set,
|
|
137
|
+
* min: 0, max: 100,
|
|
138
|
+
* showValue: true,
|
|
139
|
+
* color: 'green',
|
|
140
|
+
* })
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
export declare function AdvancedSlider({ min, max, step, disabled, size, color, value, onChange, range, points, onRangeChange, onPointsChange, ticks, showValue, formatValue, segmentColors, renderThumb, }: AdvancedSliderOptions): import("@tempots/dom").Renderable;
|
|
@@ -1,9 +1,48 @@
|
|
|
1
1
|
import { AppearancePreference } from '../../theme';
|
|
2
2
|
import { Value } from '@tempots/dom';
|
|
3
|
+
/**
|
|
4
|
+
* Options for the {@link AppearanceSelector} component.
|
|
5
|
+
*/
|
|
3
6
|
export type AppearanceSelectorOptions = {
|
|
7
|
+
/** The current appearance preference value. */
|
|
4
8
|
value: Value<AppearancePreference>;
|
|
9
|
+
/** Callback invoked when the user selects a different appearance. */
|
|
5
10
|
onChange?: (value: AppearancePreference) => void;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the selector is disabled.
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
6
15
|
disabled?: Value<boolean>;
|
|
7
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* A segmented input for selecting the application appearance (light, dark, or system).
|
|
19
|
+
*
|
|
20
|
+
* Renders three icon segments for system (laptop), light (sun), and dark (moon) modes
|
|
21
|
+
* using the {@link SegmentedInput} component.
|
|
22
|
+
*
|
|
23
|
+
* @param options - Configuration options for the appearance selector.
|
|
24
|
+
* @returns A renderable segmented appearance selector component.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* AppearanceSelector({
|
|
29
|
+
* value: prop<AppearancePreference>('system'),
|
|
30
|
+
* onChange: pref => console.log('Appearance:', pref),
|
|
31
|
+
* })
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
8
34
|
export declare function AppearanceSelector({ value, onChange, disabled, }: AppearanceSelectorOptions): import("@tempots/dom").Renderable;
|
|
35
|
+
/**
|
|
36
|
+
* A standalone appearance selector that automatically connects to the application's
|
|
37
|
+
* {@link Theme} provider. Reads and writes the appearance preference from the
|
|
38
|
+
* current theme context without requiring manual wiring.
|
|
39
|
+
*
|
|
40
|
+
* @returns A renderable standalone appearance selector component.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* // Just drop it in -- no props needed
|
|
45
|
+
* StandaloneAppearanceSelector()
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
9
48
|
export declare function StandaloneAppearanceSelector(): import("@tempots/dom").Renderable;
|
|
@@ -1,10 +1,44 @@
|
|
|
1
1
|
import { Merge, Value } from '@tempots/dom';
|
|
2
2
|
import { InputOptions } from './input-options';
|
|
3
3
|
import { FileInputMode } from './files-input';
|
|
4
|
+
/**
|
|
5
|
+
* Options for the {@link Base64Input} component.
|
|
6
|
+
* Extends standard `InputOptions` for a single base64-encoded file string.
|
|
7
|
+
*/
|
|
4
8
|
export type Base64InputOptions = Merge<InputOptions<string | undefined>, {
|
|
9
|
+
/** Comma-separated list of accepted MIME types or file extensions. */
|
|
5
10
|
accept?: Value<string>;
|
|
11
|
+
/** Maximum allowed file size in bytes. */
|
|
6
12
|
maxFileSize?: Value<number>;
|
|
13
|
+
/**
|
|
14
|
+
* Display mode for the file input.
|
|
15
|
+
* @default 'default'
|
|
16
|
+
*/
|
|
7
17
|
mode?: Value<FileInputMode>;
|
|
18
|
+
/**
|
|
19
|
+
* Whether to show the selected file in a list below the drop zone.
|
|
20
|
+
* @default true
|
|
21
|
+
*/
|
|
8
22
|
showFileList?: Value<boolean>;
|
|
9
23
|
}>;
|
|
24
|
+
/**
|
|
25
|
+
* A single-file input component that produces a base64-encoded string value.
|
|
26
|
+
*
|
|
27
|
+
* Wraps {@link Base64sInput} with `maxFiles: 1`, providing a file upload interface
|
|
28
|
+
* that converts the selected file to a base64 string. Useful for embedding small
|
|
29
|
+
* files (images, documents) directly as base64 data.
|
|
30
|
+
*
|
|
31
|
+
* @param options - Configuration options for the base64 file input.
|
|
32
|
+
* @returns A renderable base64 file input component.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* Base64Input({
|
|
37
|
+
* value: prop<string | undefined>(undefined),
|
|
38
|
+
* accept: 'image/png,image/jpeg',
|
|
39
|
+
* maxFileSize: 2 * 1024 * 1024, // 2 MB
|
|
40
|
+
* onChange: base64 => console.log('Base64 length:', base64?.length),
|
|
41
|
+
* })
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
10
44
|
export declare function Base64Input(options: Base64InputOptions): import("@tempots/dom").Renderable;
|
|
@@ -1,12 +1,59 @@
|
|
|
1
1
|
import { Merge, Value } from '@tempots/dom';
|
|
2
2
|
import { FileInputMode } from './files-input';
|
|
3
3
|
import { InputOptions } from './input-options';
|
|
4
|
+
/**
|
|
5
|
+
* Options for the {@link Base64sInput} component.
|
|
6
|
+
* Extends standard `InputOptions` for multiple base64-encoded file strings.
|
|
7
|
+
*/
|
|
4
8
|
export type Base64sInputOptions = Merge<InputOptions<string[]>, {
|
|
9
|
+
/** Comma-separated list of accepted MIME types or file extensions. */
|
|
5
10
|
accept?: Value<string>;
|
|
11
|
+
/** Maximum number of files that can be selected. */
|
|
6
12
|
maxFiles?: Value<number>;
|
|
13
|
+
/** Maximum allowed file size in bytes per file. */
|
|
7
14
|
maxFileSize?: Value<number>;
|
|
15
|
+
/**
|
|
16
|
+
* Display mode for the file input.
|
|
17
|
+
* @default 'default'
|
|
18
|
+
*/
|
|
8
19
|
mode?: Value<FileInputMode>;
|
|
20
|
+
/**
|
|
21
|
+
* Whether to show the selected files in a list below the drop zone.
|
|
22
|
+
* @default true
|
|
23
|
+
*/
|
|
9
24
|
showFileList?: Value<boolean>;
|
|
10
25
|
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Converts a `File` object to a base64-encoded string (without the data URL prefix).
|
|
28
|
+
*
|
|
29
|
+
* @param file - The file to convert.
|
|
30
|
+
* @returns A promise that resolves with the base64-encoded string content.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* const base64 = await fileToBase64(myFile)
|
|
35
|
+
* console.log(base64) // 'iVBORw0KGgoAAAANSUhEUg...'
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
11
38
|
export declare function fileToBase64(file: File): Promise<string>;
|
|
39
|
+
/**
|
|
40
|
+
* A multi-file input component that produces an array of base64-encoded strings.
|
|
41
|
+
*
|
|
42
|
+
* Wraps {@link FilesInput}, converting selected files to base64 and reconstructing
|
|
43
|
+
* `File` objects from base64 strings for display. Automatically detects MIME types
|
|
44
|
+
* from file magic bytes for proper thumbnail rendering.
|
|
45
|
+
*
|
|
46
|
+
* @param options - Configuration options for the multi-file base64 input.
|
|
47
|
+
* @returns A renderable multi-file base64 input component.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* Base64sInput({
|
|
52
|
+
* value: prop<string[]>([]),
|
|
53
|
+
* accept: 'image/*',
|
|
54
|
+
* maxFiles: 3,
|
|
55
|
+
* onChange: base64s => console.log('Files:', base64s.length),
|
|
56
|
+
* })
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
12
59
|
export declare function Base64sInput(options: Base64sInputOptions): import("@tempots/dom").Renderable;
|
|
@@ -1,9 +1,36 @@
|
|
|
1
1
|
import { Value } from '@tempots/dom';
|
|
2
2
|
import { Merge } from '@tempots/std';
|
|
3
3
|
import { InputOptions } from './input-options';
|
|
4
|
+
/**
|
|
5
|
+
* Options for the {@link BigintInput} component.
|
|
6
|
+
* Extends standard `InputOptions` for `bigint` values with stepper and range constraints.
|
|
7
|
+
*/
|
|
4
8
|
export type BigintInputOptions = Merge<InputOptions<bigint>, {
|
|
9
|
+
/** Step value for increment/decrement buttons. If provided, stepper buttons are shown. */
|
|
5
10
|
step?: Value<bigint>;
|
|
11
|
+
/** Minimum allowed value. Values below this are clamped. */
|
|
6
12
|
min?: Value<bigint>;
|
|
13
|
+
/** Maximum allowed value. Values above this are clamped. */
|
|
7
14
|
max?: Value<bigint>;
|
|
8
15
|
}>;
|
|
16
|
+
/**
|
|
17
|
+
* A numeric input component for `bigint` values with optional stepper buttons.
|
|
18
|
+
*
|
|
19
|
+
* Uses a masked input that only allows digit characters. Supports min/max
|
|
20
|
+
* clamping and increment/decrement buttons (with Shift+click for 10x step).
|
|
21
|
+
*
|
|
22
|
+
* @param options - Configuration options for the bigint input.
|
|
23
|
+
* @returns A renderable bigint input component.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* BigintInput({
|
|
28
|
+
* value: prop(0n),
|
|
29
|
+
* step: 1n,
|
|
30
|
+
* min: 0n,
|
|
31
|
+
* max: 1000n,
|
|
32
|
+
* onChange: v => console.log('Value:', v),
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
9
36
|
export declare const BigintInput: (options: BigintInputOptions) => import("@tempots/dom").Renderable;
|