@knitify/vue 2.0.0 → 2.2.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 (94) hide show
  1. package/README.md +6 -1
  2. package/dist/index.es.js +6611 -2755
  3. package/dist/index.umd.js +1 -1
  4. package/dist/types/components/Alert/KAlert.vue.d.ts +22 -2
  5. package/dist/types/components/Alert/types.d.ts +11 -1
  6. package/dist/types/components/ArticleList/KArticleList.vue.d.ts +11 -0
  7. package/dist/types/components/ArticleList/KArticleListItem.vue.d.ts +15 -0
  8. package/dist/types/components/ArticleList/types.d.ts +47 -0
  9. package/dist/types/components/Avatar/types.d.ts +1 -1
  10. package/dist/types/components/ButtonGroup/KButtonGroup.vue.d.ts +11 -0
  11. package/dist/types/components/ButtonGroup/types.d.ts +7 -0
  12. package/dist/types/components/Calendar/types.d.ts +2 -0
  13. package/dist/types/components/Chat/KChatPrompt.vue.d.ts +2 -2
  14. package/dist/types/components/Chat/keys.d.ts +1 -0
  15. package/dist/types/components/Chat/types.d.ts +19 -4
  16. package/dist/types/components/ChatDock/KChatDock.vue.d.ts +4 -2
  17. package/dist/types/components/ChatDock/KChatNewWindow.vue.d.ts +28 -0
  18. package/dist/types/components/ChatDock/KMessenger.vue.d.ts +6 -0
  19. package/dist/types/components/ChatDock/messenger-types.d.ts +56 -1
  20. package/dist/types/components/ChatDock/types.d.ts +30 -2
  21. package/dist/types/components/DataTable/KDataTable.vue.d.ts +71 -0
  22. package/dist/types/components/DataTable/KDataTableLinkCell.vue.d.ts +21 -0
  23. package/dist/types/components/DataTable/KDataTableSettings.vue.d.ts +32 -0
  24. package/dist/types/components/DataTable/KDataTableSort.vue.d.ts +17 -0
  25. package/dist/types/components/DataTable/columnTypes.d.ts +19 -0
  26. package/dist/types/components/DataTable/keys.d.ts +9 -0
  27. package/dist/types/components/DataTable/types.d.ts +269 -0
  28. package/dist/types/components/DateInput/KDateInput.vue.d.ts +26 -0
  29. package/dist/types/components/DateInput/KDateRangeInput.vue.d.ts +31 -0
  30. package/dist/types/components/DateInput/types.d.ts +69 -0
  31. package/dist/types/components/DateInput/useDateInput.d.ts +27 -0
  32. package/dist/types/components/Dialog/KDialogHost.vue.d.ts +3 -0
  33. package/dist/types/components/Dialog/KDialogItem.vue.d.ts +16 -0
  34. package/dist/types/components/Dialog/types.d.ts +61 -0
  35. package/dist/types/components/Dialog/useDialog.d.ts +41 -0
  36. package/dist/types/components/Divider/KDivider.vue.d.ts +11 -0
  37. package/dist/types/components/Divider/types.d.ts +19 -0
  38. package/dist/types/components/Dropzone/KDropzone.vue.d.ts +39 -0
  39. package/dist/types/components/Dropzone/types.d.ts +89 -0
  40. package/dist/types/components/Field/FieldIsolate.d.ts +4 -0
  41. package/dist/types/components/Field/KField.vue.d.ts +11 -0
  42. package/dist/types/components/Field/keys.d.ts +21 -0
  43. package/dist/types/components/Field/types.d.ts +35 -0
  44. package/dist/types/components/FileTree/KFileTree.vue.d.ts +2 -2
  45. package/dist/types/components/Flex/KFlex.vue.d.ts +11 -0
  46. package/dist/types/components/Flex/types.d.ts +26 -0
  47. package/dist/types/components/Input/KInput.vue.d.ts +2 -0
  48. package/dist/types/components/Input/types.d.ts +10 -0
  49. package/dist/types/components/Modal/types.d.ts +9 -1
  50. package/dist/types/components/Pagination/KPagination.vue.d.ts +13 -0
  51. package/dist/types/components/Pagination/range.d.ts +6 -0
  52. package/dist/types/components/Pagination/types.d.ts +20 -0
  53. package/dist/types/components/RadioCard/KRadioCard.vue.d.ts +20 -0
  54. package/dist/types/components/RadioCard/KRadioCardGroup.vue.d.ts +11 -0
  55. package/dist/types/components/RadioCard/types.d.ts +25 -0
  56. package/dist/types/components/SearchInput/KSearchInput.vue.d.ts +22 -0
  57. package/dist/types/components/SearchInput/types.d.ts +7 -0
  58. package/dist/types/components/SegmentedButtons/KSegmentedButton.vue.d.ts +20 -0
  59. package/dist/types/components/SegmentedButtons/KSegmentedButtons.vue.d.ts +11 -0
  60. package/dist/types/components/SegmentedButtons/types.d.ts +25 -0
  61. package/dist/types/components/Select/KSelect.vue.d.ts +2 -0
  62. package/dist/types/components/Select/types.d.ts +8 -0
  63. package/dist/types/components/Skeleton/KSkeleton.vue.d.ts +4 -0
  64. package/dist/types/components/Skeleton/types.d.ts +19 -0
  65. package/dist/types/components/Table/KTable.vue.d.ts +8 -1
  66. package/dist/types/components/Table/KTableResizer.vue.d.ts +4 -0
  67. package/dist/types/components/Table/types.d.ts +28 -1
  68. package/dist/types/components/Tabs/KTabs.vue.d.ts +1 -1
  69. package/dist/types/components/Tabs/types.d.ts +42 -3
  70. package/dist/types/components/TagsInput/KTagsInput.vue.d.ts +32 -0
  71. package/dist/types/components/TagsInput/types.d.ts +68 -0
  72. package/dist/types/components/TagsInput/useTagsInput.d.ts +27 -0
  73. package/dist/types/components/Time/KTime.vue.d.ts +18 -0
  74. package/dist/types/components/Time/types.d.ts +23 -0
  75. package/dist/types/components/TimeInput/KTimeInput.vue.d.ts +26 -0
  76. package/dist/types/components/TimeInput/types.d.ts +27 -0
  77. package/dist/types/components/TimeInput/useTimeInput.d.ts +22 -0
  78. package/dist/types/components/Toast/types.d.ts +22 -0
  79. package/dist/types/components/Toast/useToast.d.ts +14 -2
  80. package/dist/types/components/Toggle/types.d.ts +2 -0
  81. package/dist/types/components/Tooltip/triggerHandlers.d.ts +33 -0
  82. package/dist/types/components/Tooltip/types.d.ts +5 -0
  83. package/dist/types/components/Tooltip/vTooltip.d.ts +10 -0
  84. package/dist/types/components/Workspace/KWorkspace.vue.d.ts +13 -1
  85. package/dist/types/components/Workspace/types.d.ts +10 -0
  86. package/dist/types/components/index.d.ts +29 -0
  87. package/dist/types/components/types.d.ts +20 -0
  88. package/dist/types/index.d.ts +11 -2
  89. package/dist/types/utils/useCoreModule.d.ts +30 -0
  90. package/dist/types/utils/useFieldControl.d.ts +25 -0
  91. package/dist/types/utils/useRootClasses.d.ts +15 -0
  92. package/dist/types/utils/useTopmost.d.ts +3 -1
  93. package/dist/web-types.json +4927 -1307
  94. package/package.json +3 -3
