@aerogel/core 0.0.0-next.c29ffcd25bffdbed37ecce3aac1ba14cde3e9d39 → 0.0.0-next.c33ad773d3eb977461630ff22012d99eeedf46cb

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 (175) hide show
  1. package/dist/aerogel-core.d.ts +1840 -1813
  2. package/dist/aerogel-core.js +3129 -0
  3. package/dist/aerogel-core.js.map +1 -0
  4. package/package.json +27 -37
  5. package/src/bootstrap/bootstrap.test.ts +4 -7
  6. package/src/bootstrap/index.ts +14 -15
  7. package/src/bootstrap/options.ts +1 -1
  8. package/src/components/{AGAppLayout.vue → AppLayout.vue} +4 -4
  9. package/src/components/{AGAppModals.vue → AppModals.vue} +3 -4
  10. package/src/components/{AGAppOverlays.vue → AppOverlays.vue} +5 -10
  11. package/src/components/AppToasts.vue +16 -0
  12. package/src/components/composition.ts +1 -1
  13. package/src/components/contracts/AlertModal.ts +4 -0
  14. package/src/components/contracts/Button.ts +16 -0
  15. package/src/components/contracts/ConfirmModal.ts +41 -0
  16. package/src/components/contracts/DropdownMenu.ts +11 -0
  17. package/src/components/contracts/ErrorReportModal.ts +29 -0
  18. package/src/components/contracts/Input.ts +26 -0
  19. package/src/components/contracts/LoadingModal.ts +18 -0
  20. package/src/components/contracts/Modal.ts +13 -0
  21. package/src/components/contracts/PromptModal.ts +28 -0
  22. package/src/components/contracts/Select.ts +33 -0
  23. package/src/components/contracts/Toast.ts +13 -0
  24. package/src/components/contracts/index.ts +9 -0
  25. package/src/components/contracts/shared.ts +9 -0
  26. package/src/components/headless/HeadlessButton.vue +50 -0
  27. package/src/components/headless/HeadlessInput.vue +59 -0
  28. package/src/components/headless/{forms/AGHeadlessInputDescription.vue → HeadlessInputDescription.vue} +7 -8
  29. package/src/components/headless/{forms/AGHeadlessInputError.vue → HeadlessInputError.vue} +4 -8
  30. package/src/components/headless/{forms/AGHeadlessInputInput.vue → HeadlessInputInput.vue} +13 -22
  31. package/src/components/headless/{forms/AGHeadlessInputLabel.vue → HeadlessInputLabel.vue} +3 -7
  32. package/src/components/headless/{forms/AGHeadlessInputTextArea.vue → HeadlessInputTextArea.vue} +8 -11
  33. package/src/components/headless/{modals/AGHeadlessModal.vue → HeadlessModal.vue} +17 -23
  34. package/src/components/headless/HeadlessModalContent.vue +24 -0
  35. package/src/components/headless/HeadlessModalOverlay.vue +12 -0
  36. package/src/components/headless/HeadlessModalTitle.vue +12 -0
  37. package/src/components/headless/HeadlessSelect.vue +92 -0
  38. package/src/components/headless/{forms/AGHeadlessSelectError.vue → HeadlessSelectError.vue} +5 -6
  39. package/src/components/headless/HeadlessSelectLabel.vue +25 -0
  40. package/src/components/headless/HeadlessSelectOption.vue +34 -0
  41. package/src/components/headless/HeadlessSelectOptions.vue +30 -0
  42. package/src/components/headless/HeadlessSelectTrigger.vue +22 -0
  43. package/src/components/headless/HeadlessSelectValue.vue +15 -0
  44. package/src/components/headless/HeadlessToast.vue +18 -0
  45. package/src/components/headless/HeadlessToastAction.vue +13 -0
  46. package/src/components/headless/index.ts +18 -3
  47. package/src/components/index.ts +4 -10
  48. package/src/components/ui/AdvancedOptions.vue +18 -0
  49. package/src/components/ui/AlertModal.vue +13 -0
  50. package/src/components/ui/Button.vue +98 -0
  51. package/src/components/ui/Checkbox.vue +56 -0
  52. package/src/components/ui/ConfirmModal.vue +42 -0
  53. package/src/components/ui/DropdownMenu.vue +33 -0
  54. package/src/components/ui/EditableContent.vue +82 -0
  55. package/src/components/ui/ErrorMessage.vue +15 -0
  56. package/src/components/ui/ErrorReportModal.vue +62 -0
  57. package/src/components/{modals/AGErrorReportModalButtons.vue → ui/ErrorReportModalButtons.vue} +34 -27
  58. package/src/components/ui/ErrorReportModalTitle.vue +24 -0
  59. package/src/components/{forms/AGForm.vue → ui/Form.vue} +4 -5
  60. package/src/components/ui/Input.vue +56 -0
  61. package/src/components/ui/Link.vue +12 -0
  62. package/src/components/ui/LoadingModal.vue +32 -0
  63. package/src/components/ui/Markdown.vue +69 -0
  64. package/src/components/ui/Modal.vue +70 -0
  65. package/src/components/{modals/AGModalContext.vue → ui/ModalContext.vue} +7 -9
  66. package/src/components/ui/ProgressBar.vue +50 -0
  67. package/src/components/ui/PromptModal.vue +35 -0
  68. package/src/components/ui/Select.vue +53 -0
  69. package/src/components/{lib/AGStartupCrash.vue → ui/StartupCrash.vue} +8 -8
  70. package/src/components/ui/Toast.vue +42 -0
  71. package/src/components/ui/index.ts +23 -0
  72. package/src/components/utils.ts +106 -9
  73. package/src/directives/index.ts +9 -5
  74. package/src/directives/measure.ts +1 -1
  75. package/src/errors/Errors.state.ts +1 -1
  76. package/src/errors/Errors.ts +17 -18
  77. package/src/errors/index.ts +9 -6
  78. package/src/errors/utils.ts +1 -1
  79. package/src/forms/{Form.test.ts → FormController.test.ts} +5 -4
  80. package/src/forms/{Form.ts → FormController.ts} +22 -19
  81. package/src/forms/composition.ts +4 -4
  82. package/src/forms/index.ts +2 -2
  83. package/src/forms/utils.ts +2 -2
  84. package/src/index.css +41 -0
  85. package/src/jobs/Job.ts +2 -2
  86. package/src/lang/DefaultLangProvider.ts +7 -4
  87. package/src/lang/Lang.state.ts +1 -1
  88. package/src/lang/Lang.ts +1 -1
  89. package/src/lang/index.ts +8 -6
  90. package/src/plugins/Plugin.ts +1 -1
  91. package/src/plugins/index.ts +10 -7
  92. package/src/services/App.state.ts +4 -3
  93. package/src/services/App.ts +4 -4
  94. package/src/services/Cache.ts +1 -1
  95. package/src/services/Events.ts +2 -2
  96. package/src/services/Service.ts +21 -21
  97. package/src/services/Storage.ts +3 -3
  98. package/src/services/index.ts +5 -4
  99. package/src/services/utils.ts +2 -2
  100. package/src/testing/index.ts +4 -3
  101. package/src/testing/setup.ts +3 -19
  102. package/src/ui/UI.state.ts +12 -7
  103. package/src/ui/UI.ts +63 -58
  104. package/src/ui/index.ts +18 -18
  105. package/src/utils/composition/events.ts +2 -2
  106. package/src/utils/composition/forms.ts +4 -3
  107. package/src/utils/markdown.ts +3 -5
  108. package/src/utils/vdom.ts +31 -0
  109. package/src/utils/vue.ts +7 -16
  110. package/dist/aerogel-core.cjs.js +0 -2
  111. package/dist/aerogel-core.cjs.js.map +0 -1
  112. package/dist/aerogel-core.esm.js +0 -2
  113. package/dist/aerogel-core.esm.js.map +0 -1
  114. package/histoire.config.ts +0 -7
  115. package/noeldemartin.config.js +0 -5
  116. package/postcss.config.js +0 -6
  117. package/src/assets/histoire.css +0 -3
  118. package/src/components/AGAppSnackbars.vue +0 -13
  119. package/src/components/constants.ts +0 -8
  120. package/src/components/forms/AGButton.vue +0 -44
  121. package/src/components/forms/AGCheckbox.vue +0 -41
  122. package/src/components/forms/AGInput.vue +0 -40
  123. package/src/components/forms/AGSelect.story.vue +0 -46
  124. package/src/components/forms/AGSelect.vue +0 -60
  125. package/src/components/forms/index.ts +0 -5
  126. package/src/components/headless/forms/AGHeadlessButton.ts +0 -3
  127. package/src/components/headless/forms/AGHeadlessButton.vue +0 -62
  128. package/src/components/headless/forms/AGHeadlessInput.ts +0 -34
  129. package/src/components/headless/forms/AGHeadlessInput.vue +0 -70
  130. package/src/components/headless/forms/AGHeadlessSelect.ts +0 -42
  131. package/src/components/headless/forms/AGHeadlessSelect.vue +0 -77
  132. package/src/components/headless/forms/AGHeadlessSelectButton.vue +0 -24
  133. package/src/components/headless/forms/AGHeadlessSelectLabel.vue +0 -24
  134. package/src/components/headless/forms/AGHeadlessSelectOption.ts +0 -4
  135. package/src/components/headless/forms/AGHeadlessSelectOption.vue +0 -39
  136. package/src/components/headless/forms/AGHeadlessSelectOptions.ts +0 -3
  137. package/src/components/headless/forms/composition.ts +0 -10
  138. package/src/components/headless/forms/index.ts +0 -18
  139. package/src/components/headless/modals/AGHeadlessModal.ts +0 -36
  140. package/src/components/headless/modals/AGHeadlessModalPanel.vue +0 -32
  141. package/src/components/headless/modals/AGHeadlessModalTitle.vue +0 -23
  142. package/src/components/headless/modals/index.ts +0 -4
  143. package/src/components/headless/snackbars/AGHeadlessSnackbar.vue +0 -10
  144. package/src/components/headless/snackbars/index.ts +0 -40
  145. package/src/components/interfaces.ts +0 -24
  146. package/src/components/lib/AGErrorMessage.vue +0 -16
  147. package/src/components/lib/AGLink.vue +0 -9
  148. package/src/components/lib/AGMarkdown.vue +0 -54
  149. package/src/components/lib/AGMeasured.vue +0 -16
  150. package/src/components/lib/AGProgressBar.vue +0 -45
  151. package/src/components/lib/index.ts +0 -6
  152. package/src/components/modals/AGAlertModal.ts +0 -18
  153. package/src/components/modals/AGAlertModal.vue +0 -14
  154. package/src/components/modals/AGConfirmModal.ts +0 -42
  155. package/src/components/modals/AGConfirmModal.vue +0 -26
  156. package/src/components/modals/AGErrorReportModal.ts +0 -49
  157. package/src/components/modals/AGErrorReportModal.vue +0 -54
  158. package/src/components/modals/AGErrorReportModalTitle.vue +0 -25
  159. package/src/components/modals/AGLoadingModal.ts +0 -29
  160. package/src/components/modals/AGLoadingModal.vue +0 -15
  161. package/src/components/modals/AGModal.ts +0 -11
  162. package/src/components/modals/AGModal.vue +0 -39
  163. package/src/components/modals/AGModalContext.ts +0 -8
  164. package/src/components/modals/AGModalTitle.vue +0 -9
  165. package/src/components/modals/AGPromptModal.ts +0 -41
  166. package/src/components/modals/AGPromptModal.vue +0 -34
  167. package/src/components/modals/index.ts +0 -17
  168. package/src/components/snackbars/AGSnackbar.vue +0 -36
  169. package/src/components/snackbars/index.ts +0 -3
  170. package/src/directives/initial-focus.ts +0 -11
  171. package/src/main.histoire.ts +0 -1
  172. package/tailwind.config.js +0 -4
  173. package/tsconfig.json +0 -11
  174. package/vite.config.ts +0 -17
  175. /package/src/{main.ts → index.ts} +0 -0
