@octans/ui 1.0.0 → 1.3.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.
Files changed (62) hide show
  1. package/README.md +45 -2
  2. package/dist/components/ActionList/ActionList.vue.d.ts +12 -4
  3. package/dist/components/ActionList/ActionListButton.vue.d.ts +13 -1
  4. package/dist/components/AppFrame/AppFrame.vue.d.ts +3 -3
  5. package/dist/components/Badge/Badge.vue.d.ts +3 -3
  6. package/dist/components/Banner/Banner.vue.d.ts +18 -0
  7. package/dist/components/Button/Button.vue.d.ts +66 -0
  8. package/dist/components/Calendar/types.d.ts +52 -0
  9. package/dist/components/CalendarHeatmap/CalendarHeatmap.vue.d.ts +1 -1
  10. package/dist/components/Card/CardSection.vue.d.ts +1 -1
  11. package/dist/components/ColorSelector/ColorSelector.vue.d.ts +1 -1
  12. package/dist/components/ColorSelector/types.d.ts +2 -2
  13. package/dist/components/DataTable/BulkActions.vue.d.ts +21 -3
  14. package/dist/components/DatePicker/types.d.ts +33 -0
  15. package/dist/components/FileInput/FileInput.vue.d.ts +104 -0
  16. package/dist/components/FileInput/ItemList.vue.d.ts +6 -0
  17. package/dist/components/FileInput/pageDrop.d.ts +23 -0
  18. package/dist/components/Filters/FilterActions.vue.d.ts +21 -3
  19. package/dist/components/Filters/FilterItem.vue.d.ts +31 -3
  20. package/dist/components/Filters/Filters.vue.d.ts +73 -9
  21. package/dist/components/Formatter/Formatter.vue.d.ts +18 -0
  22. package/dist/components/KeyboardKey/KeyboardKey.vue.d.ts +38 -0
  23. package/dist/components/KeyboardKey/index.d.ts +2 -0
  24. package/dist/components/Labelled/Labelled.vue.d.ts +18 -2
  25. package/dist/components/Modal/ModalSection.vue.d.ts +71 -0
  26. package/dist/components/Modal/index.d.ts +2 -1
  27. package/dist/components/Page/Page.vue.d.ts +34 -4
  28. package/dist/components/{Popper/Popper.vue.d.ts → Popover/Popover.vue.d.ts} +4 -4
  29. package/dist/components/Popover/index.d.ts +90 -0
  30. package/dist/components/{Popper → Popover}/types.d.ts +3 -3
  31. package/dist/components/RangeSlider/RangeSlider.vue.d.ts +27 -0
  32. package/dist/components/Select/Select.vue.d.ts +35 -3
  33. package/dist/components/SkeletonPage/SkeletonPage.vue.d.ts +19 -0
  34. package/dist/components/SkeletonPage/index.d.ts +2 -0
  35. package/dist/components/SkeletonPage/types.d.ts +26 -0
  36. package/dist/components/Tabs/Tabs.vue.d.ts +1 -14
  37. package/dist/components/Tabs/types.d.ts +11 -1
  38. package/dist/components/Tag/Tag.vue.d.ts +3 -3
  39. package/dist/components/TextField/types.d.ts +10 -0
  40. package/dist/components/TimePicker/types.d.ts +10 -0
  41. package/dist/components/ToggleSwitch/ToggleSwitch.vue.d.ts +8 -2
  42. package/dist/components/ToggleSwitch/types.d.ts +29 -0
  43. package/dist/components/Tooltip/Tooltip.vue.d.ts +2 -2
  44. package/dist/components/all.d.ts +3 -1
  45. package/dist/components/types.d.ts +5 -0
  46. package/dist/lib.d.ts +4 -1
  47. package/dist/reset.css +73 -0
  48. package/dist/style.css +1 -1
  49. package/dist/ui.js +4255 -3770
  50. package/dist/ui.umd.js +3 -3
  51. package/dist/utils/color.d.ts +11 -0
  52. package/dist/utils/contrastPairs.d.ts +39 -0
  53. package/dist/utils/createTheme.d.ts +29 -0
  54. package/dist/utils/customTheme.d.ts +1 -1
  55. package/dist/utils/date.d.ts +12 -1
  56. package/dist/utils/format.d.ts +8 -0
  57. package/dist/utils/positionPanel.d.ts +2 -2
  58. package/dist/utils/radix.d.ts +2 -2
  59. package/dist/utils/tokens.d.ts +1 -1
  60. package/package.json +29 -24
  61. package/skills/octans-ui/SKILL.md +303 -0
  62. package/dist/components/Popper/index.d.ts +0 -2