@@ -1,8 +1,17 @@
1
- import { App } from 'vue';
1
+ import type { App, Component } from 'vue';
2
+ import type { KDataTableColumnType } from './components/DataTable/types';
3
+ export type KnitifyOptions = {
4
+ /**
5
+ * KDataTable column types to register, keyed by type name — the same as
6
+ * calling `registerColumnType` for each. Declare each name in
7
+ * `KDataTableColumnTypes` first.
8
+ */
9
+ columnTypes?: Partial<Record<KDataTableColumnType, Component>>;
10
+ };
2
11
  export * from './types';
3
12
  export * from './components/types';
4
13
  export * from './components';
5
14
  declare const _default: {
6
- install(app: App): void;
15
+ install(app: App, options?: KnitifyOptions): void;
7
16
  };
8
17
  export default _default;
@@ -0,0 +1,30 @@
1
+ import type { ShallowRef } from 'vue';
2
+ type Destroyable = {
3
+ destroy(): void;
4
+ };
5
+ type Options<Config, Controls> = {
6
+ root: Readonly<ShallowRef<HTMLElement | null>>;
7
+ /** Builds the core module on the root. */
8
+ create: (node: HTMLElement, config: Config) => Controls & Destroyable;
9
+ /** Read inside a watcher, so every prop it touches triggers a rebuild. */
10
+ config: () => Config;
11
+ /** Pushes the current model into a freshly built module. */
12
+ apply: (instance: Controls) => void;
13
+ listeners: Record<string, (event: CustomEvent) => void>;
14
+ };
15
+ /**
16
+ * The lifecycle the form-field wrappers share. Core reads its config once, in
17
+ * the constructor, so a config change means a rebuild rather than an update.
18
+ * Vue owns the root; core owns everything it renders inside.
19
+ */
20
+ export declare function useCoreModule<Config, Controls>({ root, create, config, apply, listeners, }: Options<Config, Controls>): {
21
+ getInstance: () => Controls | undefined;
22
+ };
23
+ /**
24
+ * Core disables a field's × while it is empty, but only when it paints. One
25
+ * the template inserts later takes its state from the root's `is-empty`,
26
+ * which core keeps current, so it never sits enabled with nothing to clear.
27
+ * Bound as a function ref: Vue calls it each time the button renders.
28
+ */
29
+ export declare function syncClearButtonFor(rootSelector: string): (element: unknown) => void;
30
+ export {};
@@ -0,0 +1,25 @@
1
+ type Attrs = Record<string, unknown>;
2
+ export type UseFieldControlOptions = {
3
+ /** The control's own `disabled` prop. */
4
+ disabled: () => boolean;
5
+ /**
6
+ * The control is a button (KSelect's toggle). A button's name comes from its
7
+ * content, so it is labelled by the field label plus itself. It takes no
8
+ * `aria-required`, which ARIA does not allow on a button, so a required
9
+ * field's hidden "required" text joins its `aria-labelledby` instead.
10
+ */
11
+ button?: boolean;
12
+ };
13
+ /**
14
+ * Merges the enclosing KField's ids and state onto a control's native element.
15
+ * Outside a KField it hands `baseAttrs` back untouched. Inside a group field
16
+ * the ARIA lives on the fieldset, so only `disabled` is inherited.
17
+ *
18
+ * A non-group field wires exactly one control: two would share its id.
19
+ */
20
+ export declare function useFieldControl(baseAttrs: () => Attrs, options: UseFieldControlOptions): {
21
+ controlAttrs: import("vue").ComputedRef<Attrs>;
22
+ isDisabled: import("vue").ComputedRef<boolean>;
23
+ field: import("..").FieldContext | undefined;
24
+ };
25
+ export {};
@@ -0,0 +1,15 @@
1
+ import { type ClassValue, type Ref } from 'vue';
2
+ /**
3
+ * Applies `classes` to `element` with `classList`, for a root whose classes
4
+ * core also writes.
5
+ *
6
+ * Core adds and removes its state classes (`is-active`, `is-shown`, …) on the
7
+ * root itself. A `:class` binding cannot share the element with it: whenever
8
+ * the bound value changes, Vue assigns `className` outright, wiping every class
9
+ * core added — so changing a modifier while the component was open hid it.
10
+ * Adding and removing only the classes this owns leaves core's alone.
11
+ *
12
+ * The root keeps its base class as a static `class` in the template. Vue
13
+ * writes that once, when the element is created, and never patches it.
14
+ */
15
+ export declare function useRootClasses(element: Readonly<Ref<HTMLElement | null>>, classes: () => ClassValue): void;
@@ -14,4 +14,6 @@ import { type Ref } from 'vue';
14
14
  * regardless of which opened last, since the latter is a persistent panel
15
15
  * rather than something Escape should dismiss.
16
16
  */
17
- export declare function useTopmost(name: string, active: Ref<boolean>, priority?: () => number): () => boolean;
17
+ export declare function useTopmost(name: string, active: Ref<boolean>, priority?: () => number): (() => boolean) & {
18
+ depth: Readonly<Ref<number, number>>;
19
+ };