@synopackageland/ui 0.4.2 → 0.5.4

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.
Files changed (143) hide show
  1. package/README.md +21 -0
  2. package/dist/components/advanced-panel/AdvancePanelColumns.vue.d.ts +19 -0
  3. package/dist/components/advanced-panel/AdvancePanelForm.vue.d.ts +21 -0
  4. package/dist/components/advanced-panel/AdvancePanelGrid.vue.d.ts +44 -0
  5. package/dist/components/advanced-panel/types.d.ts +50 -0
  6. package/dist/components/app/app-action-bar/AppActionBar.vue.d.ts +13 -3
  7. package/dist/components/app/app-layout/AppLayout.vue.d.ts +1 -1
  8. package/dist/components/app/app-sidebar/AppSidebar.vue.d.ts +12 -13
  9. package/dist/components/app/app-sidebar/AppSidebarItems.vue.d.ts +17 -0
  10. package/dist/components/app/app-sidebar/types.d.ts +16 -0
  11. package/dist/components/app/section-tabs/SectionTabs.vue.d.ts +11 -1
  12. package/dist/components/composite/about-dialog/AboutDialog.vue.d.ts +78 -0
  13. package/dist/components/composite/about-dialog/types.d.ts +6 -0
  14. package/dist/components/composite/callout/Callout.vue.d.ts +12 -2
  15. package/dist/components/composite/config-provider/ConfigProvider.vue.d.ts +19 -0
  16. package/dist/components/composite/copy-cut-field/CopyCutField.vue.d.ts +44 -0
  17. package/dist/components/composite/data-grid/DataGrid.vue.d.ts +150 -25
  18. package/dist/components/composite/data-grid/labels.d.ts +15 -1
  19. package/dist/components/composite/data-view/DataView.vue.d.ts +54 -0
  20. package/dist/components/composite/footbar/Footbar.vue.d.ts +13 -0
  21. package/dist/components/composite/footbar/FootbarButtons.vue.d.ts +13 -0
  22. package/dist/components/composite/footbar/types.d.ts +32 -0
  23. package/dist/components/composite/form/Form.vue.d.ts +49 -0
  24. package/dist/components/composite/form/FormItem.vue.d.ts +132 -0
  25. package/dist/components/composite/form/context.d.ts +61 -0
  26. package/dist/components/composite/form/rules.d.ts +17 -0
  27. package/dist/components/composite/form/types.d.ts +50 -0
  28. package/dist/components/composite/message-box/MessageBox.vue.d.ts +34 -0
  29. package/dist/components/composite/message-box/MessageBoxProvider.vue.d.ts +13 -0
  30. package/dist/components/composite/message-box/controller.d.ts +20 -0
  31. package/dist/components/composite/message-box/types.d.ts +97 -0
  32. package/dist/components/composite/overflow-list/OverflowList.vue.d.ts +40 -0
  33. package/dist/components/composite/overflow-list/OverflowListItem.vue.d.ts +18 -0
  34. package/dist/components/composite/overflow-toolbar/OverflowToolbar.vue.d.ts +46 -0
  35. package/dist/components/composite/overflow-toolbar/overflow.d.ts +25 -0
  36. package/dist/components/composite/overflow-toolbar/types.d.ts +27 -0
  37. package/dist/components/composite/settings-section/SettingsSection.vue.d.ts +18 -3
  38. package/dist/components/composite/tree-view/TreeView.vue.d.ts +64 -12
  39. package/dist/components/composite/tree-view/treeUtils.d.ts +15 -0
  40. package/dist/components/composite/tree-view/types.d.ts +38 -0
  41. package/dist/components/composite/virtual-list/VirtualList.vue.d.ts +44 -0
  42. package/dist/components/composite/wizard/Wizard.vue.d.ts +68 -0
  43. package/dist/components/composite/wizard/WizardStep.vue.d.ts +20 -0
  44. package/dist/components/composite/wizard/types.d.ts +32 -0
  45. package/dist/components/composite/wizard/wizardContext.d.ts +17 -0
  46. package/dist/components/containers/card/Card.vue.d.ts +42 -0
  47. package/dist/components/containers/expandable-item/ExpandableItem.vue.d.ts +79 -0
  48. package/dist/components/containers/fieldset/Fieldset.vue.d.ts +58 -0
  49. package/dist/components/containers/highlight-box/HighlightBox.vue.d.ts +23 -0
  50. package/dist/components/containers/panel/Panel.vue.d.ts +59 -0
  51. package/dist/components/feedback/info-mask/InfoMask.vue.d.ts +22 -0
  52. package/dist/components/feedback/info-tip/InfoTip.vue.d.ts +53 -0
  53. package/dist/components/feedback/notification/Notification.vue.d.ts +50 -0
  54. package/dist/components/feedback/notification/NotificationProvider.vue.d.ts +36 -0
  55. package/dist/components/feedback/notification/notification.d.ts +45 -0
  56. package/dist/components/feedback/validation-popup/ValidationPopup.vue.d.ts +41 -0
  57. package/dist/components/primitives/affix/Affix.vue.d.ts +40 -0
  58. package/dist/components/primitives/affix/affixPosition.d.ts +35 -0
  59. package/dist/components/primitives/breadcrumb/Breadcrumb.vue.d.ts +38 -0
  60. package/dist/components/primitives/breadcrumb/BreadcrumbCrumb.vue.d.ts +13 -0
  61. package/dist/components/primitives/breadcrumb/collapse.d.ts +25 -0
  62. package/dist/components/primitives/breadcrumb/types.d.ts +14 -0
  63. package/dist/components/primitives/color-picker/ColorPicker.vue.d.ts +70 -0
  64. package/dist/components/primitives/color-picker/palette.d.ts +2 -0
  65. package/dist/components/primitives/combobox/Combobox.vue.d.ts +33 -0
  66. package/dist/components/primitives/date-picker/DatePicker.vue.d.ts +39 -1
  67. package/dist/components/primitives/date-picker/dateTime.d.ts +44 -0
  68. package/dist/components/primitives/dialog/Dialog.vue.d.ts +6 -3
  69. package/dist/components/primitives/dropdown-menu/DropdownMenu.vue.d.ts +18 -13
  70. package/dist/components/primitives/dropdown-menu/DropdownMenuItems.vue.d.ts +20 -0
  71. package/dist/components/primitives/dropdown-menu/types.d.ts +38 -0
  72. package/dist/components/primitives/ghost/Ghost.vue.d.ts +30 -0
  73. package/dist/components/primitives/icon/Icon.vue.d.ts +40 -0
  74. package/dist/components/primitives/icon/icon.d.ts +19 -0
  75. package/dist/components/primitives/icon/iconRegistry.d.ts +9 -0
  76. package/dist/components/primitives/icon/useIconButton.d.ts +30 -0
  77. package/dist/components/primitives/input/Input.vue.d.ts +6 -0
  78. package/dist/components/primitives/input/Textarea.vue.d.ts +6 -0
  79. package/dist/components/primitives/input-steppers/InputSteppers.vue.d.ts +60 -0
  80. package/dist/components/primitives/layout/Col.vue.d.ts +24 -0
  81. package/dist/components/primitives/layout/Grid.vue.d.ts +35 -0
  82. package/dist/components/primitives/layout/Row.vue.d.ts +23 -0
  83. package/dist/components/primitives/layout/breakpoints.d.ts +24 -0
  84. package/dist/components/primitives/layout/context.d.ts +22 -0
  85. package/dist/components/primitives/layout/gap.d.ts +12 -0
  86. package/dist/components/primitives/multiple-select/MultipleSelect.vue.d.ts +32 -0
  87. package/dist/components/primitives/pagination/Pagination.vue.d.ts +111 -0
  88. package/dist/components/primitives/pagination/labels.d.ts +18 -0
  89. package/dist/components/primitives/pagination/model.d.ts +13 -0
  90. package/dist/components/primitives/progress/Progress.vue.d.ts +2 -0
  91. package/dist/components/primitives/rich-text/RichText.vue.d.ts +57 -0
  92. package/dist/components/primitives/rich-text/parseRichText.d.ts +31 -0
  93. package/dist/components/primitives/schedule-table/ScheduleTable.vue.d.ts +65 -0
  94. package/dist/components/primitives/schedule-table/schedule.d.ts +55 -0
  95. package/dist/components/primitives/scrollbar/Scrollbar.vue.d.ts +110 -0
  96. package/dist/components/primitives/scrollbar/types.d.ts +10 -0
  97. package/dist/components/primitives/segment-control/SegmentControl.vue.d.ts +32 -0
  98. package/dist/components/primitives/segment-control/SegmentItem.vue.d.ts +32 -0
  99. package/dist/components/primitives/segment-control/context.d.ts +19 -0
  100. package/dist/components/primitives/select/Select.vue.d.ts +15 -1
  101. package/dist/components/primitives/select/internal/ComboboxField.vue.d.ts +46 -0
  102. package/dist/components/primitives/select/internal/SelectTag.vue.d.ts +15 -0
  103. package/dist/components/primitives/select/internal/options.d.ts +17 -0
  104. package/dist/components/primitives/select/internal/types.d.ts +43 -0
  105. package/dist/components/primitives/select/internal/useSelectSearch.d.ts +20 -0
  106. package/dist/components/primitives/sheet/Sheet.vue.d.ts +3 -3
  107. package/dist/components/primitives/skeleton/Skeleton.vue.d.ts +1 -1
  108. package/dist/components/primitives/slider/Slider.vue.d.ts +56 -0
  109. package/dist/components/primitives/space/Space.vue.d.ts +27 -0
  110. package/dist/components/primitives/space/space.d.ts +10 -0
  111. package/dist/components/primitives/superbox-select/SuperboxSelect.vue.d.ts +33 -0
  112. package/dist/components/primitives/tag/Tag.vue.d.ts +59 -0
  113. package/dist/components/primitives/toggle-button/ToggleButton.vue.d.ts +43 -0
  114. package/dist/components/primitives/toggle-button/ToggleButtonGroup.vue.d.ts +38 -0
  115. package/dist/components/primitives/toggle-button/toggleButton.d.ts +9 -0
  116. package/dist/components/primitives/tooltip/Tooltip.vue.d.ts +3 -0
  117. package/dist/components/primitives/typography/TypoA.vue.d.ts +13 -0
  118. package/dist/components/primitives/typography/TypoBlockquote.vue.d.ts +13 -0
  119. package/dist/components/primitives/typography/TypoCode.vue.d.ts +13 -0
  120. package/dist/components/primitives/typography/TypoDivider.vue.d.ts +3 -0
  121. package/dist/components/primitives/typography/TypoHeader.vue.d.ts +32 -0
  122. package/dist/components/primitives/typography/TypoHr.vue.d.ts +3 -0
  123. package/dist/components/primitives/typography/TypoLi.vue.d.ts +13 -0
  124. package/dist/components/primitives/typography/TypoList.vue.d.ts +13 -0
  125. package/dist/components/primitives/typography/TypoP.vue.d.ts +13 -0
  126. package/dist/components/primitives/typography/TypoTable.vue.d.ts +13 -0
  127. package/dist/components/primitives/typography/TypoText.vue.d.ts +26 -0
  128. package/dist/components/primitives/typography/TypoTip.vue.d.ts +21 -0
  129. package/dist/components/primitives/typography/typography.d.ts +12 -0
  130. package/dist/composables/configCascade.d.ts +42 -0
  131. package/dist/composables/tabIndicator.d.ts +18 -0
  132. package/dist/index.d.ts +122 -2
  133. package/dist/index.js +22765 -10938
  134. package/dist/lib/controllable.d.ts +19 -0
  135. package/dist/lib/numberField.d.ts +24 -0
  136. package/dist/lib/overflow.d.ts +13 -0
  137. package/dist/reka-runtime.json +5 -3
  138. package/dist/theme.css +1 -1
  139. package/dist/themes/dsm7-embedded-theme.css +1 -1
  140. package/dist/themes/dsm7-embedded.css +1 -1
  141. package/dist/themes/dsm7.css +1 -1
  142. package/docs/app-local-modal.md +9 -1
  143. package/package.json +1 -1