package/README.md CHANGED
@@ -7,8 +7,9 @@ shell components.
7
7
 
8
8
  <br clear="left" />
9
9
 
10
- [octans.dev](https://octans.dev) — live Storybook docs ·
11
- [github.com/tarwin/octans-ui](https://github.com/tarwin/octans-ui) ·
10
+ [octans.dev](https://octans.dev) ·
11
+ [Quick start](https://octans.dev/storybook/?path=/docs/documentation-quick-start--docs) ·
12
+ [Kitchen sink](https://octans.dev/storybook/?path=/story/documentation-kitchen-sink--all-components) ·
12
13
  [Issues](https://github.com/tarwin/octans-ui/issues)
13
14
 
14
15
  ## Install
@@ -21,6 +22,24 @@ pnpm add @octans/ui
21
22
  if you use the components that render router links (`MaybeRouterLink`,
22
23
  `UnstyledLink`, and anything that accepts a `to` prop).
23
24
 
25
+ ### A note on the `vue-demi` build warning
26
+
27
+ pnpm may report an ignored build script on install:
28
+
29
+ ```
30
+ [ERR_PNPM_IGNORED_BUILDS] Ignored build scripts: vue-demi
31
+ ```
32
+
33
+ This is safe to ignore. `vue-demi` arrives transitively via
34
+ `reka-ui` → `@floating-ui/vue`, which still supports Vue 2 alongside Vue 3. Its
35
+ postinstall only switches the package entry point to match the detected Vue
36
+ version, and the shipped default is already the Vue 3 build — so skipping it
37
+ changes nothing on Vue 3. Run `pnpm approve-builds` if you would rather the
38
+ warning went away.
39
+
40
+ It will disappear on its own once `reka-ui` moves to `@floating-ui/vue` v2,
41
+ which dropped `vue-demi`.
42
+
24
43
  ## Usage
25
44
 
26
45
  ```ts
@@ -33,6 +52,20 @@ import App from './App.vue'
33
52
  createApp(App).use(Octans).mount('#app')
34
53
  ```
35
54
 
55
+ ### `reset.css`
56
+
57
+ `style.css` resets nothing outside `.UIElement`, so the library can be dropped
58
+ into a page it doesn't own without moving anything on it. If Octans is the
59
+ whole UI, add the opt-in page reset as well — otherwise the markup your app
60
+ renders itself keeps the browser's defaults: serif text, the 8px body margin,
61
+ `content-box` sizing, and a body with no height that grows into a second
62
+ scrollbar.
63
+
64
+ ```ts
65
+ import '@octans/ui/style.css'
66
+ import '@octans/ui/reset.css' // only when Octans owns the page
67
+ ```
68
+
36
69
  Components can also be imported individually without installing the plugin:
37
70
 
38
71
  ```vue
@@ -173,6 +206,7 @@ pnpm dev # Storybook on :6006
173
206
  | Script | Does |
174
207
  | ----------------- | ------------------------------------------------ |
175
208
  | `pnpm dev` | Storybook dev server |
209
+ | `pnpm build-site` | Landing page + Storybook into `site-dist/` |
176
210
  | `pnpm build-lib` | Build the ES + UMD bundles and type declarations |
177
211
  | `pnpm type-check` | `vue-tsc --noEmit` |
178
212
  | `pnpm lint` | ESLint |
@@ -221,6 +255,15 @@ export interface SelectOptionType {
221
255
  }
222
256
  ```
223
257
 
258
+ ## Acknowledgements
259
+
260
+ - [Bryce Farrell](https://github.com/brycefarrell) — especially for ideas on how
261
+ to structure internal APIs to make them easy to use.
262
+ - [Ramunė Rastonis](https://www.instagram.com/ramunerastonis/) — for design
263
+ consulting.
264
+
265
+ Any shortcomings are my own fault.
266
+
224
267
  ## License
225
268
 
226
269
  [MIT](./LICENSE)
@@ -1,4 +1,5 @@
1
- import { PopperPlacementType } from '../Popper';
1
+ import { VNodeChild } from 'vue';
2
+ import { PopoverPlacementType } from '../Popover';
2
3
  import { ActionTooltipPositionType } from '../types';
3
4
  export interface ActionListProps {
4
5
  /**
@@ -9,10 +10,10 @@ export interface ActionListProps {
9
10
  * Groups of actions to render.
10
11
  */
11
12
  sections?: ActionListSectionType[];
12
- placement?: PopperPlacementType;
13
+ placement?: PopoverPlacementType;
13
14
  disabled?: boolean;
14
15
  /**
15
- * Custom z-index for the popper.
16
+ * Custom z-index for the popover.
16
17
  */
17
18
  zIndex?: number;
18
19
  /**
@@ -32,6 +33,13 @@ export interface ActionListItemType {
32
33
  * Secondary text shown beneath the label.
33
34
  */
34
35
  helpText?: string;
36
+ /**
37
+ * Renders the row's body in place of `label` (and `helpText`), for items
38
+ * that are more than text — a label with a Badge beside it, say. `label` is
39
+ * still required: it stays the item's accessible, sortable name, and is what
40
+ * a consumer reading the items back gets.
41
+ */
42
+ content?: () => VNodeChild;
35
43
  disabled?: boolean;
36
44
  url?: string;
37
45
  external?: boolean;
@@ -64,7 +72,7 @@ declare const __VLS_base: import('vue').DefineComponent<ActionListProps, {}, {},
64
72
  onHide?: (() => any) | undefined;
65
73
  onClose?: (() => any) | undefined;
66
74
  }>, {
67
- placement: PopperPlacementType;
75
+ placement: PopoverPlacementType;
68
76
  items: ActionListItemType[];
69
77
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
70
78
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,4 +1,4 @@
1
- import { PropType, VNode } from 'vue';
1
+ import { PropType, VNode, VNodeChild } from 'vue';
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
4
4
  declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
@@ -8,6 +8,12 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
8
8
  helpText: {
9
9
  type: StringConstructor;
10
10
  };
11
+ /**
12
+ * Renders the row's body in place of `label` and `helpText`.
13
+ */
14
+ content: {
15
+ type: PropType<() => VNodeChild>;
16
+ };
11
17
  disabled: {
12
18
  type: BooleanConstructor;
13
19
  default: boolean;
@@ -47,6 +53,12 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
47
53
  helpText: {
48
54
  type: StringConstructor;
49
55
  };
56
+ /**
57
+ * Renders the row's body in place of `label` and `helpText`.
58
+ */
59
+ content: {
60
+ type: PropType<() => VNodeChild>;
61
+ };
50
62
  disabled: {
51
63
  type: BooleanConstructor;
52
64
  default: boolean;
@@ -1,13 +1,13 @@
1
1
  import { AppFrameProps } from './types';
2
- declare var __VLS_8: {}, __VLS_10: {}, __VLS_38: {}, __VLS_40: {};
2
+ declare var __VLS_8: {}, __VLS_10: {}, __VLS_43: {}, __VLS_45: {};
3
3
  type __VLS_Slots = {} & {
4
4
  sidebar?: (props: typeof __VLS_8) => any;
5
5
  } & {
6
6
  topbar?: (props: typeof __VLS_10) => any;
7
7
  } & {
8
- default?: (props: typeof __VLS_38) => any;
8
+ default?: (props: typeof __VLS_43) => any;
9
9
  } & {
10
- footer?: (props: typeof __VLS_40) => any;
10
+ footer?: (props: typeof __VLS_45) => any;
11
11
  };
12
12
  declare const __VLS_base: import('vue').DefineComponent<AppFrameProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<AppFrameProps> & Readonly<{}>, {
13
13
  loading: boolean;
@@ -1,4 +1,4 @@
1
- import { PopperPlacementType } from '../Popper';
1
+ import { PopoverPlacementType } from '../Popover';
2
2
  import { PropType } from 'vue';
3
3
  import { BadgeProgressType, BadgeSizeType, BadgeStatusType } from '../types';
4
4
  /**
@@ -53,7 +53,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
53
53
  * Placement of the tooltip if rendered
54
54
  */
55
55
  tooltipPosition: {
56
- type: PropType<PopperPlacementType>;
56
+ type: PropType<PopoverPlacementType>;
57
57
  };
58
58
  /**
59
59
  * An optional radius value for the badge edges
@@ -110,7 +110,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
110
110
  * Placement of the tooltip if rendered
111
111
  */
112
112
  tooltipPosition: {
113
- type: PropType<PopperPlacementType>;
113
+ type: PropType<PopoverPlacementType>;
114
114
  };
115
115
  /**
116
116
  * An optional radius value for the badge edges
@@ -170,6 +170,14 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
170
170
  type: BooleanConstructor;
171
171
  default: boolean;
172
172
  };
173
+ loading: {
174
+ type: BooleanConstructor;
175
+ default: boolean;
176
+ };
177
+ pressed: {
178
+ type: BooleanConstructor;
179
+ default: undefined;
180
+ };
173
181
  }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
174
182
  [key: string]: any;
175
183
  }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
@@ -225,15 +233,25 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
225
233
  type: BooleanConstructor;
226
234
  default: boolean;
227
235
  };
236
+ loading: {
237
+ type: BooleanConstructor;
238
+ default: boolean;
239
+ };
240
+ pressed: {
241
+ type: BooleanConstructor;
242
+ default: undefined;
243
+ };
228
244
  }>> & Readonly<{}>, {
229
245
  disabled: boolean;
230
246
  size: string;
231
247
  type: import('../types').ActionTypeType;
232
248
  destructive: boolean;
249
+ loading: boolean;
233
250
  tooltipPosition: import('../types').ActionTooltipPositionType;
234
251
  external: boolean;
235
252
  dropdown: boolean;
236
253
  fullWidth: boolean;
237
254
  invert: boolean;
255
+ pressed: boolean;
238
256
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
239
257
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -138,6 +138,38 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
138
138
  type: BooleanConstructor;
139
139
  default: boolean;
140
140
  };
141
+ /**
142
+ * Swaps the label for a spinner while an action is in flight, and stops
143
+ * the button acting.
144
+ *
145
+ * The label stays in the layout and is only made invisible, so the button
146
+ * keeps its width — a toolbar that reflows the instant something is
147
+ * clicked is worse than a slow one.
148
+ *
149
+ * It sets `aria-disabled`, NOT `disabled`. A real `disabled` attribute on
150
+ * a focused button drops focus to `<body>`, which is precisely the moment
151
+ * a keyboard user is waiting for something to happen.
152
+ */
153
+ loading: {
154
+ type: BooleanConstructor;
155
+ default: boolean;
156
+ };
157
+ /**
158
+ * Marks a toggle button as on. The resting surface takes whatever
159
+ * treatment the type already uses for `:active`, and the button announces
160
+ * `aria-pressed`.
161
+ *
162
+ * `undefined` by default rather than `false`, so the attribute appears
163
+ * only on a button that IS a toggle: `:pressed="false"` announces a
164
+ * toggle that is off, while omitting it announces nothing at all.
165
+ *
166
+ * For a set of mutually exclusive options reach for `SegmentedControl`
167
+ * instead — this is for a toggle that stands on its own.
168
+ */
169
+ pressed: {
170
+ type: BooleanConstructor;
171
+ default: undefined;
172
+ };
141
173
  }>, () => VNode<import('vue').RendererNode, import('vue').RendererElement, {
142
174
  [key: string]: any;
143
175
  }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
@@ -271,14 +303,48 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
271
303
  type: BooleanConstructor;
272
304
  default: boolean;
273
305
  };
306
+ /**
307
+ * Swaps the label for a spinner while an action is in flight, and stops
308
+ * the button acting.
309
+ *
310
+ * The label stays in the layout and is only made invisible, so the button
311
+ * keeps its width — a toolbar that reflows the instant something is
312
+ * clicked is worse than a slow one.
313
+ *
314
+ * It sets `aria-disabled`, NOT `disabled`. A real `disabled` attribute on
315
+ * a focused button drops focus to `<body>`, which is precisely the moment
316
+ * a keyboard user is waiting for something to happen.
317
+ */
318
+ loading: {
319
+ type: BooleanConstructor;
320
+ default: boolean;
321
+ };
322
+ /**
323
+ * Marks a toggle button as on. The resting surface takes whatever
324
+ * treatment the type already uses for `:active`, and the button announces
325
+ * `aria-pressed`.
326
+ *
327
+ * `undefined` by default rather than `false`, so the attribute appears
328
+ * only on a button that IS a toggle: `:pressed="false"` announces a
329
+ * toggle that is off, while omitting it announces nothing at all.
330
+ *
331
+ * For a set of mutually exclusive options reach for `SegmentedControl`
332
+ * instead — this is for a toggle that stands on its own.
333
+ */
334
+ pressed: {
335
+ type: BooleanConstructor;
336
+ default: undefined;
337
+ };
274
338
  }>> & Readonly<{}>, {
275
339
  disabled: boolean;
276
340
  size: string;
277
341
  type: ActionTypeType;
278
342
  destructive: boolean;
343
+ loading: boolean;
279
344
  tooltipPosition: ActionTooltipPositionType;
280
345
  external: boolean;
281
346
  dropdown: boolean;
282
347
  fullWidth: boolean;
283
348
  invert: boolean;
349
+ pressed: boolean;
284
350
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -6,6 +6,23 @@ export interface CalendarCellType {
6
6
  isCurrent?: boolean;
7
7
  isOtherPeriod?: boolean;
8
8
  isDisabled?: boolean;
9
+ /** Markers falling on this cell, in the order they were given. */
10
+ markers?: CalendarMarkerType[];
11
+ }
12
+ /**
13
+ * A dot drawn under a day, for saying "something happens here" without
14
+ * selecting it — deadlines, bookings, days with data.
15
+ */
16
+ export interface CalendarMarkerType {
17
+ /**
18
+ * The day to mark. Anything DayJS can parse, including a `Date` or another
19
+ * `Dayjs`; only the day part is used.
20
+ */
21
+ date: string | number | Date | Dayjs;
22
+ /** Any CSS colour. Defaults to the theme's primary. */
23
+ color?: string;
24
+ /** Native tooltip on the day. Several markers on a day join with a comma. */
25
+ tooltip?: string;
9
26
  }
10
27
  export interface CalendarProps {
11
28
  /**
@@ -36,4 +53,39 @@ export interface CalendarProps {
36
53
  * Restricts the maximum time that can be selected.
37
54
  */
38
55
  maxTime?: string;
56
+ /**
57
+ * The earliest selectable date, inclusive. Anything DayJS can parse.
58
+ *
59
+ * `disableDate` can express this too, but a range is the common case and
60
+ * writing a predicate for it every time is the wrong amount of work. Both
61
+ * apply when both are given.
62
+ */
63
+ minDate?: string | number | Date | Dayjs;
64
+ /**
65
+ * The latest selectable date, inclusive.
66
+ */
67
+ maxDate?: string | number | Date | Dayjs;
68
+ /**
69
+ * The day the week starts on, `0` Sunday through `6` Saturday.
70
+ *
71
+ * Normally you should NOT set this: the week start comes from the active
72
+ * locale, so `setLocale('fr')` already moves it to Monday. This is the
73
+ * per-instance override for a calendar that has to disagree with the
74
+ * viewer's locale — a roster in a fixed business week, say.
75
+ */
76
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
77
+ /**
78
+ * Days to mark with a dot.
79
+ */
80
+ markers?: CalendarMarkerType[];
81
+ /**
82
+ * The time zone that decides what "today" is, as an IANA name
83
+ * (`'America/Los_Angeles'`). Defaults to the library-wide display time zone
84
+ * — see `setTimezone` — and, failing that, the viewer's own clock.
85
+ *
86
+ * This moves the highlighted day and the day an empty picker opens on. It
87
+ * does NOT convert `modelValue`: the model is a wall clock in
88
+ * `modelFormat`, parsed and formatted without a zone, and it stays that way.
89
+ */
90
+ timezone?: string;
39
91
  }
@@ -2,8 +2,8 @@ import { CalendarHeatmapProps, CalendarHeatmapSeries } from './types';
2
2
  declare const __VLS_export: import('vue').DefineComponent<CalendarHeatmapProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<CalendarHeatmapProps> & Readonly<{}>, {
3
3
  data: import('./types').CalendarHeatmapDataPoint[];
4
4
  tooltip: boolean;
5
- series: CalendarHeatmapSeries[];
6
5
  weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
6
+ series: CalendarHeatmapSeries[];
7
7
  emptyColor: string;
8
8
  cellSize: number;
9
9
  cellGap: number;
@@ -84,6 +84,6 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
84
84
  };
85
85
  }>> & Readonly<{}>, {
86
86
  subdued: boolean;
87
- collapseActions: boolean;
88
87
  padded: boolean;
88
+ collapseActions: boolean;
89
89
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -7,7 +7,7 @@ declare const __VLS_export: import('vue').DefineComponent<ColorSelectorProps, {}
7
7
  "onUpdate:modelValue"?: ((value: string | Gradient) => any) | undefined;
8
8
  "onUpdate:swatches"?: ((value: string[]) => any) | undefined;
9
9
  }>, {
10
- placement: import('../Popper').PopperPlacementType;
10
+ placement: import('../Popover').PopoverPlacementType;
11
11
  disabled: boolean;
12
12
  trigger: import('./types').ColorSelectorTriggerType;
13
13
  mode: import('./types').ColorSelectorMode;
@@ -1,5 +1,5 @@
1
1
  import { ColorPickerProps } from '../ColorPicker';
2
- import { PopperPlacementType } from '../Popper';
2
+ import { PopoverPlacementType } from '../Popover';
3
3
  import { Gradient, GradientType } from '../../utils/gradient';
4
4
  /**
5
5
  * What the field is allowed to hold.
@@ -59,7 +59,7 @@ export interface ColorSelectorProps extends Omit<ColorPickerProps, 'modelValue'>
59
59
  /**
60
60
  * Where the picker opens relative to the trigger.
61
61
  */
62
- placement?: PopperPlacementType;
62
+ placement?: PopoverPlacementType;
63
63
  /**
64
64
  * What you click to open the picker. `swatch` strips the control back to the
65
65
  * colour itself; `input` lets the value be typed.
@@ -45,7 +45,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
45
45
  hide: () => any;
46
46
  close: () => any;
47
47
  }, import('vue').PublicProps, {
48
- placement: import('../Popper').PopperPlacementType;
48
+ placement: import('../Popover').PopoverPlacementType;
49
49
  items: import('../ActionList').ActionListItemType[];
50
50
  }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
51
51
  P: {};
@@ -59,7 +59,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
59
59
  onHide?: (() => any) | undefined;
60
60
  onClose?: (() => any) | undefined;
61
61
  }>, {}, {}, {}, {}, {
62
- placement: import('../Popper').PopperPlacementType;
62
+ placement: import('../Popover').PopoverPlacementType;
63
63
  items: import('../ActionList').ActionListItemType[];
64
64
  }>;
65
65
  __isFragment?: never;
@@ -74,7 +74,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
74
74
  hide: () => any;
75
75
  close: () => any;
76
76
  }, string, {
77
- placement: import('../Popper').PopperPlacementType;
77
+ placement: import('../Popover').PopoverPlacementType;
78
78
  items: import('../ActionList').ActionListItemType[];
79
79
  }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
80
80
  $slots: {
@@ -134,6 +134,14 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
134
134
  type: BooleanConstructor;
135
135
  default: boolean;
136
136
  };
137
+ loading: {
138
+ type: BooleanConstructor;
139
+ default: boolean;
140
+ };
141
+ pressed: {
142
+ type: BooleanConstructor;
143
+ default: undefined;
144
+ };
137
145
  }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
138
146
  [key: string]: any;
139
147
  }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
@@ -189,16 +197,26 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
189
197
  type: BooleanConstructor;
190
198
  default: boolean;
191
199
  };
200
+ loading: {
201
+ type: BooleanConstructor;
202
+ default: boolean;
203
+ };
204
+ pressed: {
205
+ type: BooleanConstructor;
206
+ default: undefined;
207
+ };
192
208
  }>> & Readonly<{}>, {
193
209
  disabled: boolean;
194
210
  size: string;
195
211
  type: import('../types').ActionTypeType;
196
212
  destructive: boolean;
213
+ loading: boolean;
197
214
  tooltipPosition: import('../types').ActionTooltipPositionType;
198
215
  external: boolean;
199
216
  dropdown: boolean;
200
217
  fullWidth: boolean;
201
218
  invert: boolean;
219
+ pressed: boolean;
202
220
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
203
221
  ButtonGroup: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
204
222
  segmented: {
@@ -1,4 +1,5 @@
1
1
  import { Dayjs } from 'dayjs';
2
+ import { CalendarMarkerType } from '../Calendar';
2
3
  export interface DatePickerProps {
3
4
  label?: string | false;
4
5
  error?: string | false | null;
@@ -54,4 +55,36 @@ export interface DatePickerProps {
54
55
  * If set to `false` will not automatically display the picker.
55
56
  */
56
57
  autoOpen?: boolean;
58
+ /**
59
+ * The earliest selectable date, inclusive. Anything DayJS can parse.
60
+ */
61
+ minDate?: string | number | Date | Dayjs;
62
+ /**
63
+ * The latest selectable date, inclusive.
64
+ */
65
+ maxDate?: string | number | Date | Dayjs;
66
+ /**
67
+ * The day the week starts on, `0` Sunday through `6` Saturday. Comes from
68
+ * the active locale unless set — see `Calendar`.
69
+ */
70
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
71
+ /**
72
+ * Days to mark with a dot in the calendar.
73
+ */
74
+ markers?: CalendarMarkerType[];
75
+ /**
76
+ * IANA time zone deciding what "today" is. Defaults to the library-wide
77
+ * display zone — see `setTimezone`. It does not convert `modelValue`.
78
+ */
79
+ timezone?: string;
80
+ /**
81
+ * Marks the field as required: an asterisk after the label, and
82
+ * `aria-required` on the control.
83
+ *
84
+ * Announced, not enforced — it deliberately does NOT set the native
85
+ * `required` attribute, so the browser's own validation bubble stays out of
86
+ * the way of whatever the app does about errors. Use `error` to show a
87
+ * failure.
88
+ */
89
+ required?: boolean;
57
90
  }