@@ -1,8 +0,0 @@
1
- import type { Ref } from 'vue';
2
-
3
- import type { Modal } from '@/ui/UI.state';
4
-
5
- export interface IAGModalContext {
6
- modal: Ref<Modal>;
7
- childIndex: Ref<number>;
8
- }
@@ -1,9 +0,0 @@
1
- <template>
2
- <AGHeadlessModalTitle class="mb-2 font-semibold">
3
- <slot />
4
- </AGHeadlessModalTitle>
5
- </template>
6
-
7
- <script setup lang="ts">
8
- import AGHeadlessModalTitle from '../headless/modals/AGHeadlessModalTitle.vue';
9
- </script>
@@ -1,41 +0,0 @@
1
- import { computed } from 'vue';
2
- import type { ExtractPropTypes } from 'vue';
3
- import type { ObjectWithout, Pretty, SubPartial } from '@noeldemartin/utils';
4
-
5
- import { Colors } from '@/components/constants';
6
- import { enumProp, requiredStringProp, stringProp } from '@/utils';
7
- import { translateWithDefault } from '@/lang';
8
- import type { AcceptRefs } from '@/utils';
9
-
10
- export const promptModalProps = {
11
- title: stringProp(),
12
- message: requiredStringProp(),
13
- label: stringProp(),
14
- defaultValue: stringProp(),
15
- placeholder: stringProp(),
16
- acceptText: stringProp(),
17
- acceptColor: enumProp(Colors, Colors.Primary),
18
- cancelText: stringProp(),
19
- cancelColor: enumProp(Colors, Colors.Clear),
20
- };
21
-
22
- export type AGPromptModalProps = Pretty<
23
- AcceptRefs<
24
- SubPartial<
25
- ObjectWithout<ExtractPropTypes<typeof promptModalProps>, null | undefined>,
26
- 'acceptColor' | 'cancelColor'
27
- >
28
- >
29
- >;
30
-
31
- export function usePromptModalProps(): typeof promptModalProps {
32
- return promptModalProps;
33
- }
34
-
35
- // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
36
- export function usePromptModal(props: ExtractPropTypes<typeof promptModalProps>) {
37
- const renderedAcceptText = computed(() => props.acceptText ?? translateWithDefault('ui.accept', 'Ok'));
38
- const renderedCancelText = computed(() => props.cancelText ?? translateWithDefault('ui.cancel', 'Cancel'));
39
-
40
- return { renderedAcceptText, renderedCancelText };
41
- }
@@ -1,34 +0,0 @@
1
- <template>
2
- <AGModal v-slot="{ close }: IAGModalDefaultSlotProps" :cancellable="false" :title="title">
3
- <AGMarkdown :text="message" />
4
-
5
- <AGForm :form="form" @submit="close(form.draft)">
6
- <AGInput name="draft" :placeholder="placeholder" :label="label" />
7
-
8
- <div class="mt-2 flex flex-row-reverse gap-2">
9
- <AGButton :color="acceptColor" submit>
10
- {{ renderedAcceptText }}
11
- </AGButton>
12
- <AGButton :color="cancelColor" @click="close()">
13
- {{ renderedCancelText }}
14
- </AGButton>
15
- </div>
16
- </AGForm>
17
- </AGModal>
18
- </template>
19
-
20
- <script setup lang="ts">
21
- import AGModal from './AGModal.vue';
22
- import { usePromptModal, usePromptModalProps } from './AGPromptModal';
23
- import type { IAGModalDefaultSlotProps } from './AGModal';
24
-
25
- import AGButton from '../forms/AGButton.vue';
26
- import AGForm from '../forms/AGForm.vue';
27
- import AGInput from '../forms/AGInput.vue';
28
- import AGMarkdown from '../lib/AGMarkdown.vue';
29
- import { requiredStringInput, useForm } from '../../forms';
30
-
31
- const props = defineProps(usePromptModalProps());
32
- const form = useForm({ draft: requiredStringInput(props.defaultValue ?? '') });
33
- const { renderedAcceptText, renderedCancelText } = usePromptModal(props);
34
- </script>
@@ -1,17 +0,0 @@
1
- export * from './AGAlertModal';
2
- export * from './AGConfirmModal';
3
- export * from './AGErrorReportModal';
4
- export * from './AGLoadingModal';
5
- export * from './AGModal';
6
- export * from './AGModalContext';
7
- export * from './AGPromptModal';
8
-
9
- export { default as AGAlertModal } from './AGAlertModal.vue';
10
- export { default as AGConfirmModal } from './AGConfirmModal.vue';
11
- export { default as AGErrorReportModalButtons } from './AGErrorReportModalButtons.vue';
12
- export { default as AGErrorReportModalTitle } from './AGErrorReportModalTitle.vue';
13
- export { default as AGLoadingModal } from './AGLoadingModal.vue';
14
- export { default as AGModal } from './AGModal.vue';
15
- export { default as AGModalContext } from './AGModalContext.vue';
16
- export { default as AGModalTitle } from './AGModalTitle.vue';
17
- export { default as AGPromptModal } from './AGPromptModal.vue';
@@ -1,36 +0,0 @@
1
- <template>
2
- <AGHeadlessSnackbar class="flex flex-row items-center justify-center gap-3 p-4" :class="styleClasses">
3
- <AGMarkdown :text="message" inline />
4
- <AGButton
5
- v-for="(action, i) of actions"
6
- :key="i"
7
- :color="color"
8
- @click="activate(action)"
9
- >
10
- {{ action.text }}
11
- </AGButton>
12
- </AGHeadlessSnackbar>
13
- </template>
14
-
15
- <script setup lang="ts">
16
- import { computed } from 'vue';
17
-
18
- import { Colors } from '@/components/constants';
19
- import { useSnackbar, useSnackbarProps } from '@/components/headless/snackbars';
20
-
21
- import AGButton from '../forms/AGButton.vue';
22
- import AGHeadlessSnackbar from '../headless/snackbars/AGHeadlessSnackbar.vue';
23
- import AGMarkdown from '../lib/AGMarkdown.vue';
24
-
25
- const props = defineProps(useSnackbarProps());
26
- const { activate } = useSnackbar(props);
27
- const styleClasses = computed(() => {
28
- switch (props.color) {
29
- case Colors.Danger:
30
- return 'bg-red-200 text-red-900';
31
- default:
32
- case Colors.Secondary:
33
- return 'bg-gray-900 text-white';
34
- }
35
- });
36
- </script>
@@ -1,3 +0,0 @@
1
- import AGSnackbar from './AGSnackbar.vue';
2
-
3
- export { AGSnackbar };
@@ -1,11 +0,0 @@
1
- import { defineDirective } from '@/utils/vue';
2
-
3
- export default defineDirective({
4
- mounted(element: HTMLElement, { value }) {
5
- if (value === false) {
6
- return;
7
- }
8
-
9
- element.focus();
10
- },
11
- });
@@ -1 +0,0 @@
1
- import './assets/histoire.css';
@@ -1,4 +0,0 @@
1
- /** @type {import('tailwindcss').Config} */
2
- module.exports = {
3
- content: ['./src/**/*.{vue,ts}'],
4
- };
package/tsconfig.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "types": ["unplugin-icons/types/vue3", "@aerogel/vite/dist/virtual"],
5
- "baseUrl": ".",
6
- "paths": {
7
- "@/*": ["./src/*"]
8
- }
9
- },
10
- "include": ["src/**/*.ts", "src/**/*.vue"]
11
- }
package/vite.config.ts DELETED
@@ -1,17 +0,0 @@
1
- import Aerogel from '@aerogel/vite';
2
- import Icons from 'unplugin-icons/vite';
3
- import { defineConfig } from 'vitest/config';
4
- import { resolve } from 'path';
5
-
6
- export default defineConfig({
7
- test: {
8
- clearMocks: true,
9
- setupFiles: ['./src/testing/setup.ts'],
10
- },
11
- plugins: [Aerogel(), Icons()],
12
- resolve: {
13
- alias: {
14
- '@': resolve(__dirname, './src'),
15
- },
16
- },
17
- });
File without changes