@@ -0,0 +1,30 @@
1
+ import { MaybeRefOrGetter } from 'vue';
2
+ export interface IconButtonOptions {
3
+ /** Accessible name. Required unless `ariaLabelledby` is given. */
4
+ ariaLabel?: MaybeRefOrGetter<string | undefined>;
5
+ /** Accessible name from an existing element. */
6
+ ariaLabelledby?: MaybeRefOrGetter<string | undefined>;
7
+ disabled?: MaybeRefOrGetter<boolean>;
8
+ onClick?: (event: MouseEvent | KeyboardEvent) => void;
9
+ }
10
+ /**
11
+ * Turns a bare icon into the minimum a button has to be when a design rule
12
+ * forbids `<button>` (dense row actions, input suffixes): role, accessible
13
+ * name, tab stop, `aria-disabled`, and Enter/Space activation going through the
14
+ * same handler as the mouse. It is not a native button: form submission,
15
+ * label association and browser-level event blocking are not provided.
16
+ */
17
+ export declare function useIconButton(options: IconButtonOptions): {
18
+ el: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
19
+ attrs: import('vue').ComputedRef<{
20
+ role: string;
21
+ tabindex: number;
22
+ 'aria-disabled': boolean | undefined;
23
+ 'aria-label': string | undefined;
24
+ 'aria-labelledby': string | undefined;
25
+ 'aria-hidden': boolean;
26
+ }>;
27
+ onClick: (event: MouseEvent | KeyboardEvent) => void;
28
+ onKeydown: (event: KeyboardEvent) => void;
29
+ focus: () => void;
30
+ };
@@ -3,8 +3,13 @@ type __VLS_Props = {
3
3
  type?: string;
4
4
  placeholder?: string;
5
5
  disabled?: boolean;
6
+ readonly?: boolean;
6
7
  invalid?: boolean;
7
8
  size?: 'sm' | 'md' | 'lg';
9
+ id?: string;
10
+ name?: string;
11
+ ariaLabel?: string;
12
+ ariaLabelledby?: string;
8
13
  };
