@tempots/beatui 1.4.0 → 1.6.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-Wr6gMs-M.cjs +1 -0
- package/dist/{ar-C-kUt6f9.js → ar-fdUqbCvM.js} +154 -1
- package/dist/auth/index.cjs.js +1 -1
- package/dist/auth/index.es.js +1 -1
- package/dist/auth-divider-DewHpITQ.cjs +1 -0
- package/dist/{auth-divider-D_3gKZ6g.js → auth-divider-qnJuYK-x.js} +7 -7
- package/dist/beatui.css +2107 -171
- package/dist/beatui.tailwind.css +2107 -171
- package/dist/better-auth/index.cjs.js +1 -1
- package/dist/better-auth/index.es.js +5 -5
- package/dist/{modal-YKqlh4Dk.js → custom-validation-BetUqAEz.js} +186 -186
- package/dist/custom-validation-CLscGHY4.cjs +1 -0
- package/dist/{de-CP0kbElb.js → de-C5-k5Eov.js} +156 -3
- package/dist/de-DZqdSEta.cjs +1 -0
- package/dist/deep-merge-D90SW1Ci.cjs +1 -0
- package/dist/deep-merge-ZVigk5Qf.js +1765 -0
- package/dist/{duration-input-BrYLC1js.cjs → duration-input-4AQnQpyo.cjs} +1 -1
- package/dist/{duration-input-CFu6vq-y.js → duration-input-GMBmT1BE.js} +4 -4
- package/dist/{editor-toolbar-group-QVdBUbB8.cjs → editor-toolbar-group-C_ft_T8D.cjs} +1 -1
- package/dist/{editor-toolbar-group-DWUWUO-B.js → editor-toolbar-group-FpOHrmtx.js} +2 -2
- package/dist/es-CJgYfRap.cjs +1 -0
- package/dist/{es-BtIkcnsw.js → es-h6jmoF4X.js} +156 -3
- package/dist/fa-BQ5PzwNY.cjs +1 -0
- package/dist/{fa-11-rZmQ-.js → fa-BuxK837l.js} +154 -1
- package/dist/fr-Bv3TG44U.cjs +1 -0
- package/dist/{fr-C-L2F8w2.js → fr-BwILQ9G2.js} +165 -12
- package/dist/he-5LbvgMCC.cjs +1 -0
- package/dist/{he-Bu1xGoQ9.js → he-yC9Sc7JD.js} +154 -1
- package/dist/{hi-CewH-MAH.js → hi-Da7rcCpP.js} +154 -1
- package/dist/hi-YWhWcG_L.cjs +1 -0
- package/dist/{index-BGKz2Nol.js → index-DI8bf9oC.js} +175 -172
- package/dist/index-DeUj-5ph.cjs +1 -0
- package/dist/index.cjs.js +4 -4
- package/dist/index.es.js +11806 -8105
- package/dist/{input-container-CO3DNqpp.js → input-container-8JFB11xN.js} +1 -1
- package/dist/{input-container-BkPcNDaZ.cjs → input-container-CyOgiiQD.cjs} +1 -1
- package/dist/it-BxOIJE45.cjs +1 -0
- package/dist/{it-5hiKQO_p.js → it-Yeklau78.js} +156 -3
- package/dist/ja-CNhjK06P.cjs +1 -0
- package/dist/{ja-CGfEmZrm.js → ja-Dxj9Q5Yd.js} +155 -2
- package/dist/json-schema/index.cjs.js +1 -1
- package/dist/json-schema/index.es.js +110 -110
- 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 +5 -5
- package/dist/ko-DgkqcXTs.cjs +1 -0
- package/dist/{ko-DZthvREd.js → ko-gn_MsegK.js} +154 -1
- package/dist/lexical/index.cjs.js +1 -1
- package/dist/lexical/index.es.js +4 -4
- package/dist/nl-Dy9lmbBO.cjs +1 -0
- package/dist/{nl-CcKyHlQ7.js → nl-vHNFtXXb.js} +162 -9
- package/dist/{notice-Du3tWJTW.js → notice-B6ojfenv.js} +4 -4
- package/dist/{notice-Q0A1gIho.cjs → notice-p2IqXS5-.cjs} +1 -1
- package/dist/{oneof-branch-detection-DSzC0PkO.js → oneof-branch-detection-Q_jxvJIA.js} +1 -1
- package/dist/{oneof-branch-detection-BEkAezNi.cjs → oneof-branch-detection-xDDDdYRk.cjs} +1 -1
- package/dist/pl-BtYbtsmG.cjs +1 -0
- package/dist/{pl-Mwtjp4MV.js → pl-C0UdHla0.js} +184 -31
- package/dist/prosemirror/index.cjs.js +1 -1
- package/dist/prosemirror/index.es.js +4 -4
- package/dist/pt-CtNmqQ1X.cjs +1 -0
- package/dist/{pt-BaTsY-8f.js → pt-DGKtfN0d.js} +156 -3
- package/dist/ru-BaL_NPRU.cjs +1 -0
- package/dist/{ru-CvbGmz5s.js → ru-CpXYLt-v.js} +154 -1
- package/dist/tailwind/preset.cjs.js +1 -1
- package/dist/tailwind/preset.es.js +1 -1
- package/dist/tailwind/vite-plugin.cjs.js +1 -1
- package/dist/tailwind/vite-plugin.es.js +1 -1
- package/dist/{text-input-D_IxFd0M.cjs → text-input-DS5zlXb2.cjs} +1 -1
- package/dist/{text-input-BAn02BzO.js → text-input-NJypZSnE.js} +1 -1
- package/dist/{toolbar-CnecqhaU.cjs → toolbar-BBwfe8U9.cjs} +1 -1
- package/dist/{toolbar-BKan3NHw.js → toolbar-BF2L6WKC.js} +1 -1
- package/dist/{tr-YFqQdZjM.js → tr-DIFZDFW_.js} +156 -3
- package/dist/tr-DwOd87oB.cjs +1 -0
- package/dist/{translations-CxDUnbXn.js → translations-5cXBrENb.js} +1 -1
- package/dist/{translations-DT5QQ4WO.js → translations-BCMP-h52.js} +269 -115
- package/dist/{translations-C_-cObaF.cjs → translations-BqWc0ZHz.cjs} +1 -1
- package/dist/translations-EwEmHe3v.cjs +1 -0
- package/dist/types/beatui-i18n/default.d.ts +109 -0
- package/dist/types/beatui-i18n/locales/en.d.ts +109 -0
- package/dist/types/beatui-i18n/translations.d.ts +109 -0
- package/dist/types/components/button/copy-button.d.ts +42 -0
- package/dist/types/components/button/index.d.ts +1 -0
- package/dist/types/components/button/toggle-button-group.d.ts +2 -2
- package/dist/types/components/button/toggle-button.d.ts +2 -2
- package/dist/types/components/data/data-table-context.d.ts +9 -1
- package/dist/types/components/data/data-table-row-details.d.ts +21 -0
- package/dist/types/components/data/data-table-types.d.ts +23 -0
- package/dist/types/components/data/date-picker-shared.d.ts +2 -5
- package/dist/types/components/data/date-picker.d.ts +1 -1
- package/dist/types/components/data/date-range-picker.d.ts +1 -1
- package/dist/types/components/data/index.d.ts +4 -0
- package/dist/types/components/data/stat-card.d.ts +108 -0
- package/dist/types/components/data/time-picker.d.ts +54 -0
- package/dist/types/components/data/virtual-scrolling/index.d.ts +1 -0
- package/dist/types/components/data/virtual-scrolling/virtual-list.d.ts +91 -0
- package/dist/types/components/form/control/control.d.ts +5 -5
- package/dist/types/components/form/control/list-control.d.ts +11 -11
- package/dist/types/components/form/fieldset/fieldset.d.ts +60 -0
- package/dist/types/components/form/fieldset/index.d.ts +1 -0
- package/dist/types/components/form/index.d.ts +1 -0
- package/dist/types/components/form/input/checkbox-input.d.ts +1 -1
- package/dist/types/components/form/input/color-input.d.ts +1 -1
- package/dist/types/components/form/input/color-picker/canvas-draw.d.ts +12 -0
- package/dist/types/components/form/input/color-picker/channel-picker.d.ts +71 -0
- package/dist/types/components/form/input/color-picker/hex-color-picker.d.ts +20 -0
- package/dist/types/components/form/input/color-picker/hsl-color-picker.d.ts +14 -0
- package/dist/types/components/form/input/color-picker/hwb-color-picker.d.ts +15 -0
- package/dist/types/components/form/input/color-picker/index.d.ts +7 -0
- package/dist/types/components/form/input/color-picker/oklch-color-picker.d.ts +15 -0
- package/dist/types/components/form/input/color-picker/rgb-color-picker.d.ts +17 -0
- package/dist/types/components/form/input/color-swatch-input.d.ts +1 -1
- package/dist/types/components/form/input/combobox-input.d.ts +3 -3
- package/dist/types/components/form/input/combobox-tags-input.d.ts +1 -1
- package/dist/types/components/form/input/date-input.d.ts +1 -1
- package/dist/types/components/form/input/date-range-select-base.d.ts +23 -0
- package/dist/types/components/form/input/date-range-select.d.ts +64 -0
- package/dist/types/components/form/input/date-select.d.ts +52 -0
- package/dist/types/components/form/input/date-time-input.d.ts +2 -2
- package/dist/types/components/form/input/date-time-select-base.d.ts +23 -0
- package/dist/types/components/form/input/date-time-select.d.ts +66 -0
- package/dist/types/components/form/input/dropdown-input.d.ts +3 -3
- package/dist/types/components/form/input/email-input.d.ts +1 -1
- package/dist/types/components/form/input/field-layout.d.ts +64 -0
- package/dist/types/components/form/input/{input-wrapper.d.ts → field.d.ts} +23 -14
- package/dist/types/components/form/input/index.d.ts +19 -1
- package/dist/types/components/form/input/multi-select.d.ts +2 -2
- package/dist/types/components/form/input/native-select.d.ts +1 -1
- package/dist/types/components/form/input/nullable-date-select.d.ts +55 -0
- package/dist/types/components/form/input/nullable-date-time-select.d.ts +68 -0
- package/dist/types/components/form/input/nullable-time-select.d.ts +64 -0
- package/dist/types/components/form/input/number-input.d.ts +5 -40
- package/dist/types/components/form/input/number-stepper.d.ts +53 -0
- package/dist/types/components/form/input/open-date-range-select.d.ts +75 -0
- package/dist/types/components/form/input/otp-input.d.ts +2 -2
- package/dist/types/components/form/input/password-input.d.ts +1 -1
- package/dist/types/components/form/input/radio-group.d.ts +1 -1
- package/dist/types/components/form/input/range-slider.d.ts +23 -6
- package/dist/types/components/form/input/rating-input.d.ts +1 -1
- package/dist/types/components/form/input/segmented-input.d.ts +6 -2
- package/dist/types/components/form/input/segmented-select.d.ts +84 -0
- package/dist/types/components/form/input/select-tags-input.d.ts +1 -1
- package/dist/types/components/form/input/slider-input.d.ts +2 -2
- package/dist/types/components/form/input/sortable-list.d.ts +68 -0
- package/dist/types/components/form/input/switch.d.ts +1 -1
- package/dist/types/components/form/input/text-area.d.ts +1 -1
- package/dist/types/components/form/input/text-input.d.ts +1 -1
- package/dist/types/components/form/input/time-format.d.ts +31 -0
- package/dist/types/components/form/input/time-select-base.d.ts +23 -0
- package/dist/types/components/form/input/time-select.d.ts +61 -0
- package/dist/types/components/form/input/transfer-list.d.ts +56 -0
- package/dist/types/components/form/input/tri-state-checkbox-input.d.ts +1 -1
- package/dist/types/components/form/input/url-input.d.ts +1 -1
- package/dist/types/components/format/format-bigint.d.ts +64 -0
- package/dist/types/components/format/format-date-time.d.ts +54 -0
- package/dist/types/components/format/format-date.d.ts +82 -0
- package/dist/types/components/format/format-display-name.d.ts +70 -0
- package/dist/types/components/format/format-file-size.d.ts +30 -0
- package/dist/types/components/format/format-list.d.ts +61 -0
- package/dist/types/components/format/format-number.d.ts +88 -0
- package/dist/types/components/format/format-plural.d.ts +96 -0
- package/dist/types/components/format/format-relative-time.d.ts +62 -0
- package/dist/types/components/format/format-time.d.ts +66 -0
- package/dist/types/components/format/index.d.ts +11 -0
- package/dist/types/components/i18n/locale-selector.d.ts +1 -1
- package/dist/types/components/json-schema/controls/composition-shared.d.ts +1 -1
- package/dist/types/components/json-schema/controls/shared-utils.d.ts +3 -3
- package/dist/types/components/json-schema/widgets/string-controls.d.ts +2 -2
- package/dist/types/components/json-schema-display/display-wrapper.d.ts +1 -1
- package/dist/types/components/layout/nine-slice-scroll-view.d.ts +1 -1
- package/dist/types/components/navigation/index.d.ts +1 -0
- package/dist/types/components/navigation/stepper.d.ts +102 -0
- package/dist/types/components/overlay/index.d.ts +1 -1
- package/dist/types/components/overlay/spotlight.d.ts +62 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts +0 -1
- package/dist/ur-D9nLchps.cjs +1 -0
- package/dist/{ur-CdnwwnG_.js → ur-DBst-TXc.js} +154 -1
- package/dist/use-form-Dcra7GeE.cjs +2 -0
- package/dist/{use-form-D_TJyZhP.js → use-form-NfobsGNl.js} +474 -434
- package/dist/{vi-Bwvz1d_n.js → vi-DQOJp32U.js} +183 -30
- package/dist/vi-Dg1aiMr5.cjs +1 -0
- package/dist/widget-customization-BtkexHgm.js +1458 -0
- package/dist/widget-customization-pqmtsraC.cjs +1 -0
- package/dist/{zh-hy7Uw6c5.js → zh-DPK4HXl2.js} +154 -1
- package/dist/zh-tbwSTbmn.cjs +1 -0
- package/package.json +9 -9
- package/dist/ar-Dc56zcjW.cjs +0 -1
- package/dist/auth-divider-itm5-j5G.cjs +0 -1
- package/dist/de-DboQlEC4.cjs +0 -1
- package/dist/deep-merge-Bydz6jLt.cjs +0 -1
- package/dist/deep-merge-CzZVsVF-.js +0 -1704
- package/dist/es-CAmE_0Ph.cjs +0 -1
- package/dist/fa-D9LrFZdW.cjs +0 -1
- package/dist/fr-DKogQyss.cjs +0 -1
- package/dist/he-CVx91Jdr.cjs +0 -1
- package/dist/hi-BgrHV72l.cjs +0 -1
- package/dist/index-DFF7Uahh.cjs +0 -1
- package/dist/it-B1rA1F9l.cjs +0 -1
- package/dist/ja-DZnjjqoi.cjs +0 -1
- package/dist/ko-CDnYKYWU.cjs +0 -1
- package/dist/modal-DCxNGrzk.cjs +0 -1
- package/dist/nl-Bj8QnDEY.cjs +0 -1
- package/dist/pl-BmuuxxVd.cjs +0 -1
- package/dist/pt-RiC0yeVA.cjs +0 -1
- package/dist/ru-pRqtOQHF.cjs +0 -1
- package/dist/tr-B9JhBJeL.cjs +0 -1
- package/dist/translations-qefRsdGi.cjs +0 -1
- package/dist/types/components/overlay/command-palette.d.ts +0 -17
- package/dist/types/utils/color.d.ts +0 -346
- package/dist/ur-BZakU0iv.cjs +0 -1
- package/dist/use-form-BvBkVEKi.cjs +0 -2
- package/dist/vi-D1nly0nb.cjs +0 -1
- package/dist/widget-customization-BAchyOUo.js +0 -1066
- package/dist/widget-customization-DELy3SMQ.cjs +0 -1
- package/dist/zh-DBk7sSD9.cjs +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { TNode, Value } from '@tempots/dom';
|
|
2
|
+
/**
|
|
3
|
+
* CLDR plural category returned by `Intl.PluralRules`.
|
|
4
|
+
*/
|
|
5
|
+
export type PluralCategory = 'zero' | 'one' | 'two' | 'few' | 'many' | 'other';
|
|
6
|
+
/**
|
|
7
|
+
* Plural rule type: 'cardinal' for counting, 'ordinal' for ordering.
|
|
8
|
+
*/
|
|
9
|
+
export type PluralType = 'cardinal' | 'ordinal';
|
|
10
|
+
/**
|
|
11
|
+
* A mapping from plural category to the string to display.
|
|
12
|
+
* The `other` category is required as a fallback.
|
|
13
|
+
* Strings may contain `{count}` which is replaced with the locale-formatted number.
|
|
14
|
+
*/
|
|
15
|
+
export type PluralMessages = Partial<Record<PluralCategory, string>> & {
|
|
16
|
+
/** Required fallback for any unmatched category. */
|
|
17
|
+
other: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Options for the {@link FormatPlural} component.
|
|
21
|
+
*/
|
|
22
|
+
export interface FormatPluralOptions {
|
|
23
|
+
/** The numeric value to determine plural category for. @default 3 @min 0 @max 1000 @step 1 */
|
|
24
|
+
value: Value<number>;
|
|
25
|
+
/** Mapping from plural category to display string. Supports {count} interpolation. */
|
|
26
|
+
messages: PluralMessages;
|
|
27
|
+
/** BCP 47 locale override. If omitted, uses the Locale provider. @default undefined */
|
|
28
|
+
locale?: Value<string>;
|
|
29
|
+
/** Plural rule type. @default 'cardinal' */
|
|
30
|
+
type?: Value<PluralType>;
|
|
31
|
+
/** Minimum integer digits. @default undefined */
|
|
32
|
+
minimumIntegerDigits?: Value<number>;
|
|
33
|
+
/** Minimum fraction digits. @default undefined */
|
|
34
|
+
minimumFractionDigits?: Value<number>;
|
|
35
|
+
/** Maximum fraction digits. @default undefined */
|
|
36
|
+
maximumFractionDigits?: Value<number>;
|
|
37
|
+
/** Minimum significant digits. @default undefined */
|
|
38
|
+
minimumSignificantDigits?: Value<number>;
|
|
39
|
+
/** Maximum significant digits. @default undefined */
|
|
40
|
+
maximumSignificantDigits?: Value<number>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Resolves the CLDR plural category for a number.
|
|
44
|
+
*
|
|
45
|
+
* @param value - The number to categorize
|
|
46
|
+
* @param locale - BCP 47 locale string (uses browser default if omitted)
|
|
47
|
+
* @param options - Intl.PluralRules options
|
|
48
|
+
* @returns The plural category
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* resolvePluralCategory(1, 'en-US') // 'one'
|
|
53
|
+
* resolvePluralCategory(5, 'en-US') // 'other'
|
|
54
|
+
* resolvePluralCategory(3, 'en-US', { type: 'ordinal' }) // 'few'
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function resolvePluralCategory(value: number, locale?: string, options?: Intl.PluralRulesOptions): PluralCategory;
|
|
58
|
+
/**
|
|
59
|
+
* Selects a message based on the plural category of a number and replaces
|
|
60
|
+
* `{count}` with the locale-formatted number.
|
|
61
|
+
*
|
|
62
|
+
* @param value - The number to categorize
|
|
63
|
+
* @param messages - Plural messages mapping
|
|
64
|
+
* @param locale - BCP 47 locale string (uses browser default if omitted)
|
|
65
|
+
* @param options - Intl.PluralRules options
|
|
66
|
+
* @returns The selected and interpolated message string
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* formatPlural(1, { one: '{count} item', other: '{count} items' }, 'en-US') // '1 item'
|
|
71
|
+
* formatPlural(5, { one: '{count} item', other: '{count} items' }, 'en-US') // '5 items'
|
|
72
|
+
* formatPlural(1000, { one: '{count} item', other: '{count} items' }, 'de-DE') // '1.000 items'
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare function formatPlural(value: number, messages: PluralMessages, locale?: string, options?: Intl.PluralRulesOptions): string;
|
|
76
|
+
/**
|
|
77
|
+
* Locale-aware plural formatting component.
|
|
78
|
+
*
|
|
79
|
+
* Selects a message from a plural category map based on the value and renders
|
|
80
|
+
* it as a `<span>` that automatically updates when the locale or value changes.
|
|
81
|
+
* The `{count}` placeholder in messages is replaced with the locale-formatted number.
|
|
82
|
+
*
|
|
83
|
+
* @param options - Configuration for the plural format
|
|
84
|
+
* @returns A reactive `<span>` containing the selected plural message
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* FormatPlural({ value: 1, messages: { one: '{count} item', other: '{count} items' } })
|
|
89
|
+
* FormatPlural({
|
|
90
|
+
* value: 3,
|
|
91
|
+
* type: 'ordinal',
|
|
92
|
+
* messages: { one: '{count}st', two: '{count}nd', few: '{count}rd', other: '{count}th' },
|
|
93
|
+
* })
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function FormatPlural(options: FormatPluralOptions): TNode;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { TNode, Value } from '@tempots/dom';
|
|
2
|
+
/**
|
|
3
|
+
* Relative time unit for `Intl.RelativeTimeFormat`.
|
|
4
|
+
*/
|
|
5
|
+
export type RelativeTimeUnit = 'year' | 'quarter' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second';
|
|
6
|
+
/**
|
|
7
|
+
* Numeric display style: 'always' => "1 day ago", 'auto' => "yesterday".
|
|
8
|
+
*/
|
|
9
|
+
export type RelativeTimeNumeric = 'always' | 'auto';
|
|
10
|
+
/**
|
|
11
|
+
* Format verbosity for relative time.
|
|
12
|
+
*/
|
|
13
|
+
export type RelativeTimeStyle = 'long' | 'short' | 'narrow';
|
|
14
|
+
/**
|
|
15
|
+
* Options for the {@link FormatRelativeTime} component.
|
|
16
|
+
*/
|
|
17
|
+
export interface FormatRelativeTimeOptions {
|
|
18
|
+
/** Numeric offset (e.g., -2 for "2 days ago", 3 for "in 3 hours"). @default -2 @min -100 @max 100 @step 1 */
|
|
19
|
+
value: Value<number>;
|
|
20
|
+
/** The unit for the relative time. @default 'day' */
|
|
21
|
+
unit: Value<RelativeTimeUnit>;
|
|
22
|
+
/** BCP 47 locale override. If omitted, uses the Locale provider. @default undefined */
|
|
23
|
+
locale?: Value<string>;
|
|
24
|
+
/** Numeric display. @default 'auto' */
|
|
25
|
+
numeric?: Value<RelativeTimeNumeric>;
|
|
26
|
+
/** Format verbosity. @default 'long' */
|
|
27
|
+
style?: Value<RelativeTimeStyle>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Formats a relative time value with locale and Intl options.
|
|
31
|
+
*
|
|
32
|
+
* @param value - Numeric offset (negative = past, positive = future)
|
|
33
|
+
* @param unit - Time unit
|
|
34
|
+
* @param locale - BCP 47 locale string (uses browser default if omitted)
|
|
35
|
+
* @param options - Intl.RelativeTimeFormat options
|
|
36
|
+
* @returns The formatted relative time string
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* formatRelativeTime(-2, 'day', 'en-US') // '2 days ago'
|
|
41
|
+
* formatRelativeTime(-1, 'day', 'en-US', { numeric: 'auto' }) // 'yesterday'
|
|
42
|
+
* formatRelativeTime(3, 'hour', 'en-US') // 'in 3 hours'
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function formatRelativeTime(value: number, unit: RelativeTimeUnit, locale?: string, options?: Intl.RelativeTimeFormatOptions): string;
|
|
46
|
+
/**
|
|
47
|
+
* Locale-aware relative time formatting component.
|
|
48
|
+
*
|
|
49
|
+
* Renders a relative time expression (e.g., "2 days ago", "in 3 hours") as a
|
|
50
|
+
* `<span>` that automatically updates when the locale, value, or unit changes.
|
|
51
|
+
*
|
|
52
|
+
* @param options - Configuration for the relative time format
|
|
53
|
+
* @returns A reactive `<span>` containing the formatted relative time
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* FormatRelativeTime({ value: -2, unit: 'day' })
|
|
58
|
+
* FormatRelativeTime({ value: -1, unit: 'day', numeric: 'auto' })
|
|
59
|
+
* FormatRelativeTime({ value: 3, unit: 'hour', style: 'narrow' })
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function FormatRelativeTime(options: FormatRelativeTimeOptions): TNode;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { TNode, Value } from '@tempots/dom';
|
|
2
|
+
import type { DateValue } from './format-date';
|
|
3
|
+
/**
|
|
4
|
+
* Preset time format styles matching `Intl.DateTimeFormat` timeStyle.
|
|
5
|
+
*/
|
|
6
|
+
export type TimeFormatStyle = 'full' | 'long' | 'medium' | 'short';
|
|
7
|
+
/**
|
|
8
|
+
* Options for the {@link FormatTime} component.
|
|
9
|
+
*/
|
|
10
|
+
export interface FormatTimeOptions {
|
|
11
|
+
/** The date/time value to extract time from. @default '2026-03-17T14:30:00' */
|
|
12
|
+
value: Value<DateValue>;
|
|
13
|
+
/** BCP 47 locale override. If omitted, uses the Locale provider. @default undefined */
|
|
14
|
+
locale?: Value<string>;
|
|
15
|
+
/** Time format preset. @default 'medium' */
|
|
16
|
+
timeStyle?: Value<TimeFormatStyle>;
|
|
17
|
+
/** Time zone. @default undefined (browser default) */
|
|
18
|
+
timeZone?: Value<string>;
|
|
19
|
+
/** Whether to use 12-hour time. @default undefined (locale default) */
|
|
20
|
+
hour12?: Value<boolean>;
|
|
21
|
+
/** Hour cycle override. @default undefined */
|
|
22
|
+
hourCycle?: Value<'h11' | 'h12' | 'h23' | 'h24'>;
|
|
23
|
+
/** Hour representation (mutually exclusive with timeStyle). @default undefined */
|
|
24
|
+
hour?: Value<'numeric' | '2-digit'>;
|
|
25
|
+
/** Minute representation (mutually exclusive with timeStyle). @default undefined */
|
|
26
|
+
minute?: Value<'numeric' | '2-digit'>;
|
|
27
|
+
/** Second representation (mutually exclusive with timeStyle). @default undefined */
|
|
28
|
+
second?: Value<'numeric' | '2-digit'>;
|
|
29
|
+
/** Fractional second digits (0-3, mutually exclusive with timeStyle). @default undefined */
|
|
30
|
+
fractionalSecondDigits?: Value<0 | 1 | 2 | 3>;
|
|
31
|
+
/** Time zone name display style (mutually exclusive with timeStyle). @default undefined */
|
|
32
|
+
timeZoneName?: Value<'long' | 'short' | 'shortOffset' | 'longOffset' | 'shortGeneric' | 'longGeneric'>;
|
|
33
|
+
/** Day period display (mutually exclusive with timeStyle). @default undefined */
|
|
34
|
+
dayPeriod?: Value<'narrow' | 'short' | 'long'>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Formats a time value with locale and Intl options.
|
|
38
|
+
*
|
|
39
|
+
* @param value - The date/time value to extract time from
|
|
40
|
+
* @param locale - BCP 47 locale string (uses browser default if omitted)
|
|
41
|
+
* @param options - Intl.DateTimeFormat options
|
|
42
|
+
* @returns The formatted time string
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* formatTime(new Date(), 'en-US', { timeStyle: 'short' }) // '2:30 PM'
|
|
47
|
+
* formatTime(new Date(), 'de-DE', { timeStyle: 'short' }) // '14:30'
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatTime(value: DateValue, locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
|
51
|
+
/**
|
|
52
|
+
* Locale-aware time formatting component.
|
|
53
|
+
*
|
|
54
|
+
* Renders a formatted time as a `<span>` that automatically updates when
|
|
55
|
+
* the locale or value changes.
|
|
56
|
+
*
|
|
57
|
+
* @param options - Configuration for the time format
|
|
58
|
+
* @returns A reactive `<span>` containing the formatted time
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* FormatTime({ value: new Date(), timeStyle: 'short' })
|
|
63
|
+
* FormatTime({ value: plainTime, hour: 'numeric', minute: '2-digit', hour12: false })
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function FormatTime(options: FormatTimeOptions): TNode;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './format-number';
|
|
2
|
+
export * from './format-bigint';
|
|
3
|
+
export * from './format-date';
|
|
4
|
+
export * from './format-time';
|
|
5
|
+
export * from './format-date-time';
|
|
6
|
+
export * from './format-relative-time';
|
|
7
|
+
export * from './format-list';
|
|
8
|
+
export * from './format-display-name';
|
|
9
|
+
export * from './format-plural';
|
|
10
|
+
export { FormatFileSize } from './format-file-size';
|
|
11
|
+
export type { FormatFileSizeComponentOptions } from './format-file-size';
|
|
@@ -27,7 +27,7 @@ export type LocaleSelectorOptions = {
|
|
|
27
27
|
/**
|
|
28
28
|
* A dropdown component for selecting the application locale.
|
|
29
29
|
*
|
|
30
|
-
* Renders a native `<select>` element wrapped in
|
|
30
|
+
* Renders a native `<select>` element wrapped in a `Field` with a language icon.
|
|
31
31
|
* The component reads the current locale from the `Locale` provider and optionally updates it
|
|
32
32
|
* when the user makes a selection.
|
|
33
33
|
*
|
|
@@ -29,6 +29,6 @@ export interface WithSelectorLayoutParams {
|
|
|
29
29
|
/**
|
|
30
30
|
* Wrap inner control with selector and layout based on context.
|
|
31
31
|
* - At root: show selector + inner in a vertical Stack when showSelector is true
|
|
32
|
-
* - Non-root: wrap content in
|
|
32
|
+
* - Non-root: wrap content in Field and include selector when needed
|
|
33
33
|
*/
|
|
34
34
|
export declare function WithSelectorLayout({ ctx, showSelector, selector, inner, }: WithSelectorLayoutParams): Renderable;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { JSONSchema } from '../schema-context';
|
|
2
|
-
import type {
|
|
2
|
+
import type { FieldOptions, Controller } from '../../form';
|
|
3
3
|
import type { Renderable } from '@tempots/dom';
|
|
4
4
|
import type { ResolvedWidget } from '../widgets/utils';
|
|
5
5
|
/**
|
|
6
6
|
* Convert schema definition to input wrapper options
|
|
7
7
|
*/
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function definitionToFieldOptions({ ctx, }: {
|
|
9
9
|
ctx: import('../schema-context').SchemaContext;
|
|
10
|
-
}): Partial<
|
|
10
|
+
}): Partial<FieldOptions>;
|
|
11
11
|
/**
|
|
12
12
|
* Create placeholder value from schema definition
|
|
13
13
|
*/
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Controller,
|
|
1
|
+
import { Controller, FieldOptions } from '../../form';
|
|
2
2
|
import { SchemaContext } from '../schema-context';
|
|
3
3
|
import { Renderable } from '@tempots/dom';
|
|
4
4
|
export declare function StringControl({ ctx, options, controller, }: {
|
|
5
5
|
ctx: SchemaContext;
|
|
6
|
-
options: Partial<
|
|
6
|
+
options: Partial<FieldOptions>;
|
|
7
7
|
controller: Controller<string | undefined>;
|
|
8
8
|
}): Renderable;
|
|
@@ -5,7 +5,7 @@ import type { Mismatch } from './mismatch';
|
|
|
5
5
|
* Display wrapper component.
|
|
6
6
|
* Renders label (from ctx.widgetLabel), required indicator, deprecated badge,
|
|
7
7
|
* description, and mismatch indicators around content.
|
|
8
|
-
* Analog of
|
|
8
|
+
* Analog of Field + WithSchemaIssues for display mode.
|
|
9
9
|
*/
|
|
10
10
|
export declare function DisplayWrapper({ ctx, mismatches, children, }: {
|
|
11
11
|
ctx: SchemaContext;
|
|
@@ -123,4 +123,4 @@ export type NineSliceScrollViewOptions = {
|
|
|
123
123
|
* })
|
|
124
124
|
* ```
|
|
125
125
|
*/
|
|
126
|
-
export declare function NineSliceScrollView({ body, contentWidth, contentHeight, header, headerHeight, topStart, topEnd, footer, footerHeight, bottomStart, bottomEnd, sidebarStart, sidebarStartWidth, sidebarEnd, sidebarEndWidth, anchorMode, }: NineSliceScrollViewOptions): import("@tempots/dom").
|
|
126
|
+
export declare function NineSliceScrollView({ body, contentWidth, contentHeight, header, headerHeight, topStart, topEnd, footer, footerHeight, bottomStart, bottomEnd, sidebarStart, sidebarStartWidth, sidebarEnd, sidebarEndWidth, anchorMode, }: NineSliceScrollViewOptions): import("@tempots/core").Renderable<import("@tempots/dom").DOMContext, typeof import("@tempots/dom").DOM_RENDERABLE_TYPE>;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Signal, TNode, Value } from '@tempots/dom';
|
|
2
|
+
import { ControlSize } from '../theme';
|
|
3
|
+
import { ThemeColorName } from '../../tokens';
|
|
4
|
+
/** State of an individual step in a {@link Stepper}. */
|
|
5
|
+
export type StepState = 'completed' | 'active' | 'pending' | 'error';
|
|
6
|
+
/**
|
|
7
|
+
* Definition of a single step in a {@link Stepper}.
|
|
8
|
+
*/
|
|
9
|
+
export interface StepDefinition {
|
|
10
|
+
/** Display label for the step indicator. */
|
|
11
|
+
label: string;
|
|
12
|
+
/** Optional description shown below the label. */
|
|
13
|
+
description?: string;
|
|
14
|
+
/** Optional Iconify icon shown in the step circle. */
|
|
15
|
+
icon?: string;
|
|
16
|
+
/** Content rendered when this step is active. */
|
|
17
|
+
content?: () => TNode;
|
|
18
|
+
/**
|
|
19
|
+
* Async validation before advancing past this step.
|
|
20
|
+
* Return `true` to allow, `false` to block.
|
|
21
|
+
*/
|
|
22
|
+
beforeNext?: () => boolean | Promise<boolean>;
|
|
23
|
+
}
|
|
24
|
+
/** Configuration options for the {@link Stepper} component. */
|
|
25
|
+
export interface StepperOptions {
|
|
26
|
+
/** Array of step definitions. */
|
|
27
|
+
steps: StepDefinition[];
|
|
28
|
+
/** The active step index (0-based). */
|
|
29
|
+
value?: Value<number>;
|
|
30
|
+
/** Callback invoked when the active step changes. */
|
|
31
|
+
onChange?: (index: number) => void;
|
|
32
|
+
/** Layout orientation. @default 'horizontal' */
|
|
33
|
+
orientation?: Value<'horizontal' | 'vertical'>;
|
|
34
|
+
/** Visual variant. @default 'default' */
|
|
35
|
+
variant?: Value<'default' | 'compact'>;
|
|
36
|
+
/** Size of the stepper. @default 'md' */
|
|
37
|
+
size?: Value<ControlSize>;
|
|
38
|
+
/** Theme color for active/completed steps. @default 'primary' */
|
|
39
|
+
color?: Value<ThemeColorName>;
|
|
40
|
+
/** Whether the stepper is disabled. @default false */
|
|
41
|
+
disabled?: Value<boolean>;
|
|
42
|
+
/** Whether to show navigation buttons. @default true */
|
|
43
|
+
showNavigation?: Value<boolean>;
|
|
44
|
+
}
|
|
45
|
+
/** Programmatic controller for the stepper. */
|
|
46
|
+
export interface StepperController {
|
|
47
|
+
/** Jump to a specific step. Forward jumps validate intermediate beforeNext guards. */
|
|
48
|
+
goTo: (index: number) => Promise<boolean>;
|
|
49
|
+
/** Advance to the next step (respects beforeNext). Returns false if blocked. */
|
|
50
|
+
next: () => Promise<boolean>;
|
|
51
|
+
/** Go back to the previous step. */
|
|
52
|
+
prev: () => void;
|
|
53
|
+
/** Mark the stepper as complete (validates remaining beforeNext guards first). */
|
|
54
|
+
complete: () => Promise<boolean>;
|
|
55
|
+
/** Reactive signal for the current step index. */
|
|
56
|
+
currentStep: Signal<number>;
|
|
57
|
+
/** Set a step to error state. */
|
|
58
|
+
setError: (index: number) => void;
|
|
59
|
+
/** Clear error state on a step. */
|
|
60
|
+
clearError: (index: number) => void;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Creates a multi-step workflow indicator with content panels and
|
|
64
|
+
* returns a `[TNode, StepperController]` tuple for programmatic control.
|
|
65
|
+
*
|
|
66
|
+
* @param options - Configuration for the stepper
|
|
67
|
+
* @returns A tuple of `[renderable, controller]`
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* const [stepper, ctrl] = createStepper({
|
|
72
|
+
* steps: [
|
|
73
|
+
* { label: 'Account', content: () => html.div('Step 1 content') },
|
|
74
|
+
* { label: 'Profile', content: () => html.div('Step 2 content') },
|
|
75
|
+
* { label: 'Confirm', content: () => html.div('Step 3 content') },
|
|
76
|
+
* ],
|
|
77
|
+
* onChange: idx => console.log('Step', idx),
|
|
78
|
+
* })
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function createStepper(options: StepperOptions): [TNode, StepperController];
|
|
82
|
+
/**
|
|
83
|
+
* A multi-step workflow indicator with content panels and navigation buttons.
|
|
84
|
+
*
|
|
85
|
+
* Convenience wrapper around {@link createStepper} that returns only the TNode.
|
|
86
|
+
* Use `createStepper` when you need programmatic control via the controller.
|
|
87
|
+
*
|
|
88
|
+
* @param options - Configuration for the stepper
|
|
89
|
+
* @returns A stepper element
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts
|
|
93
|
+
* Stepper({
|
|
94
|
+
* steps: [
|
|
95
|
+
* { label: 'Account', content: () => html.div('Create your account') },
|
|
96
|
+
* { label: 'Profile', content: () => html.div('Set up your profile') },
|
|
97
|
+
* { label: 'Done', content: () => html.div('All set!') },
|
|
98
|
+
* ],
|
|
99
|
+
* })
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export declare function Stepper(options: StepperOptions): TNode;
|
|
@@ -6,7 +6,7 @@ export * from './popover';
|
|
|
6
6
|
export * from './ribbon';
|
|
7
7
|
export * from './lightbox';
|
|
8
8
|
export * from './announcement-bar';
|
|
9
|
-
export * from './command-palette';
|
|
10
9
|
export * from './block-command-palette';
|
|
11
10
|
export * from './dialogs';
|
|
12
11
|
export * from './onboarding-tour';
|
|
12
|
+
export * from './spotlight';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Renderable, Signal, TNode, Value } from '@tempots/dom';
|
|
2
|
+
export interface SpotlightItem {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
icon?: string;
|
|
7
|
+
shortcut?: string[];
|
|
8
|
+
section?: string;
|
|
9
|
+
/** Extra terms for fuzzy search */
|
|
10
|
+
keywords?: string[];
|
|
11
|
+
onSelect: () => void;
|
|
12
|
+
}
|
|
13
|
+
export interface SpotlightOptions {
|
|
14
|
+
items: Value<SpotlightItem[]>;
|
|
15
|
+
onSelect?: (item: SpotlightItem) => void;
|
|
16
|
+
/** @default 'Search' */
|
|
17
|
+
placeholder?: Value<string>;
|
|
18
|
+
/** @default 'No results' */
|
|
19
|
+
emptyMessage?: Value<string>;
|
|
20
|
+
/** @default 'md' */
|
|
21
|
+
size?: Value<'sm' | 'md' | 'lg'>;
|
|
22
|
+
recentItems?: Value<SpotlightItem[]>;
|
|
23
|
+
/** @default 'mod+k' */
|
|
24
|
+
hotkey?: string;
|
|
25
|
+
/** @default 'body' */
|
|
26
|
+
container?: 'body' | 'element';
|
|
27
|
+
/** Overlay backdrop effect. @default 'opaque' */
|
|
28
|
+
overlayEffect?: 'opaque' | 'transparent';
|
|
29
|
+
}
|
|
30
|
+
export interface SpotlightController {
|
|
31
|
+
open: (items?: SpotlightItem[]) => void;
|
|
32
|
+
close: () => void;
|
|
33
|
+
isOpen: Signal<boolean>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A unified search/command palette with fuzzy search, section grouping,
|
|
37
|
+
* recent items, and a global hotkey (default: Mod+K).
|
|
38
|
+
*
|
|
39
|
+
* Returns a tuple of the rendered TNode and a controller for programmatic
|
|
40
|
+
* open/close and access to the open state signal.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const [node, controller] = createSpotlight(
|
|
45
|
+
* { items: myItems },
|
|
46
|
+
* ctrl => Button({ onClick: ctrl.open }, 'Open Spotlight')
|
|
47
|
+
* )
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function createSpotlight(options: SpotlightOptions, children: (controller: SpotlightController) => TNode): [TNode, SpotlightController];
|
|
51
|
+
/**
|
|
52
|
+
* Convenience Renderable wrapper around `createSpotlight`.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* Spotlight(
|
|
57
|
+
* { items: myItems },
|
|
58
|
+
* ctrl => Button({ onClick: ctrl.open }, 'Open')
|
|
59
|
+
* )
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function Spotlight(options: SpotlightOptions, children: (controller: SpotlightController) => TNode): Renderable;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export * from './components/beatui';
|
|
|
18
18
|
export * from './components/button';
|
|
19
19
|
export * from './components/content';
|
|
20
20
|
export * from './components/data';
|
|
21
|
+
export * from './components/format';
|
|
21
22
|
export * from './components/form';
|
|
22
23
|
export * from './components/i18n';
|
|
23
24
|
export * from './components/layout';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./translations-EwEmHe3v.cjs"),r={loadingExtended:"لوڈ ہو رہا ہے، براہ کرم انتظار کریں",loadingShort:"لوڈ ہو رہا ہے...",locale:"زبان",iconDescription:"آئیکن",loadingIcon:"لوڈنگ آئیکن",failedToLoadIcon:"آئیکن لوڈ کرنے میں ناکام",editLabel:"ترمیم",selectOne:"ایک منتخب کریں",selectNone:"کوئی نہیں",selectMany:"متعدد منتخب کریں",noResults:"کوئی نتیجہ نہیں",passwordPlaceholderText:"خفیہ پاس ورڈ",togglePasswordVisibility:"پاس ورڈ کی مرئیت تبدیل کریں",toggleMenu:"مینو ٹوگل کریں",toggleAside:"سائیڈ پینل ٹوگل کریں",mainNavigation:"بنیادی نیویگیشن",sidebar:"سائیڈ بار",closeDrawer:"دراز بند کریں",closeModal:"ماڈل بند کریں",confirm:"تصدیق",cancel:"منسوخ",addLabel:"شامل کریں",removeItem:"آئٹم ہٹائیں",currentLocale:"اردو",ar:"عربی",de:"جرمن",en:"انگریزی",es:"ہسپانوی",fr:"فرانسیسی",he:"عبرانی",hi:"ہندی",it:"اطالوی",ja:"جاپانی",ko:"کوریائی",nl:"ڈچ",pl:"پولش",pt:"پرتگالی",ru:"روسی",tr:"ترکی",vi:"ویتنامی",zh:"چینی",fa:"فارسی",ur:"اردو",emailPlaceholderText:"اپنا ای میل داخل کریں",incrementValue:"قدر اضافہ کریں",decrementValue:"قدر کم کریں",dropZoneInstructions:e=>e?"منتخب کرنے کے لیے کلک کریں یا فائلیں یہاں گھسیٹیں، یا فائل منتخب کرنے کے لیے Enter یا Space دبائیں":"فائلیں یہاں گھسیٹیں",fileSizeUnits:["بائٹس","KB","MB","GB","TB"],removeFile:"فائل حذف کریں",clearAllFiles:"تمام فائلیں صاف کریں",clearValue:"قدر صاف کریں",dateRangeStart:"Start",dateRangeEnd:"End",dateRangeNoLimit:"No limit",dateRangeSelectDate:"Select date",unknownType:"نامعلوم قسم",filesInputInstructions:(e,t,l)=>{let o=e==null||e>1?"منتخب کرنے کے لیے کلک کریں یا فائلیں یہاں گھسیٹیں":"منتخب کرنے کے لیے کلک کریں یا فائل یہاں گھسیٹیں";if(e||t){const n=[];if(e!=null&&e>1&&n.push(`زیادہ سے زیادہ ${e} فائلیں`),t&&l){const a=i.formatFileSize(t,{units:l});n.push(`ہر ایک زیادہ سے زیادہ ${a}`)}n.length>0&&(o+=` (${n.join("، ")})`)}return o},paginationLabel:"صفحہ بندی",paginationRange:(e,t,l,o)=>o>l?`قطاریں ${e} سے ${t} تک، ${l} میں سے ${o} میں سے`:`قطاریں ${e} سے ${t} تک، ${l} میں سے`,firstPage:"پہلا صفحہ",previousPage:"پچھلا صفحہ",nextPage:"اگلا صفحہ",lastPage:"آخری صفحہ",breadcrumbs:"بریڈ کرمبز",commandPalette:"کمانڈ پیلیٹ",typeACommand:"کمانڈ ٹائپ کریں...",noResultsFound:"کوئی نتیجہ نہیں ملا",noMatchingCommands:"کوئی مماثل کمانڈ نہیں ملی",appearanceSystem:"سسٹم",appearanceLight:"ہلکا",appearanceDark:"گہرا",ok:"OK",changeTypeConfirmation:"قسم تبدیل کرنے سے موجودہ قدر صاف ہو جائے گی۔ جاری رکھیں؟",notifications:"اطلاعات",markAllAsRead:"سب کو پڑھا ہوا نشان زد کریں",noNotifications:"کوئی اطلاع نہیں",schemaConflictsDetected:"اسکیما تنازعات کا پتا چلا",schemaViolationsDetected:"اسکیما خلاف ورزیوں کا پتا چلا",properties:"خصوصیات",uploading:"اپ لوڈ ہو رہا ہے...",dropFilesOrBrowse:"فائلیں یہاں چھوڑیں یا براؤز کرنے کے لیے کلک کریں",acceptedTypes:e=>`قابل قبول اقسام: ${e}`,enterUrlPrompt:"URL درج کریں:",exceeded:"(حد سے تجاوز)",pdfPreview:"PDF پیش نظارہ",lexical:{fontFamily:"فونٹ فیملی",fontSize:"فونٹ سائز",lineHeight:"لائن کی اونچائی",fontColor:"فونٹ رنگ",highlightColor:"ہائی لائٹ رنگ",backgroundColor:"پس منظر رنگ",bold:"بولڈ",italic:"ترچھا",underline:"خط کشیدہ",strikethrough:"کٹا ہوا",code:"کوڈ",clearFormatting:"فارمیٹنگ صاف کریں",normal:"عام",heading:e=>`سرخی ${e}`,bulletList:"بلٹ فہرست",orderedList:"نمبر شدہ فہرست",checkList:"چیک فہرست",indent:"اندر کریں",outdent:"باہر کریں",blockquote:"اقتباس",codeBlock:"کوڈ بلاک",horizontalRule:"افقی لکیر",insertTable:"ٹیبل داخل کریں",link:"لنک",undo:"واپس",redo:"دوبارہ",cut:"کاٹیں",copy:"نقل",paste:"چسپاں",defaultOption:"پہلے سے طے شدہ",slashCommands:"سلیش کمانڈز",noCommandsFound:"کوئی کمانڈ نہیں ملی",changeBlockType:"بلاک کی قسم تبدیل کریں",blockTypes:"بلاک کی اقسام",enterUrl:"URL درج کریں:",tableActions:"Table actions",insertRowAbove:"Insert row above",insertRowBelow:"Insert row below",insertColumnLeft:"Insert column left",insertColumnRight:"Insert column right",deleteRow:"Delete row",deleteColumn:"Delete column",deleteTable:"Delete table"},dataTable:{sortAscending:"صعودی ترتیب",sortDescending:"نزولی ترتیب",clearSort:"ترتیب صاف کریں",filterPlaceholder:"فلٹر...",clearFilter:"فلٹر صاف کریں",selectAll:"سب منتخب کریں",deselectAll:"سب غیر منتخب کریں",selectedCount:e=>`${e} منتخب`,resetAll:"سب ری سیٹ کریں",noResults:"کوئی نتائج نہیں ملے",loading:"لوڈ ہو رہا ہے...",filterPanelAddCondition:"شرط شامل کریں",filterPanelApply:"لاگو کریں",filterPanelClear:"فلٹرز صاف کریں",filterPanelAnd:"اور",filterPanelOr:"یا",filterPanelContains:"شامل ہے",filterPanelNotContains:"شامل نہیں ہے",filterPanelEquals:"برابر ہے",filterPanelNotEquals:"برابر نہیں ہے",filterPanelStartsWith:"سے شروع ہوتا ہے",filterPanelEndsWith:"پر ختم ہوتا ہے",filterPanelIsNull:"خالی ہے",filterPanelIsNotNull:"خالی نہیں ہے",filterPanelGt:"سے بڑا",filterPanelGte:"سے بڑا یا برابر",filterPanelLt:"سے چھوٹا",filterPanelLte:"سے چھوٹا یا برابر",filterPanelBetween:"کے درمیان",filterPanelValuePlaceholder:"قدر...",sortMultiHint:"متعدد کالموں کو ترتیب دینے کے لیے Shift دبائیں",columnVisibility:"کالم",showAllColumns:"سب دکھائیں",menuSortAsc:"صعودی ترتیب",menuSortDesc:"نزولی ترتیب",menuClearSort:"ترتیب ہٹائیں",menuHideColumn:"کالم چھپائیں",menuChooseColumns:"کالم منتخب کریں",menuResetColumns:"کالم ری سیٹ کریں",menuFilter:"فلٹر",rowCount:(e,t)=>`قطاریں: ${e} کل قطاریں: ${t}`,filterTagsPlaceholder:"قدریں منتخب کریں...",groupCount:e=>`${e} آئٹم`,collapseGroup:"گروپ سکیڑیں",expandGroup:"گروپ پھیلائیں",describeFilter:{textContains:(e,t)=>`${e} "${t}" پر مشتمل`,textNotContains:(e,t)=>`${e} "${t}" پر مشتمل نہیں`,textEquals:(e,t)=>`${e} "${t}" کے برابر`,textNotEquals:(e,t)=>`${e} "${t}" کے برابر نہیں`,textStartsWith:(e,t)=>`${e} "${t}" سے شروع ہوتا ہے`,textEndsWith:(e,t)=>`${e} "${t}" پر ختم ہوتا ہے`,compareEq:(e,t)=>`${e} = ${t}`,compareNeq:(e,t)=>`${e} ≠ ${t}`,compareGt:(e,t)=>`${e} > ${t}`,compareGte:(e,t)=>`${e} ≥ ${t}`,compareLt:(e,t)=>`${e} < ${t}`,compareLte:(e,t)=>`${e} ≤ ${t}`,rangeBetween:(e,t,l)=>`${e} ${t} اور ${l} کے درمیان`,rangeGte:(e,t)=>`${e} ≥ ${t}`,rangeLte:(e,t)=>`${e} ≤ ${t}`,setIn:(e,t)=>`${e} [${t}] میں`,setNotIn:(e,t)=>`${e} [${t}] میں نہیں`,booleanIs:(e,t)=>`${e} ${t} ہے`,isNull:e=>`${e} خالی ہے`,isNotNull:e=>`${e} خالی نہیں ہے`,compositeAnd:e=>e.join(" اور "),compositeOr:e=>e.join(" یا ")}},prosemirror:{bold:"Bold",italic:"Italic",code:"Code",link:"Link",removeLink:"Remove Link",heading:e=>`Heading ${e}`,bulletList:"Bullet List",orderedList:"Ordered List",blockquote:"Blockquote",codeBlock:"Code Block",horizontalRule:"Horizontal Rule",linkUrlPlaceholder:"https://example.com"},carousel:{label:"کیروسیل",previousSlide:"پچھلی سلائیڈ",nextSlide:"اگلی سلائیڈ",slideNavigation:"سلائیڈ نیویگیشن",slideOfTotal:(e,t)=>`سلائیڈ ${e} از ${t}`,goToSlide:e=>`سلائیڈ ${e} پر جائیں`},datePicker:{label:"تاریخ منتخب کریں",previousYear:"پچھلا سال",previousMonth:"پچھلا مہینہ",selectMonth:"مہینہ منتخب کریں",selectYear:"سال منتخب کریں",nextMonth:"اگلا مہینہ",nextYear:"اگلا سال",previousYears:e=>`پچھلے ${e} سال`,nextYears:e=>`اگلے ${e} سال`,dateRangePickerLabel:"تاریخ کی حد منتخب کریں",monthNames:["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],shortMonthNames:["جنو","فرو","مار","اپر","مئی","جون","جول","اگس","ستم","اکت","نوم","دسم"],dayNames:["اتو","پیر","منگ","بدھ","جمع","جمعہ","ہفت"]},timePicker:{label:"وقت منتخب کنندہ",hoursLabel:"HH",minutesLabel:"MM",secondsLabel:"SS",selectHours:"گھنٹے منتخب کریں",selectMinutes:"منٹ منتخب کریں",selectSeconds:"سیکنڈ منتخب کریں",selectPeriod:"AM/PM منتخب کریں",nowLabel:"ابھی"},timeSelectTime:"وقت منتخب کریں",dateTimeSelectDateTime:"تاریخ اور وقت منتخب کریں",colorPicker:{hue:"رنگت",saturation:"سنترپشن",lightness:"چمک",alpha:"الفا",red:"سرخ",green:"سبز",blue:"نیلا",hex:"Hex",whiteness:"سفیدی",blackness:"سیاہی",chroma:"کروما"},spotlight:{placeholder:"تلاش کریں...",noResults:"کوئی نتائج نہیں ملے",recentItems:"حالیہ",close:"بند کریں"},virtualList:{listLabel:"سکرول کے قابل فہرست"},stepper:{step:"مرحلہ",stepOfTotal:(e,t)=>`مرحلہ ${e} از ${t}`,completed:"مکمل",next:"اگلا",previous:"پچھلا",complete:"مکمل کریں"},sortableList:{dragHandle:"ترتیب بدلنے کے لیے گھسیٹیں"},transferList:{available:"دستیاب",selected:"منتخب",moveRight:"منتخب میں منتقل کریں",moveLeft:"دستیاب میں منتقل کریں",moveAllRight:"سب منتخب میں منتقل کریں",moveAllLeft:"سب دستیاب میں منتقل کریں",searchAvailable:"دستیاب آئٹمز تلاش کریں…",searchSelected:"منتخب آئٹمز تلاش کریں…"},copyButton:{copied:"کاپی ہو گیا!",copyToClipboard:"کلپ بورڈ پر کاپی کریں"},numberStepper:{increment:"بڑھائیں",decrement:"گھٹائیں",value:"قدر"},statCard:{trendUp:"بڑھتا رجحان",trendDown:"گرتا رجحان",trendFlat:"کوئی تبدیلی نہیں"},otpInputLabel:"ایک بار کا پاس ورڈ درج کریں",otpDigitLabel:(e,t)=>`ہندسہ ${e} از ${t}`,scrollableGridView:"سکرول ایبل گرڈ ویو",onboardingTour:{label:"رہنمائی ٹور",stepIndicator:(e,t)=>`مرحلہ ${e} از ${t}`,skip:"چھوڑیں",previous:"پچھلا",next:"اگلا",finish:"مکمل"},searchPlaceholder:"تلاش کریں",pdfPageViewer:{loading:"Loading PDF...",loadFailed:"Failed to load PDF",invalidPdf:"Invalid PDF file",pageOutOfRange:(e,t)=>`Page ${e} is out of range (1-${t})`,renderFailed:"Failed to render PDF page"}};exports.default=r;
|