9
14
  declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
10
15
  "update:modelValue": (value: string) => any;
@@ -15,6 +20,7 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {
15
20
  type: string;
16
21
  disabled: boolean;
17
22
  modelValue: string | number;
23
+ readonly: boolean;
18
24
  invalid: boolean;
19
25
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
20
26
  declare const _default: typeof __VLS_export;
@@ -2,8 +2,13 @@ type __VLS_Props = {
2
2
  modelValue?: string;
3
3
  placeholder?: string;
4
4
  disabled?: boolean;
5
+ readonly?: boolean;
5
6
  invalid?: boolean;
6
7
  rows?: number;
8
+ id?: string;
9
+ name?: string;
10
+ ariaLabel?: string;
11
+ ariaLabelledby?: string;
7
12
  };
8
13
  declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
14
  "update:modelValue": (value: string) => any;
@@ -12,6 +17,7 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {
12
17
  }>, {
13
18
  disabled: boolean;
14
19
  modelValue: string;
20
+ readonly: boolean;
15
21
  invalid: boolean;
16
22
  rows: number;
17
23
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,60 @@
1
+ export type InputSteppersMenuItem = {
2
+ title: string;
3
+ value: number;
4
+ };
5
+ /**
6
+ * Number semantics of this component (documented contract):
7
+ * - `min` / `max` clamp every committed value.
8
+ * - `step` is the increment used by the +/- buttons and by ArrowUp / ArrowDown.
9
+ * - `precision` (optional) rounds every committed value to N decimals. Without it
10
+ * a manually typed value keeps its decimals; step arithmetic only rounds away
11
+ * binary float noise (0.1 + 0.2 becomes 0.3, 1.5 + 1 stays 2.5).
12
+ * - Typing is committed on blur or Enter. An empty or non-numeric entry reverts to
13
+ * the last valid value; an out-of-range entry is clamped. This is intentional:
14
+ * the reference component left manual entries unclamped.
15
+ * - `patchNum` runs before clamping and may reject a value with `false`, which also
16
+ * reverts to the last valid value.
17
+ */
18
+ type __VLS_Props = {
19
+ modelValue?: number;
20
+ /** Lower bound; defaults to Number.MIN_SAFE_INTEGER when omitted. */
21
+ min?: number | string;
22
+ /** Upper bound; defaults to Number.MAX_SAFE_INTEGER when omitted. */
23
+ max?: number | string;
24
+ /** Increment for the buttons and arrow keys. Defaults to 1. */
25
+ step?: number | string;
26
+ /** Decimal places applied to every committed value. */
27
+ precision?: number;
28
+ /** Rendered width in pixels. */
29
+ width?: number;
30
+ controlsType?: 'right-left' | 'up-down';
31
+ /** Draws a divider between the input and its controls. */
32
+ hasDivider?: boolean;
33
+ disabled?: boolean;
34
+ /** Selects the input text when it receives focus. */
35
+ selectOnFocus?: boolean;
36
+ /** Preset values offered in a listbox. When empty no listbox is rendered. */
37
+ menu?: InputSteppersMenuItem[];
38
+ /** Custom correction applied before clamping; `false` rejects the value. */
39
+ patchNum?: (value: number) => number | false;
40
+ ariaLabel?: string;
41
+ ariaLabelledby?: string;
42
+ name?: string;
43
+ placeholder?: string;
44
+ id?: string;
45
+ };
46
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
47
+ "update:modelValue": (value: number) => any;
48
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
49
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
50
+ }>, {
51
+ menu: InputSteppersMenuItem[];
52
+ disabled: boolean;
53
+ modelValue: number;
54
+ width: number;
55
+ controlsType: "right-left" | "up-down";
56
+ hasDivider: boolean;
57
+ selectOnFocus: boolean;
58
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
59
+ declare const _default: typeof __VLS_export;
60
+ export default _default;
@@ -0,0 +1,24 @@
1
+ import { Responsive } from './breakpoints';
2
+ /**
3
+ * A Grid track span, or a flex item inside a Row. The parent type decides:
4
+ * `flex={6}` spans 6 of the parent's columns in a Grid and sets `flex: 6` in a Row.
5
+ * Outside both containers this stays a plain element.
6
+ */
7
+ type __VLS_Props = {
8
+ flex?: Responsive<string | number>;
9
+ };
10
+ declare var __VLS_1: {};
11
+ type __VLS_Slots = {} & {
12
+ default?: (props: typeof __VLS_1) => any;
13
+ };
14
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
15
+ flex: Responsive<string | number>;
16
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
17
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
20
+ type __VLS_WithSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -0,0 +1,35 @@
1
+ import { Responsive } from './breakpoints';
2
+ import { GapValue } from './gap';
3
+ import { LayoutAlign, LayoutJustify } from './context';
4
+ /** A CSS Grid container; `Col` children span its tracks. */
5
+ type __VLS_Props = {
6
+ /** Track count, or a responsive object of counts. `24` by default. */
7
+ columns?: Responsive<string | number>;
8
+ /** Row count, or a responsive object of counts. `1` by default. */
9
+ rows?: Responsive<string | number>;
10
+ /** A full `grid-template-columns` value (`"200px 1fr"`) that replaces `columns`. */
11
+ gridTemplateColumns?: Responsive<string | readonly string[]>;
12
+ /** A full `grid-template-rows` value that replaces `rows`. */
13
+ gridTemplateRows?: Responsive<string | readonly string[]>;
14
+ /** Cross axis: `align-items`. A `Col` keeps the height of its content by default. */
15
+ align?: Responsive<LayoutAlign>;
16
+ /**
17
+ * Main axis: `justify-content`, the room the tracks take in the container, so
18
+ * `Col` children keep spanning whole tracks instead of shrinking to their text.
19
+ */
20
+ justify?: Responsive<LayoutJustify>;
21
+ gap?: Responsive<GapValue>;
22
+ };
23
+ declare var __VLS_1: {};
24
+ type __VLS_Slots = {} & {
25
+ default?: (props: typeof __VLS_1) => any;
26
+ };
27
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
28
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_WithSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };
@@ -0,0 +1,23 @@
1
+ import { Responsive } from './breakpoints';
2
+ import { LayoutAlign, LayoutJustify } from './context';
3
+ import { GapValue } from './gap';
4
+ /** A flex row; `Col` children become flex items. */
5
+ type __VLS_Props = {
6
+ align?: Responsive<LayoutAlign>;
7
+ justify?: Responsive<LayoutJustify>;
8
+ flexWrap?: Responsive<boolean>;
9
+ gap?: Responsive<GapValue>;
10
+ };
11
+ declare var __VLS_1: {};
12
+ type __VLS_Slots = {} & {
13
+ default?: (props: typeof __VLS_1) => any;
14
+ };
15
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
19
+ type __VLS_WithSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -0,0 +1,24 @@
1
+ import { InjectionKey, Ref } from 'vue';
2
+ export type BreakpointKey = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
+ /** Viewport thresholds in px, keyed by breakpoint. */
4
+ export type GridBreakpoints = Record<BreakpointKey, number>;
5
+ /** A value, or one value per breakpoint resolved mobile first. */
6
+ export type Responsive<T> = T | Partial<Record<BreakpointKey, T>>;
7
+ export declare const BREAKPOINT_KEYS: readonly BreakpointKey[];
8
+ /** The SVC v11 defaults. An app can override them with `provide(GRID_BREAKPOINTS, …)`. */
9
+ export declare const DEFAULT_BREAKPOINTS: GridBreakpoints;
10
+ /** Provide a custom breakpoint set (a BreakpointManager) to a whole subtree. */
11
+ export declare const GRID_BREAKPOINTS: InjectionKey<GridBreakpoints>;
12
+ export declare function isResponsive<T>(value: Responsive<T> | undefined): value is Partial<Record<BreakpointKey, T>>;
13
+ /** The breakpoint a viewport width falls into, mobile first. */
14
+ export declare function breakpointForWidth(width: number, breakpoints?: GridBreakpoints): BreakpointKey;
15
+ /**
16
+ * The value that applies at `active`: the last breakpoint at or below it, or the
17
+ * smallest defined one when the responsive object starts above the viewport.
18
+ */
19
+ export declare function resolveResponsive<T>(value: Responsive<T> | undefined, active: BreakpointKey): T | undefined;
20
+ /**
21
+ * Tracks the active breakpoint for the viewport. `matchMedia` drives the updates
22
+ * and a `resize` listener is the fallback where it is missing (SSR, jsdom).
23
+ */
24
+ export declare function useActiveBreakpoint(provided?: GridBreakpoints): Ref<BreakpointKey>;
@@ -0,0 +1,22 @@
1
+ import { ComputedRef, InjectionKey, Ref } from 'vue';
2
+ import { BreakpointKey } from './breakpoints';
3
+ export type LayoutType = 'grid' | 'row';
4
+ /** Cross-axis values shared by Grid and Row. */
5
+ export type LayoutAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
6
+ /** Main-axis values; the `space-*` forms only exist for Row. */
7
+ export type LayoutJustify = LayoutAlign | 'space-between' | 'space-around' | 'space-evenly';
8
+ /**
9
+ * What a `Col` needs from its container. A `Col` outside one renders a plain
10
+ * element, exactly like SVC v11, where the parent type is detected through
11
+ * injection and nothing is applied when there is no container.
12
+ */
13
+ export type GridLayoutContext = {
14
+ type: LayoutType;
15
+ active: Ref<BreakpointKey>;
16
+ columns: ComputedRef<number>;
17
+ };
18
+ export declare const GRID_LAYOUT: InjectionKey<GridLayoutContext>;
19
+ export type AlignItemsCss = 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
20
+ export type JustifyContentCss = AlignItemsCss | 'space-between' | 'space-around' | 'space-evenly';
21
+ export declare function alignItemsValue(align: LayoutAlign): AlignItemsCss;
22
+ export declare function justifyContentValue(justify: LayoutJustify): JustifyContentCss;
@@ -0,0 +1,12 @@
1
+ /** `16` → `16px`; strings are passed through, exactly as CSS received them. */
2
+ export declare function cssSize(value: string | number): string;
3
+ /** One size for both axes, or a `[column, row]` pair. */
4
+ export type GapValue = string | number | readonly [string | number, string | number];
5
+ export type GapStyle = {
6
+ columnGap: string;
7
+ rowGap: string;
8
+ };
9
+ export declare function gapStyle(gap: GapValue | undefined): GapStyle | undefined;
10
+ /** Normalises the `columns` / `rows` props (a number, a `"3"`, or a track list) into a track list. */
11
+ export declare function trackTemplate(value: string | number | readonly string[] | undefined, fallbackCount: number): string;
12
+ export declare function trackCount(value: string | number | readonly string[] | undefined, fallback: number): number;
@@ -0,0 +1,32 @@
1
+ import { SelectFieldProps, SelectOption } from '../select/internal/types';
2
+ type __VLS_Props = Omit<SelectFieldProps, 'multiple' | 'modelValue' | 'defaultValue'> & {
3
+ modelValue?: string[];
4
+ defaultValue?: string[];
5
+ };
6
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ select: (option: SelectOption) => any;
8
+ invalid: (text: string) => any;
9
+ "update:modelValue": (value: string[]) => any;
10
+ focus: (event: FocusEvent) => any;
11
+ blur: (event: FocusEvent) => any;
12
+ "update:loading": (loading: boolean) => any;
13
+ create: (value: string) => any;
14
+ "open-dropdown": () => any;
15
+ "close-dropdown": () => any;
16
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ onSelect?: ((option: SelectOption) => any) | undefined;
18
+ onInvalid?: ((text: string) => any) | undefined;
19
+ "onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
20
+ onFocus?: ((event: FocusEvent) => any) | undefined;
21
+ onBlur?: ((event: FocusEvent) => any) | undefined;
22
+ "onUpdate:loading"?: ((loading: boolean) => any) | undefined;
23
+ onCreate?: ((value: string) => any) | undefined;
24
+ "onOpen-dropdown"?: (() => any) | undefined;
25
+ "onClose-dropdown"?: (() => any) | undefined;
26
+ }>, {
27
+ modelValue: string[];
28
+ defaultValue: string[];
29
+ editable: boolean;
30
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
31
+ declare const _default: typeof __VLS_export;
32
+ export default _default;
@@ -0,0 +1,111 @@
1
+ import { PaginationLabels, PaginationTotalTextMode } from './labels';
2
+ export type { PaginationLabels, PaginationTotalTextMode };
3
+ export type PaginationPageSizeOption = {
4
+ label: string;
5
+ value: number;
6
+ };
7
+ export type PaginationSwitch = {
8
+ pageNum: number;
9
+ pageSize: number;
10
+ };
11
+ export type PaginationBeforeSwitchPage = (params: PaginationSwitch) => PromiseLike<boolean | void> | boolean | void;
12
+ type __VLS_Props = {
13
+ modelValue?: number;
14
+ /** Record count; unknown (endless) paging uses `endless` instead. */
15
+ total?: string | number;
16
+ pageSize?: number;
17
+ /** Overrides the derived state. */
18
+ hasNext?: boolean;
19
+ hasPrev?: boolean;
20
+ /** First/end record of the current page; derived from `modelValue`/`pageSize` when unset. */
21
+ start?: string | number;
22
+ end?: string | number;
23
+ selectedCount?: string | number;
24
+ filteredCount?: string | number;
25
+ /** `false` renders the pager as read-only feedback: page clicks are ignored. */
26
+ switchPage?: boolean;
27
+ /** Pages a first/previous/next/last control skips. */
28
+ pageShiftUnit?: number;
29
+ showTotal?: boolean;
30
+ /** Page-size choices; `false` hides the selector. Bind `v-model:page-size` to follow it. */
31
+ itemsPerPage?: false | PaginationPageSizeOption[];
32
+ mode?: 'normal' | 'less';
33
+ hasFirstBtn?: boolean;
34
+ hasLastBtn?: boolean;
35
+ /** Unknown total: no page numbers and no totals, only previous/next. */
36
+ endless?: boolean;
37
+ /** Switches to `mode="less"` when the container is narrower than `lessWidth`. */
38
+ autoLess?: boolean;
39
+ lessWidth?: number;
40
+ maxPageButtons?: number;
41
+ /** Shows the refresh control, which emits `refresh`. */
42
+ refresh?: boolean;
43
+ totalTextMode?: PaginationTotalTextMode;
44
+ totalTextFormat?: Partial<Record<PaginationTotalTextMode, string>>;
45
+ labels?: Partial<PaginationLabels>;
46
+ /** Returning `false` (or a promise of it) cancels the page change. */
47
+ beforeSwitchPage?: PaginationBeforeSwitchPage;
48
+ };
49
+ declare var __VLS_1: {
50
+ total: number;
51
+ page: number;
52
+ pageCount: number;
53
+ start: number;
54
+ end: number;
55
+ }, __VLS_59: {}, __VLS_81: {};
56
+ type __VLS_Slots = {} & {
57
+ total?: (props: typeof __VLS_1) => any;
58
+ } & {
59
+ right?: (props: typeof __VLS_59) => any;
60
+ } & {
61
+ 'right-wrapper'?: (props: typeof __VLS_81) => any;
62
+ };
63
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
64
+ focusPrevious: () => void;
65
+ focusNext: () => void;
66
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
67
+ "update:modelValue": (page: number) => any;
68
+ change: (page: number) => any;
69
+ refresh: () => any;
70
+ "update:pageSize": (pageSize: number) => any;
71
+ changePage: (payload: PaginationSwitch) => any;
72
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
73
+ "onUpdate:modelValue"?: ((page: number) => any) | undefined;
74
+ onChange?: ((page: number) => any) | undefined;
75
+ onRefresh?: (() => any) | undefined;
76
+ "onUpdate:pageSize"?: ((pageSize: number) => any) | undefined;
77
+ onChangePage?: ((payload: PaginationSwitch) => any) | undefined;
78
+ }>, {
79
+ modelValue: number;
80
+ end: string | number;
81
+ mode: "normal" | "less";
82
+ start: string | number;
83
+ refresh: boolean;
84
+ total: string | number;
85
+ pageSize: number;
86
+ hasNext: boolean;
87
+ hasPrev: boolean;
88
+ selectedCount: string | number;
89
+ filteredCount: string | number;
90
+ switchPage: boolean;
91
+ pageShiftUnit: number;
92
+ showTotal: boolean;
93
+ itemsPerPage: false | PaginationPageSizeOption[];
94
+ hasFirstBtn: boolean;
95
+ hasLastBtn: boolean;
96
+ endless: boolean;
97
+ autoLess: boolean;
98
+ lessWidth: number;
99
+ maxPageButtons: number;
100
+ totalTextMode: PaginationTotalTextMode;
101
+ totalTextFormat: Partial<Record<PaginationTotalTextMode, string>>;
102
+ labels: Partial<PaginationLabels>;
103
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
104
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
105
+ declare const _default: typeof __VLS_export;
106
+ export default _default;
107
+ type __VLS_WithSlots<T, S> = T & {
108
+ new (): {
109
+ $slots: S;
110
+ };
111
+ };
@@ -0,0 +1,18 @@
1
+ export type PaginationTotalTextMode = 'total' | 'range' | 'filter' | 'select';
2
+ export type PaginationLabels = {
3
+ /** Accessible name of the paging landmark. */
4
+ nav: (total: number, endless: boolean) => string;
5
+ first: string;
6
+ previous: string;
7
+ next: string;
8
+ last: string;
9
+ refresh: string;
10
+ /** Accessible name of the active page button. */
11
+ page: (page: number) => string;
12
+ /** Accessible name of an inactive page button. */
13
+ goToPage: (page: number) => string;
14
+ itemsPerPage: string;
15
+ /** Templates for `totalTextMode`; `{total}`, `{start}`, `{end}`, `{filteredCount}` and `{selectedCount}` are replaced. */
16
+ totalText: Record<PaginationTotalTextMode, string>;
17
+ };
18
+ export declare const defaultPaginationLabels: PaginationLabels;
@@ -0,0 +1,13 @@
1
+ export type PageWindowEntry = number | 'ellipsis';
2
+ /** Total pages for a record count, never below one. */
3
+ export declare function pageCountOf(total: number, pageSize: number): number;
4
+ /** Clamps a requested page into `1..pageCount`. */
5
+ export declare function clampPage(page: number, pageCount: number): number;
6
+ /**
7
+ * Page buttons around the current page: the first and last page are always
8
+ * shown, the middle is a window of at most `max` buttons with `ellipsis`
9
+ * markers where pages are skipped.
10
+ */
11
+ export declare function pageWindow(current: number, pageCount: number, max?: number): PageWindowEntry[];
12
+ /** Replaces `{name}` placeholders, leaving unknown names untouched. */
13
+ export declare function formatTotalText(template: string, values: Record<string, string | number>): string;
@@ -2,6 +2,8 @@ type __VLS_Props = {
2
2
  value?: number;
3
3
  max?: number;
4
4
  label?: string;
5
+ /** Overrides the trailing percentage text, e.g. an explicit `"60%"` from a caller. */
6
+ valueLabel?: string;
5
7
  };
6
8
  declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
7
9
  value: number;
@@ -0,0 +1,57 @@
1
+ import { PropType, VNode } from 'vue';
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
4
+ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
5
+ /** HTML string to parse and render. */
6
+ text: {
7
+ type: StringConstructor;
8
+ default: string;
9
+ };
10
+ /** Tag allowlist; tags outside it are removed while their content is kept. */
11
+ parseTags: {
12
+ type: PropType<string[]>;
13
+ default: () => string[];
14
+ };
15
+ /** Tags treated as clickable links, reported through `click-link`. */
16
+ linkTags: {
17
+ type: PropType<string[]>;
18
+ default: () => string[];
19
+ };
20
+ /** Attribute allowlist. `class` and `style` are always kept. */
21
+ allowAttrs: {
22
+ type: PropType<string[]>;
23
+ default: () => string[];
24
+ };
25
+ }>, () => VNode<import('vue').RendererNode, import('vue').RendererElement, {
26
+ [key: string]: any;
27
+ }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
28
+ 'click-link': (linkId: string, attrs: Record<string, string>, event: MouseEvent | KeyboardEvent) => boolean;
29
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
30
+ /** HTML string to parse and render. */
31
+ text: {
32
+ type: StringConstructor;
33
+ default: string;
34
+ };
35
+ /** Tag allowlist; tags outside it are removed while their content is kept. */
36
+ parseTags: {
37
+ type: PropType<string[]>;
38
+ default: () => string[];
39
+ };
40
+ /** Tags treated as clickable links, reported through `click-link`. */
41
+ linkTags: {
42
+ type: PropType<string[]>;
43
+ default: () => string[];
44
+ };
45
+ /** Attribute allowlist. `class` and `style` are always kept. */
46
+ allowAttrs: {
47
+ type: PropType<string[]>;
48
+ default: () => string[];
49
+ };
50
+ }>> & Readonly<{
51
+ "onClick-link"?: ((linkId: string, attrs: Record<string, string>, event: KeyboardEvent | MouseEvent) => any) | undefined;
52
+ }>, {
53
+ text: string;
54
+ parseTags: string[];
55
+ linkTags: string[];
56
+ allowAttrs: string[];
57
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,31 @@
1
+ export declare const DEFAULT_PARSE_TAGS: string[];
2
+ export declare const DEFAULT_LINK_TAGS: string[];
3
+ export declare const DEFAULT_ALLOW_ATTRS: string[];
4
+ /**
5
+ * True when a URL is relative or a fragment, or uses an allowlisted scheme.
6
+ * `javascript:`, `data:`, `vbscript:` and every other scheme are rejected, with
7
+ * or without the whitespace and control characters browsers strip while
8
+ * parsing one (`java\tscript:`).
9
+ */
10
+ export declare function isSafeRichTextUrl(value: string): boolean;
11
+ export interface RichTextTextNode {
12
+ type: 'text';
13
+ value: string;
14
+ }
15
+ export interface RichTextElementNode {
16
+ type: 'element';
17
+ tag: string;
18
+ attrs: Record<string, string>;
19
+ /** Marks a tag listed in `linkTags`; clicks are reported through `click-link`. */
20
+ link: boolean;
21
+ /** The `link-id` attribute, passed through even when it is not in `allowAttrs`. */
22
+ linkId?: string;
23
+ children: RichTextNode[];
24
+ }
25
+ export type RichTextNode = RichTextTextNode | RichTextElementNode;
26
+ export interface ParseRichTextOptions {
27
+ parseTags?: string[];
28
+ linkTags?: string[];
29
+ allowAttrs?: string[];
30
+ }
31
+ export declare function parseRichText(html: string, options?: ParseRichTextOptions): RichTextNode[];
@@ -0,0 +1,65 @@
1
+ import { ScheduleOption, ScheduleSplitMinute } from './schedule';
2
+ type __VLS_Props = {
3
+ /** Digit string; length must be `168 * (60 / splitMinute)`. */
4
+ modelValue: string;
5
+ options?: ScheduleOption[];
6
+ splitMinute?: ScheduleSplitMinute;
7
+ optionsCountPerRow?: number;
8
+ optionsMaxWidth?: string | number;
9
+ defaultSelected?: number;
10
+ ariaLabel?: string;
11
+ ariaLabelledby?: string;
12
+ prefix?: string;
13
+ };
14
+ declare var __VLS_1: {}, __VLS_4: string, __VLS_5: {}, __VLS_12: {}, __VLS_15: string, __VLS_16: {
15
+ cellCls: string;
16
+ style: Record<string, string>;
17
+ day: number;
18
+ hour: number;
19
+ hourSplitIndex: number;
20
+ cellKey: string;
21
+ click: () => void;
22
+ }, __VLS_18: {};
23
+ type __VLS_Slots = {} & {
24
+ [K in NonNullable<typeof __VLS_4>]?: (props: typeof __VLS_5) => any;
25
+ } & {
26
+ [K in NonNullable<typeof __VLS_15>]?: (props: typeof __VLS_16) => any;
27
+ } & {
28
+ control?: (props: typeof __VLS_1) => any;
29
+ } & {
30
+ description?: (props: typeof __VLS_12) => any;
31
+ } & {
32
+ detail?: (props: typeof __VLS_18) => any;
33
+ };
34
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
35
+ "update:modelValue": (value: string) => any;
36
+ selected: (payload: {
37
+ index: number;
38
+ option: ScheduleOption | undefined;
39
+ cells: number[];
40
+ }) => any;
41
+ "edit-option": (option: ScheduleOption) => any;
42
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
43
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
44
+ onSelected?: ((payload: {
45
+ index: number;
46
+ option: ScheduleOption | undefined;
47
+ cells: number[];
48
+ }) => any) | undefined;
49
+ "onEdit-option"?: ((option: ScheduleOption) => any) | undefined;
50
+ }>, {
51
+ prefix: string;
52
+ options: ScheduleOption[];
53
+ defaultSelected: number;
54
+ splitMinute: ScheduleSplitMinute;
55
+ optionsCountPerRow: number;
56
+ optionsMaxWidth: string | number;
57
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
58
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
59
+ declare const _default: typeof __VLS_export;
60
+ export default _default;
61
+ type __VLS_WithSlots<T, S> = T & {
62
+ new (): {
63
+ $slots: S;
64
+ };
65
+ };