@ulu/frontend-vue 0.6.16 → 0.6.18

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.
@@ -27,6 +27,22 @@
27
27
  "code": "<toast>Content</toast>"
28
28
  }
29
29
  ],
30
+ "useTooltipFollow": [
31
+ {
32
+ "title": "Default",
33
+ "description": "Default variation",
34
+ "code": "<useTooltipFollow>Content</useTooltipFollow>"
35
+ }
36
+ ],
37
+ "useTooltip": [],
38
+ "tooltip": [
39
+ {
40
+ "title": "Basic",
41
+ "description": "Basic variation",
42
+ "code": "<tooltip>This is a basic tooltip!</tooltip>"
43
+ }
44
+ ],
45
+ "UluPopover": [],
30
46
  "useModals": [],
31
47
  "modals": [
32
48
  {
@@ -60,22 +76,6 @@
60
76
  "code": "<template>\n <button @click=\"showSettingsModal\">My Settings</button>\n</template>\n\n<script setup>\n import { useModals } from \"./useModals\";\n\n const modals = useModals();\n const showSettingsModal = () => {\n console.log(\"This is opening via uluModals composable\");\n modals.open(\"settings\");\n };\n</script>"
61
77
  }
62
78
  ],
63
- "useTooltipFollow": [
64
- {
65
- "title": "Default",
66
- "description": "Default variation",
67
- "code": "<useTooltipFollow>Content</useTooltipFollow>"
68
- }
69
- ],
70
- "useTooltip": [],
71
- "tooltip": [
72
- {
73
- "title": "Basic",
74
- "description": "Basic variation",
75
- "code": "<tooltip>This is a basic tooltip!</tooltip>"
76
- }
77
- ],
78
- "UluPopover": [],
79
79
  "UluProgressCircle": [],
80
80
  "UluProgressBar": [],
81
81
  "UluAnimateNumber": [],
@@ -620,7 +620,6 @@
620
620
  "code": "<script setup>\n import { ref, computed, provide } from \"vue\";\n import { useBreakpointManager } from \"./useBreakpointManager.js\";\n\n const isMobile = ref(false);\n\n // Example using the onReady callback to set reactive value isMobile\n // - In this situation isMobile is being used as a primary change in \n // the applications layout \n const options = { \n onReady(manager) {\n manager.at(\"small\").max(() => isMobile.value = true);\n manager.at(\"large\").min(() => isMobile.value = false);\n }\n };\n\n // Composable returns the following\n const { \n /**\n * Reference to underlying BreakpointManager class\n */\n breakpointManager, \n /**\n * Active breakpoint name\n */\n breakpointActive, \n /**\n * Current resizeDirection (\"up\"|\"down\"|null)\n */\n breakpointDirection \n } = useBreakpointManager(options);\n\n\n // Allowing all components to access these values\n provide(\"uluBreakpointActive\", computed(() => breakpointActive));\n provide(\"uluBreakpointDirection\", computed(() => breakpointDirection));\n provide(\"uluBreakpointManager\", computed(() => breakpointManager));\n provide(\"uluIsMobile\", computed(() => isMobile));\n\n</script>"
621
621
  }
622
622
  ],
623
- "forms": [],
624
623
  "core": [
625
624
  {
626
625
  "title": "core Example 1",
@@ -645,6 +644,7 @@
645
644
  "code": "<script>\nexport default {\n inject: ['uluIsMobile', 'uluBreakpointActive'],\n mounted() {\n console.log('Is mobile?', this.uluIsMobile);\n }\n}\n</script>"
646
645
  }
647
646
  ],
647
+ "forms": [],
648
648
  "useScrollAnchors": [
649
649
  {
650
650
  "title": "useScrollAnchors Example 1",
@@ -691,8 +691,8 @@
691
691
  },
692
692
  {
693
693
  "name": "classes",
694
- "type": "object",
695
- "default": "{\n content: \"type-small\",\n date: \"type-small-x\",\n actions: \"type-small-x\",\n action: \"button button--small button--outline\",\n closeButton: \"button button--icon button--transparent\"\n}",
694
+ "type": "object|boolean|func",
695
+ "default": "() => ({})",
696
696
  "description": "Icons for each element { icon, header, content, date, actions, action, closeButton, title, body, closeButton }"
697
697
  }
698
698
  ],
@@ -4893,11 +4893,11 @@
4893
4893
  "name": "classes",
4894
4894
  "description": "Icons for each element { icon, header, content, date, actions, action, closeButton, title, body, closeButton }",
4895
4895
  "type": {
4896
- "name": "object"
4896
+ "name": "object|boolean|func"
4897
4897
  },
4898
4898
  "defaultValue": {
4899
- "func": false,
4900
- "value": "{\n content: \"type-small\",\n date: \"type-small-x\",\n actions: \"type-small-x\",\n action: \"button button--small button--outline\",\n closeButton: \"button button--icon button--transparent\"\n}"
4899
+ "func": true,
4900
+ "value": "() => ({})"
4901
4901
  }
4902
4902
  }
4903
4903
  ],
@@ -12239,7 +12239,7 @@
12239
12239
  "raw_markdown": "\nimport { Meta, Story, Canvas } from '@storybook/addon-docs/blocks';\nimport { version } from '../package.json';\nimport * as ButtonStories from './components/elements/UluButton.stories.js';\nimport * as CardStories from './components/elements/UluCard.stories.js';\n\n<Meta title=\"Overview/Introduction\" />\n\n# Ulu Frontend Vue\n\nWelcome to the living style guide for the Ulu Vue component library. This library provides a comprehensive set of accessible, reusable, and composable Vue 3 components, composables, and plugins to build modern web applications.\n\nThis documentation provides interactive examples and detailed API documentation for each part of the library.\n\n---\n\n## Core Concepts\n\nThe Ulu ecosystem is built on two main packages:\n\n- **`@ulu/frontend`**: The framework-agnostic core. It contains the foundational SCSS for styling, vanilla JavaScript utilities, and base components. It knows nothing about Vue. \n- **`@ulu/frontend-vue`** (This Library): The Vue 3 implementation. It provides wrapper components, composables, and plugins that build upon and integrate seamlessly with the `@ulu/frontend` core.\n\nThis separation allows for a consistent design system that can be applied to any web technology, while providing a rich, idiomatic experience for Vue developers.\n\n**Note:** For `@ulu/frontend` (components) that you are using from this Vue library. You need to output the component stylesheets like you would normally (create global stylesheet). The components in this library do not at the frontend scss modules. While they could be included in each component this would make it so that you can't build your own implementations (local app component / etc) with the class structures since the styles would only be available if that component is used. \n\nExample global stylesheet outputting all \"included\" components and base styles. Note you can configure whats output with ulu.component-set-includes for example. Note there are many ways to assemble the stylesheet (manual per component mixins, etc), this example shows the convenience modules which output each modules stylesheet based on includes/excludes.\n\n```sass\n@use \"config\"; // Your config changes for example\n@use \"@ulu/frontend/scss/stylesheets/base-styles.scss\"; // Outputs base styles that are included\n@use \"@ulu/frontend/scss/stylesheets/component-styles.scss\"; // Outputs component styles that are included\n@use \"@ulu/frontend/scss/stylesheets/helper-styles.scss\"; // Outputs helper styles that are included\n```\n\n*Please see `@ulu/frontend` library for full documentation of configuring and outputting stylesheet*\n\n---\n\n## Installation\n\nTo get started, add the library to your project.\n\n```bash\nnpm install @ulu/frontend-vue\n```\n\nNext, you must register the required plugins in your main application entry point (`main.js`). The `corePlugin` is essential, and other plugins like `breakpointsPlugin`, `popoverPlugin` are optional. Some components require plugins. If a required plugin is missing, an error is thrown.\n\n**`src/main.js`**\n```javascript\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport { \n corePlugin, \n breakpointsPlugin, \n toastPlugin, \n modalsPlugin, \n popoversPlugin \n} from '@ulu/frontend-vue';\nimport router from './router'; // Your vue-router instance\n\n// Import the main SCSS entry point\nimport '@ulu/frontend-vue/lib/_index.scss';\n\nconst app = createApp(App);\n\napp.use(router);\n\n// Register Ulu plugins\napp.use(corePlugin, {\n // Optional: override default icons\n iconsByType: {\n danger: 'fas fa-exclamation-triangle',\n close: 'fas fa-times'\n }\n});\napp.use(breakpointsPlugin);\napp.use(toastPlugin);\napp.use(modalsPlugin, { \n modals: [\n /* your global modals */\n ] \n});\napp.use(popoversPlugin);\n\n\napp.mount('#app');\n```\n\nFinally, you need to add the display components for plugins like `toast` and `modals` to your root `App.vue` file.\n\n**`src/App.vue`**\n```html\n<template>\n <!-- Your App Layout -->\n <router-view />\n\n <!-- Ulu Plugin Display Components -->\n <UluToastDisplay />\n <UluModalsDisplay />\n <UluTooltipDisplay />\n</template>\n```\n\n---\n\n## What's Inside?\n\nThe library is organized into several key areas:\n\n### Components\n\nThese are the reusable building blocks of your UI. They are organized by function into categories like `elements`, `collapsible`, `forms`, `layout`, `navigation`, and `systems`.\n\n**Simple Component Example: `UluButton`**\n\n<Canvas of={ButtonStories.Primary} />\n\n**Complex Component Example: `UluCard`**\n\n<Canvas of={CardStories.Default} />\n\n### Composables\n\nReusable, stateful logic that can be shared across components.\n\n- `useFacets`: A powerful composable for client-side filtering, searching, and sorting of data.\n- `usePagination`: Handles all the logic for paginating a list of items, including integration with Vue Router.\n- `useBreakpointManager`: A reactive interface to CSS breakpoints.\n- `useModifiers`: A utility for creating BEM-style modifier classes.\n- `useWindowResize`: A debounced window resize event listener.\n- `useRequiredInject`: A utility to ensure required dependencies are injected from plugins.\n\n### Plugins\n\nPlugins provide global functionality and APIs that can be accessed from anywhere in your application.\n\n- **`corePlugin` (Required)**: Manages global settings, primarily for the icon system.\n- **`breakpointsPlugin`**: Provides reactive information about the current CSS breakpoint (`uluIsMobile`, `uluBreakpointActive`).\n- **`modalsPlugin`**: A system for registering and triggering global modals (e.g., for settings or confirmation dialogs).\n- **`toastPlugin`**: A global API (`$uluToast`) for showing toast notifications.\n- **`popoversPlugin`**: Enables a simple `v-ulu-tooltip` directive for tooltips and provides the `UluPopover` component.\n\n**Example: Triggering a Toast Notification**\n```javascript\nimport { useToast } from '@ulu/frontend-vue';\n\nconst toast = useToast();\n\ntoast.add({\n title: 'Success!',\n description: 'Your profile has been updated.',\n class: 'is-success'\n});\n```\n\n### Component Systems\n\nSystems are complex, multi-component features that solve a specific problem.\n\n- **Facets**: A complete system for faceted search, built around the `useFacets` composable. Includes components for search, sort, filters, and results display.\n- **Scroll Anchors**: A system for creating navigations that track the user's scroll position within a page.\n- **Skeleton**: A set of components for creating beautiful and effective loading states.\n- **Table Sticky**: A powerful table component with sticky headers and columns.\n- **Slider**: A flexible slideshow/carousel component.\n\n### Resolver\n\nResolver for [`unplugin-vue-components`](https://github.com/unplugin/unplugin-vue-components/tree/main]) is available to use like:\n\n```js\n// vite.config.js\n\nimport { defineConfig } from \"vite\";\nimport Components from \"unplugin-vue-components/vite\";\nimport { UluUnpluginResolver } from \"@ulu/frontend-vue/resolver\";\n\nexport default defineConfig({\n plugins: [\n // ...\n Components({ \n resolvers: [\n UluUnpluginResolver()\n ]\n }),\n // ...\n ],\n // ...\n});\n```\n\n### Vite Asset URLs\n\nWhen using components like `UluImage` and `UluImageSource`, you may want to pass relative asset paths directly as props (e.g. `<UluImage src=\"./assets/img.png\" />`) instead of manually importing them in your setup script. \n\nTo enable Vite to automatically resolve these paths, you can add our custom transform rules to the Vue plugin in your `vite.config.js`:\n\n*Note: this includes the defaults (img, source, video, ...) in addition to the Ulu specific components, since configuring this clears the defaults (it's not merged).*\n\n```js\n// vite.config.js\n\nimport { defineConfig } from \"vite\";\nimport vue from \"@vitejs/plugin-vue\";\nimport { uluTransformAssetUrls } from \"@ulu/frontend-vue/vite.js\";\n\nexport default defineConfig({\n plugins: [\n vue({\n template: {\n transformAssetUrls: {\n // \n ...uluTransformAssetUrls\n }\n }\n }),\n // ...\n ],\n // ...\n});\n```"
12240
12240
  },
12241
12241
  "ExportsMap": {
12242
- "raw_markdown": "\nimport { Meta } from '@storybook/addon-docs/blocks';\n\n<Meta title=\"Overview/API Reference\" />\n\n# API Reference\n\nThis page provides a comprehensive map of all named exports from the `@ulu/frontend-vue` library. Use this as a quick reference to discover available components, composables, plugins, and utilities.\n\n## Components\n\nThese are the building blocks for your UI. They are imported as named exports.\n\n* `UluAccordion`\n* `UluAccordionGroup`\n* `UluAction`\n* `UluAdaptiveLayout`\n* `UluAlert`\n* `UluAnimateNumber`\n* `UluBadge`\n* `UluBadgeStack`\n* `UluBreadcrumb`\n* `UluButton`\n* `UluButtonVerbose`\n* `UluCallout`\n* `UluCard`\n* `UluCollapsible`\n* `UluConditionalText`\n* `UluConditionalWrapper`\n* `UluDataGrid`\n* `UluDataTable`\n* `UluDefinitionList`\n* `UluDefinitionListItem`\n* `UluDropdown`\n* `UluEmpty`\n* `UluEmptyView`\n* `UluExternalLink`\n* `UluFacetsActiveFilters`\n* `UluFacetsFilterAccordions`\n* `UluFacetsFilterLists`\n* `UluFacetsFilterPopovers`\n* `UluFacetsFilterSelects`\n* `UluFacetsHeaderLayout`\n* `UluFacetsList`\n* `UluFacetsResults`\n* `UluFacetsSearch`\n* `UluFacetsSidebarLayout`\n* `UluFacetsSort`\n* `UluFileDisplay`\n* `UluForm`\n* `UluFormActions`\n* `UluFormCheckbox`\n* `UluFormFieldset`\n* `UluFormFile`\n* `UluFormItem`\n* `UluFormItemsInline`\n* `UluFormLabel`\n* `UluFormMessage`\n* `UluFormRadio`\n* `UluFormRequiredChar`\n* `UluFormSelect`\n* `UluFormText`\n* `UluFormTextarea`\n* `UluIcon`\n* `UluImage`\n* `UluImageSource`\n* In Progress - `UluImageSlider`\n* `UluList`\n* `UluListItem`\n* `UluCounterList`\n* `UluMain`\n* `UluMenu`\n* `UluMenuStack`\n* `UluModal`\n* `UluNavStrip`\n* `UluOverflowPopover`\n* `UluPager`\n* `UluPlaceholderImage`\n* `UluPlaceholderText`\n* `UluProgressBar`\n* `UluProgressCircle`\n* `UluRouteAnnouncer`\n* `UluRule`\n* `UluSanityRichText`\n* `UluScrollAnchors`\n* `UluScrollAnchorsHeadlessSection`\n* `UluScrollAnchorsNav`\n* `UluScrollAnchorsNavAnimated`\n* `UluScrollAnchorsSection`\n* `UluScrollSlider`\n* `UluSearchForm`\n* `UluSelectableMenu`\n* `UluShowSkeleton`\n* `UluSkeletonContent`\n* `UluSkeletonMedia`\n* `UluSkeletonText`\n* `UluSkipLink`\n* `UluSlider`\n* `UluSpokeSpinner`\n* `UluTab`\n* `UluTabGroup`\n* `UluTabList`\n* `UluTabPanel`\n* `UluTabPanels`\n* `UluTable`\n* `UluTableSticky`\n* `UluTableStickyRows`\n* `UluTableStickyTable`\n* `UluTag`\n* `UluTitleRail`\n\n---\n\n## Composables\n\nReusable, stateful logic that can be shared across components.\n\n* `useBreakpointManager`\n* `useDocumentTitle`\n* `useFacets`\n* `useIcon`\n* `useModifiers`\n* `usePagination`\n* `useRequiredInject`\n* `useScrollAnchorSection`\n* `useScrollAnchorSections`\n* `useScrollAnchors`\n* `useTableData`\n* `useToast`\n* `useTooltip`\n* `useTooltipFollow`\n* `useUluFloating`\n* `useWindowResize`\n\n---\n\n## Plugins\n\nPlugins provide global functionality and APIs.\n\n* `breakpointsPlugin`\n* `corePlugin`\n* `modalsPlugin`\n* `popoversPlugin`\n* `toastPlugin`\n\n\n\n---\n\n## Utilities\n\nThe `utils` export is a namespace containing helper functions.\n\n* `utils.dom`\n* `utils.router`\n\n`\n* `utils.router`\n"
12242
+ "raw_markdown": "\nimport { Meta } from '@storybook/addon-docs/blocks';\n\n<Meta title=\"Overview/API Reference\" />\n\n# API Reference\n\nThis page provides a comprehensive map of all named exports from the `@ulu/frontend-vue` library. Use this as a quick reference to discover available components, composables, plugins, and utilities.\n\n## Components\n\nThese are the building blocks for your UI. They are imported as named exports.\n\n* `UluAccordion`\n* `UluAccordionGroup`\n* `UluAction`\n* `UluAdaptiveLayout`\n* `UluAlert`\n* `UluAnimateNumber`\n* `UluBadge`\n* `UluBadgeStack`\n* `UluBreadcrumb`\n* `UluButton`\n* `UluButtonVerbose`\n* `UluCallout`\n* `UluCard`\n* `UluCollapsible`\n* `UluConditionalText`\n* `UluConditionalWrapper`\n* `UluDataGrid`\n* `UluDataTable`\n* `UluDefinitionList`\n* `UluDefinitionListItem`\n* `UluDropdown`\n* `UluEmpty`\n* `UluEmptyView`\n* `UluExternalLink`\n* `UluFacetsActiveFilters`\n* `UluFacetsFilterAccordions`\n* `UluFacetsFilterLists`\n* `UluFacetsFilterPopovers`\n* `UluFacetsFilterSelects`\n* `UluFacetsHeaderLayout`\n* `UluFacetsList`\n* `UluFacetsResults`\n* `UluFacetsSearch`\n* `UluFacetsSidebarLayout`\n* `UluFacetsSort`\n* `UluFileDisplay`\n* `UluForm`\n* `UluFormActions`\n* `UluFormCheckbox`\n* `UluFormFieldset`\n* `UluFormFile`\n* `UluFormItem`\n* `UluFormItemsInline`\n* `UluFormLabel`\n* `UluFormMessage`\n* `UluFormRadio`\n* `UluFormRequiredChar`\n* `UluFormSelect`\n* `UluFormText`\n* `UluFormTextarea`\n* `UluIcon`\n* `UluImage`\n* `UluImageSource`\n* In Progress - `UluImageSlider`\n* `UluList`\n* `UluListItem`\n* `UluCounterList`\n* `UluMain`\n* `UluMenu`\n* `UluMenuStack`\n* `UluModal`\n* `UluNavStrip`\n* `UluOverflowPopover`\n* `UluPager`\n* `UluPlaceholderImage`\n* `UluPlaceholderText`\n* `UluProgressBar`\n* `UluProgressCircle`\n* `UluRouteAnnouncer`\n* `UluRule`\n* `UluSanityRichText`\n* `UluScrollAnchors`\n* `UluScrollAnchorsHeadlessSection`\n* `UluScrollAnchorsNav`\n* `UluScrollAnchorsNavAnimated`\n* `UluScrollAnchorsSection`\n* `UluScrollSlider`\n* `UluSearchForm`\n* `UluSelectableMenu`\n* `UluShowSkeleton`\n* `UluSkeletonContent`\n* `UluSkeletonMedia`\n* `UluSkeletonText`\n* `UluSkipLink`\n* `UluSlider`\n* `UluSpokeSpinner`\n* `UluTab`\n* `UluTabGroup`\n* `UluTabList`\n* `UluTabPanel`\n* `UluTabPanels`\n* `UluTable`\n* `UluTableSticky`\n* `UluTableStickyRows`\n* `UluTableStickyTable`\n* `UluTag`\n* `UluTitleRail`\n* `UluToast`\n* `UluToastDisplay`\n\n---\n\n## Composables\n\nReusable, stateful logic that can be shared across components.\n\n* `useBreakpointManager`\n* `useDocumentTitle`\n* `useFacets`\n* `useIcon`\n* `useModifiers`\n* `usePagination`\n* `useRequiredInject`\n* `useScrollAnchorSection`\n* `useScrollAnchorSections`\n* `useScrollAnchors`\n* `useTableData`\n* `useToast`\n* `useTooltip`\n* `useTooltipFollow`\n* `useUluFloating`\n* `useWindowResize`\n\n---\n\n## Plugins\n\nPlugins provide global functionality and APIs.\n\n* `breakpointsPlugin`\n* `corePlugin`\n* `modalsPlugin`\n* `popoversPlugin`\n* `toastPlugin`\n\n\n\n---\n\n## Utilities\n\nThe `utils` export is a namespace containing helper functions.\n\n### DOM (`utils.dom`)\n\n* `utils.dom.refToElement`\n* `utils.dom.newId`\n\n### Props (`utils.props`)\n\n* `utils.props.isArrayOfObjects`\n* `utils.props.checkDeprecatedProps`\n* `utils.props.mergeClassLookups`\n\n### Router (`utils.router`)\n\n* `utils.router.getRouteTitle`\n* `utils.router.createBaseMenu`\n* `utils.router.flattenMenu`\n* `utils.router.createSectionMenu`\n* `utils.router.getChildIndexRoute`\n* `utils.router.createMenuItem`\n* `utils.router.isStaticRoute`\n* `utils.router.isStaticBaseRoute`\n* `utils.router.nativeLinkRouter`\n* `utils.router.$getRouteChildren`\n* `utils.router.$getParentRoute`\n* `utils.router.$createSectionMenu`\n* `utils.router.$createBreadcrumb`\n"
12243
12243
  },
12244
12244
  "ChangeLog": {
12245
12245
  "raw_markdown": "import { Meta, Markdown } from '@storybook/addon-docs/blocks';\nimport CHANGELOG from '../CHANGELOG.md?raw';\n\n<Meta title=\"Overview/Change Log\" />\n\n<Markdown>\n{CHANGELOG}\n</Markdown>"
@@ -12262,18 +12262,18 @@
12262
12262
  "useBreakpointManager": {
12263
12263
  "raw_markdown": "# useBreakpointManager\n\nComposable for adding breakpoint manager and related breakpoint info (via breakpoint manager from `@ulu/frontend/js/ui/breakpoints.js > BreakpointManager`).\n\n**Note:** Using the composable is only necessary for unique situations. For basic breakpoint setup use the `breakpointsPlugin`. Which uses this composable.\n\n## Options for this composable\n\n```js\nconst defaults = {\n /**\n * Set an initial value (value in mounted, SSR)\n */\n initialValue: null,\n /**\n * Function called after init (passed manager)\n */\n onReady: null,\n /**\n * Options sent to CssBreakpoints library (ulu/frontend/js/breakpoints <BreakpointManager>)\n */\n plugin: {\n customProperty: \"--breakpoint\"\n }\n}\n```\n\n## Example Usage\n\n```html\n<script setup>\n import { ref, computed, provide } from \"vue\";\n import { useBreakpointManager } from \"./useBreakpointManager.js\";\n\n const isMobile = ref(false);\n\n // Example using the onReady callback to set reactive value isMobile\n // - In this situation isMobile is being used as a primary change in \n // the applications layout \n const options = { \n onReady(manager) {\n manager.at(\"small\").max(() => isMobile.value = true);\n manager.at(\"large\").min(() => isMobile.value = false);\n }\n };\n\n // Composable returns the following\n const { \n /**\n * Reference to underlying BreakpointManager class\n */\n breakpointManager, \n /**\n * Active breakpoint name\n */\n breakpointActive, \n /**\n * Current resizeDirection (\"up\"|\"down\"|null)\n */\n breakpointDirection \n } = useBreakpointManager(options);\n\n\n // Allowing all components to access these values\n provide(\"uluBreakpointActive\", computed(() => breakpointActive));\n provide(\"uluBreakpointDirection\", computed(() => breakpointDirection));\n provide(\"uluBreakpointManager\", computed(() => breakpointManager));\n provide(\"uluIsMobile\", computed(() => isMobile));\n\n</script>\n```"
12264
12264
  },
12265
- "forms": {
12266
- "raw_markdown": "import { Meta, Canvas, Story } from '@storybook/addon-docs/blocks';\nimport * as FullFormDemoStories from './tests/FullFormDemo.stories.js';\n\n# Forms\n\nThis is a demonstration of a full form built with the `ulu-form` components.\n\n<Canvas of={FullFormDemoStories.Default} />\n"
12265
+ "core": {
12266
+ "raw_markdown": "# Core Plugin\n\n## Purpose\n\nThe Core Plugin is the central, **required** plugin for the `@ulu/frontend-vue` library. Its primary purpose is to establish a single, reactive source of truth for configuration settings that are shared across multiple components. \n\nBy using Vue's `provide`/`inject` system, this plugin ensures that all components within your application access the same configuration, preventing inconsistencies that can arise from separate module imports.\n\n## Installation\n\nTo use this library, you must register the `corePlugin` on your Vue app instance. You can also pass an options object to override the default settings.\n\n```javascript\n// src/main.js\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport { corePlugin } from '@ulu/frontend-vue';\n\nconst app = createApp(App);\n\n// Register the core plugin\napp.use(corePlugin, {\n // Optional: override general settings\n fontAwesomeStatic: true,\n\n // Optional: override specific icons safely\n iconsByType: {\n danger: 'my-custom-danger-icon',\n close: 'my-custom-close-icon'\n }\n});\n\napp.mount('#app');\n```\n\n## API Reference\n\nThe plugin provides its API to your application in two ways:\n\n- **Composition API:** `inject('uluCore')`\n- **Options API:** `this.$uluCore`\n\nThe API object contains the following methods:\n\n- `getSettings()`: Returns the full reactive settings object.\n- `getSetting(key)`: Retrieves a single setting by its key (e.g., `'fontAwesomeStatic'`).\n- `updateSetting(key, value)`: Updates a single setting.\n- `updateSettings(changes)`: Merges an object of changes into the settings.\n- `getDefaultSettings()`: Returns a non-reactive copy of the original default settings.\n- `getIcon(type)`: Retrieves a specific icon class string by its semantic type (e.g., `'danger'`, `'close'`).\n- `setIcon(type, definition)`: Safely sets or overrides a single icon definition.\n\n### Example Usage\n\n**Composition API (`<script setup>`)**\n```vue\n<script setup>\nimport { inject, onMounted } from 'vue';\n\nconst uluCore = inject('uluCore');\n\nonMounted(() => {\n const icons = uluCore.getSetting('iconsByType');\n console.log('Danger Icon:', icons.danger);\n\n // Example of updating a single icon dynamically\n uluCore.setIcon('success', 'my-awesome-success-icon');\n});\n</script>\n```\n\n**Options API**\n```vue\n<script>\nexport default {\n mounted() {\n const icons = this.$uluCore.getSetting('icons');\n console.log('Danger Icon:', icons.danger);\n }\n}\n</script>\n```\n\n"
12267
12267
  },
12268
12268
  "modals": {
12269
12269
  "raw_markdown": "import { Canvas } from '@storybook/addon-docs/blocks';\nimport * as ModalStories from '../../components/collapsible/UluModal.stories.js';\n\n# Modals\n\nModals plugin allows configuring app-wide modals that are triggered by the global API. Register your modals when you install the plugin then interact with them using the global API.\n\n## Registering your app-wide modals\n\nCreate the modal component file like:\n\n```html\n<template>\n <UluModal>\n User setting modal…\n </UluModal>\n</template>\n```\n\n\nExample ./scr/modals.js\n\n```js\nimport { defineAsyncComponent } from \"vue\";\n\nexport default [\n {\n name: \"settings\",\n component: defineAsyncComponent(() => import('./components/modals/UserSettingsModal.vue')),\n }\n]\n```\n\n## Installing the plugin\n\nExample ./src/main.js\n\n```js\nimport UluModals from \"@ulu/frontend-vue/plugins/modals/index.js\";\nimport modals from \"./src/modals.js\";\n\n//...\n\napp.use(UluModals, { modals });\n\n```\n\n## Using Global API\n\n```js\n\n// Open a app-wide modal\nthis.$uluModals.open({ exampleProp: value });\n\n// Close app-wide modal \nthis.$uluModals.close();\n\n// Add modals after post-install\nthis.$uluModals.add({\n name: \"settings\",\n component: defineAsyncComponent(() => import('./components/modals/UserSettingsModal.vue')),\n});\n\n// Remove a modal from the registry\nthis.$uluModals.remove(\"settings\");\n\n// Get Modal from registry (not usually needed)\nconst settingsModal = this.$uluModals.get(\"settings\");\n// console.log(settingsModal.name) ==> \"settings\"\n```\n\n## Using Composition API (via composable)\n\nComposable is used get access to modals API (through inject)\n\n```html\n\n<template>\n <button @click=\"showSettingsModal\">My Settings</button>\n</template>\n\n<script setup>\n import { useModals } from \"./useModals\";\n\n const modals = useModals();\n const showSettingsModal = () => {\n console.log(\"This is opening via uluModals composable\");\n modals.open(\"settings\");\n };\n</script>\n\n```\n\n## Standalone Modal Component\n\nThe `UluModal` **component is independent of this plugin.** The plugin is simply a convenient way to manage global modals (for things like a settings dialog) that need to be opened from anywhere in your application.\n\nYou can use `UluModal` as the component that the plugin displays, or you can use it on its own for any case where you are managing the state locally within a component and don't need a global API.\n\nHere is a demonstration of the standalone `UluModal` component:\n\n<Canvas of={ModalStories.Default} />"
12270
12270
  },
12271
- "core": {
12272
- "raw_markdown": "# Core Plugin\n\n## Purpose\n\nThe Core Plugin is the central, **required** plugin for the `@ulu/frontend-vue` library. Its primary purpose is to establish a single, reactive source of truth for configuration settings that are shared across multiple components. \n\nBy using Vue's `provide`/`inject` system, this plugin ensures that all components within your application access the same configuration, preventing inconsistencies that can arise from separate module imports.\n\n## Installation\n\nTo use this library, you must register the `corePlugin` on your Vue app instance. You can also pass an options object to override the default settings.\n\n```javascript\n// src/main.js\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport { corePlugin } from '@ulu/frontend-vue';\n\nconst app = createApp(App);\n\n// Register the core plugin\napp.use(corePlugin, {\n // Optional: override general settings\n fontAwesomeStatic: true,\n\n // Optional: override specific icons safely\n iconsByType: {\n danger: 'my-custom-danger-icon',\n close: 'my-custom-close-icon'\n }\n});\n\napp.mount('#app');\n```\n\n## API Reference\n\nThe plugin provides its API to your application in two ways:\n\n- **Composition API:** `inject('uluCore')`\n- **Options API:** `this.$uluCore`\n\nThe API object contains the following methods:\n\n- `getSettings()`: Returns the full reactive settings object.\n- `getSetting(key)`: Retrieves a single setting by its key (e.g., `'fontAwesomeStatic'`).\n- `updateSetting(key, value)`: Updates a single setting.\n- `updateSettings(changes)`: Merges an object of changes into the settings.\n- `getDefaultSettings()`: Returns a non-reactive copy of the original default settings.\n- `getIcon(type)`: Retrieves a specific icon class string by its semantic type (e.g., `'danger'`, `'close'`).\n- `setIcon(type, definition)`: Safely sets or overrides a single icon definition.\n\n### Example Usage\n\n**Composition API (`<script setup>`)**\n```vue\n<script setup>\nimport { inject, onMounted } from 'vue';\n\nconst uluCore = inject('uluCore');\n\nonMounted(() => {\n const icons = uluCore.getSetting('iconsByType');\n console.log('Danger Icon:', icons.danger);\n\n // Example of updating a single icon dynamically\n uluCore.setIcon('success', 'my-awesome-success-icon');\n});\n</script>\n```\n\n**Options API**\n```vue\n<script>\nexport default {\n mounted() {\n const icons = this.$uluCore.getSetting('icons');\n console.log('Danger Icon:', icons.danger);\n }\n}\n</script>\n```\n\n"
12273
- },
12274
12271
  "breakpoints": {
12275
12272
  "raw_markdown": "# Breakpoints Plugin\n\n## Purpose\n\nThe Breakpoints Plugin provides app-wide, reactive breakpoint information to your Vue components. It is a lightweight wrapper around the `useBreakpointManager` composable, ensuring that resize events and active breakpoint states are tracked centrally and distributed efficiently via Vue's `provide`/`inject` system.\n\nBy installing this plugin, any component in your application can instantly know the current breakpoint, whether the device is considered \"mobile,\" and the direction the window was just resized.\n\n## Installation\n\nRegister the `breakpointsPlugin` on your Vue app instance.\n\n```javascript\n// src/main.js\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport { breakpointsPlugin } from '@ulu/frontend-vue';\n\nconst app = createApp(App);\n\n// Register the breakpoints plugin\napp.use(breakpointsPlugin, {\n // Optional: Change which breakpoint triggers the 'isMobile' flag (default is 'small')\n breakpointMobile: 'small',\n \n // Optional: Pass options directly to the underlying useBreakpointManager\n managerOptions: {\n // onReady(manager) { ... }\n }\n});\n\napp.mount('#app');\n```\n\n## Provided Injections\n\nThe plugin does not attach methods to the Vue instance. Instead, it provides reactive `computed` refs that you can inject into any component.\n\n- **`uluIsMobile`**: `ComputedRef<Boolean>` - True if the current active breakpoint is less than or equal to the configured `breakpointMobile` (defaults to `'small'`).\n- **`uluBreakpointActive`**: `ComputedRef<String>` - The name of the currently active breakpoint (e.g., `'small'`, `'medium'`, `'large'`).\n- **`uluBreakpointDirection`**: `ComputedRef<Number>` - Indicates the resize direction (`1` for growing larger, `-1` for shrinking smaller, `0` for initialization).\n- **`uluBreakpointManager`**: `ComputedRef<Object>` - The underlying vanilla JS BreakpointManager instance, allowing advanced programmatic subscriptions if needed.\n\n## Example Usage\n\n**Composition API (`<script setup>`)**\n```vue\n<script setup>\n import { inject } from 'vue';\n\n const isMobile = inject('uluIsMobile');\n const currentBreakpoint = inject('uluBreakpointActive');\n</script>\n\n<template>\n <div>\n <p v-if=\"isMobile\">You are on a mobile device!</p>\n <p>Current Breakpoint: {{ currentBreakpoint }}</p>\n </div>\n</template>\n```\n\n**Options API**\n```vue\n<script>\nexport default {\n inject: ['uluIsMobile', 'uluBreakpointActive'],\n mounted() {\n console.log('Is mobile?', this.uluIsMobile);\n }\n}\n</script>\n```\n\n## Why use the Plugin vs the Composable?\n\nWhile you can import and use `useBreakpointManager()` directly in individual components, registering the Breakpoints Plugin ensures that the vanilla JS `BreakpointManager` is only instantiated once. This centralizes the resize event listeners, significantly improving performance across large applications with many responsive components.\n"
12276
12273
  },
12274
+ "forms": {
12275
+ "raw_markdown": "import { Meta, Canvas, Story } from '@storybook/addon-docs/blocks';\nimport * as FullFormDemoStories from './tests/FullFormDemo.stories.js';\n\n# Forms\n\nThis is a demonstration of a full form built with the `ulu-form` components.\n\n<Canvas of={FullFormDemoStories.Default} />\n"
12276
+ },
12277
12277
  "useScrollAnchors": {
12278
12278
  "raw_markdown": "# useScrollAnchors\n\nThe main composable that contains the core \"engine\" for the Scroll Anchors system.\nIt encapsulates the `IntersectionObserver` logic to track sections and manage their active state.\nThis is intended for advanced use cases where a developer needs to build a custom provider\ncomponent instead of using the default `UluScrollAnchors`.\n\n## Usage\n\nThis composable is used to power a custom provider component. You would use it to provide the context to child components via Vue's `provide` function, using string-based keys.\n\n```html\n<script setup>\n import { ref, computed, provide } from \"vue\";\n import { useScrollAnchors } from './useScrollAnchors.js';\n\n const props = defineProps({\n firstItemActive: Boolean,\n observerOptions: Object\n });\n const emit = defineEmits(['section-change']);\n const componentEl = ref(null);\n const sections = ref([]);\n\n // Use the composable to handle the core logic\n useScrollAnchors({ sections, props, emit, componentElRef: componentEl });\n\n // Provide the state and registration functions to children\n provide('uluScrollAnchorsSections', computed(() => sections.value));\n provide('uluScrollAnchorsRegister', (section) => sections.value.push(section));\n provide('uluScrollAnchorsUnregister', (sectionId) => {\n const index = sections.value.findIndex(r => r.id === sectionId);\n if (index > -1) sections.value.splice(index, 1);\n });\n</script>\n\n<template>\n <!-- Your custom wrapper, or no wrapper at all -->\n <div ref=\"componentEl\">\n <slot/>\n </div>\n</template>\n```\n\n## Parameters\n\nThe `useScrollAnchors` composable accepts a single object with the following properties:\n\n- `sections` (Ref): A `ref` to the array of section objects that will be tracked.\n- `props` (Object): A props object containing `observerOptions` and `firstItemActive`.\n- `emit` (Function): The `emit` function from the host component, used to emit the `section-change` event.\n- `componentElRef` (Ref): A `ref` to an element within the component, used to find the nearest scrollable ancestor. This is not needed if `observerOptions.root` is set.\n\n## Returns\n\nThis composable does not return any values. It manages the observer and mutates the `active` state on the items within the `sections` array directly.\n"
12279
12279
  },
@@ -12376,7 +12376,7 @@
12376
12376
  "filename": "index.js",
12377
12377
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/utils"
12378
12378
  },
12379
- "order": 24,
12379
+ "order": 25,
12380
12380
  "level": 0
12381
12381
  },
12382
12382
  {
@@ -12389,7 +12389,7 @@
12389
12389
  "filename": "dom.js",
12390
12390
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/utils"
12391
12391
  },
12392
- "order": 25,
12392
+ "order": 26,
12393
12393
  "level": 0
12394
12394
  },
12395
12395
  {
@@ -12402,7 +12402,33 @@
12402
12402
  "filename": "index.js",
12403
12403
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins"
12404
12404
  },
12405
- "order": 28,
12405
+ "order": 29,
12406
+ "level": 0
12407
+ },
12408
+ {
12409
+ "id": "module:components",
12410
+ "longname": "module:components",
12411
+ "name": "components",
12412
+ "kind": "module",
12413
+ "meta": {
12414
+ "lineno": 1,
12415
+ "filename": "index.js",
12416
+ "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components"
12417
+ },
12418
+ "order": 30,
12419
+ "level": 0
12420
+ },
12421
+ {
12422
+ "id": "components/index.js\nResponsible for exporting all components\n- Used in main plugin and bundle exportsmodule:",
12423
+ "longname": "components/index.js\nResponsible for exporting all components\n- Used in main plugin and bundle exportsmodule:",
12424
+ "name": "components/index.js\nResponsible for exporting all components\n- Used in main plugin and bundle exports",
12425
+ "kind": "module",
12426
+ "meta": {
12427
+ "lineno": 4,
12428
+ "filename": "index.js",
12429
+ "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components"
12430
+ },
12431
+ "order": 31,
12406
12432
  "level": 0
12407
12433
  },
12408
12434
  {
@@ -12415,7 +12441,7 @@
12415
12441
  "filename": "useWindowResize.js",
12416
12442
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12417
12443
  },
12418
- "order": 29,
12444
+ "order": 32,
12419
12445
  "level": 0
12420
12446
  },
12421
12447
  {
@@ -12428,7 +12454,7 @@
12428
12454
  "filename": "useUluFloating.js",
12429
12455
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12430
12456
  },
12431
- "order": 32,
12457
+ "order": 35,
12432
12458
  "level": 0
12433
12459
  },
12434
12460
  {
@@ -12441,7 +12467,7 @@
12441
12467
  "filename": "useTableData.js",
12442
12468
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12443
12469
  },
12444
- "order": 36,
12470
+ "order": 39,
12445
12471
  "level": 0
12446
12472
  },
12447
12473
  {
@@ -12454,7 +12480,7 @@
12454
12480
  "filename": "useRequiredInject.js",
12455
12481
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12456
12482
  },
12457
- "order": 44,
12483
+ "order": 47,
12458
12484
  "level": 0
12459
12485
  },
12460
12486
  {
@@ -12467,7 +12493,7 @@
12467
12493
  "filename": "usePagination.js",
12468
12494
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12469
12495
  },
12470
- "order": 46,
12496
+ "order": 49,
12471
12497
  "level": 0
12472
12498
  },
12473
12499
  {
@@ -12480,7 +12506,7 @@
12480
12506
  "filename": "useModifiers.js",
12481
12507
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12482
12508
  },
12483
- "order": 48,
12509
+ "order": 51,
12484
12510
  "level": 0
12485
12511
  },
12486
12512
  {
@@ -12493,7 +12519,7 @@
12493
12519
  "filename": "useIcon.js",
12494
12520
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12495
12521
  },
12496
- "order": 50,
12522
+ "order": 53,
12497
12523
  "level": 0
12498
12524
  },
12499
12525
  {
@@ -12506,7 +12532,7 @@
12506
12532
  "filename": "useDocumentTitle.js",
12507
12533
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12508
12534
  },
12509
- "order": 53,
12535
+ "order": 56,
12510
12536
  "level": 0
12511
12537
  },
12512
12538
  {
@@ -12519,7 +12545,7 @@
12519
12545
  "filename": "useBreakpointManager.js",
12520
12546
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12521
12547
  },
12522
- "order": 55,
12548
+ "order": 58,
12523
12549
  "level": 0
12524
12550
  },
12525
12551
  {
@@ -12532,33 +12558,7 @@
12532
12558
  "filename": "index.js",
12533
12559
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
12534
12560
  },
12535
- "order": 60,
12536
- "level": 0
12537
- },
12538
- {
12539
- "id": "module:components",
12540
- "longname": "module:components",
12541
- "name": "components",
12542
- "kind": "module",
12543
- "meta": {
12544
- "lineno": 1,
12545
- "filename": "index.js",
12546
- "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components"
12547
- },
12548
- "order": 61,
12549
- "level": 0
12550
- },
12551
- {
12552
- "id": "components/index.js\nResponsible for exporting all components\n- Used in main plugin and bundle exportsmodule:",
12553
- "longname": "components/index.js\nResponsible for exporting all components\n- Used in main plugin and bundle exportsmodule:",
12554
- "name": "components/index.js\nResponsible for exporting all components\n- Used in main plugin and bundle exports",
12555
- "kind": "module",
12556
- "meta": {
12557
- "lineno": 4,
12558
- "filename": "index.js",
12559
- "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components"
12560
- },
12561
- "order": 62,
12561
+ "order": 63,
12562
12562
  "level": 0
12563
12563
  },
12564
12564
  {
@@ -12571,7 +12571,7 @@
12571
12571
  "filename": "useToast.js",
12572
12572
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
12573
12573
  },
12574
- "order": 63,
12574
+ "order": 64,
12575
12575
  "level": 0
12576
12576
  },
12577
12577
  {
@@ -12584,7 +12584,7 @@
12584
12584
  "filename": "store.js",
12585
12585
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
12586
12586
  },
12587
- "order": 65,
12587
+ "order": 66,
12588
12588
  "level": 0
12589
12589
  },
12590
12590
  {
@@ -12597,7 +12597,7 @@
12597
12597
  "filename": "index.js",
12598
12598
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
12599
12599
  },
12600
- "order": 72,
12600
+ "order": 73,
12601
12601
  "level": 0
12602
12602
  },
12603
12603
  {
@@ -12610,7 +12610,7 @@
12610
12610
  "filename": "defaults.js",
12611
12611
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
12612
12612
  },
12613
- "order": 74,
12613
+ "order": 75,
12614
12614
  "level": 0
12615
12615
  },
12616
12616
  {
@@ -12623,7 +12623,7 @@
12623
12623
  "filename": "useTooltipFollow.js",
12624
12624
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
12625
12625
  },
12626
- "order": 80,
12626
+ "order": 81,
12627
12627
  "level": 0
12628
12628
  },
12629
12629
  {
@@ -12636,7 +12636,7 @@
12636
12636
  "filename": "useTooltip.js",
12637
12637
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
12638
12638
  },
12639
- "order": 81,
12639
+ "order": 82,
12640
12640
  "level": 0
12641
12641
  },
12642
12642
  {
@@ -12649,7 +12649,7 @@
12649
12649
  "filename": "index.js",
12650
12650
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
12651
12651
  },
12652
- "order": 83,
12652
+ "order": 84,
12653
12653
  "level": 0
12654
12654
  },
12655
12655
  {
@@ -12662,7 +12662,7 @@
12662
12662
  "filename": "defaults.js",
12663
12663
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
12664
12664
  },
12665
- "order": 89
12665
+ "order": 90
12666
12666
  },
12667
12667
  {
12668
12668
  "id": "module:useModals",
@@ -12674,7 +12674,7 @@
12674
12674
  "filename": "useModals.js",
12675
12675
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
12676
12676
  },
12677
- "order": 111,
12677
+ "order": 112,
12678
12678
  "level": 0
12679
12679
  },
12680
12680
  {
@@ -12688,7 +12688,7 @@
12688
12688
  "filename": "index.js",
12689
12689
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
12690
12690
  },
12691
- "order": 113,
12691
+ "order": 114,
12692
12692
  "level": 0
12693
12693
  },
12694
12694
  {
@@ -12701,34 +12701,34 @@
12701
12701
  "filename": "api.js",
12702
12702
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
12703
12703
  },
12704
- "order": 116,
12704
+ "order": 117,
12705
12705
  "level": 0
12706
12706
  },
12707
12707
  {
12708
- "id": "module:breakpointsPlugin",
12709
- "longname": "module:breakpointsPlugin",
12710
- "name": "breakpointsPlugin",
12708
+ "id": "module:corePlugin",
12709
+ "longname": "module:corePlugin",
12710
+ "name": "corePlugin",
12711
12711
  "kind": "module",
12712
+ "description": "Core plugin for managing shared configuration for the library.",
12712
12713
  "meta": {
12713
12714
  "lineno": 1,
12714
12715
  "filename": "index.js",
12715
- "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
12716
+ "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/core"
12716
12717
  },
12717
- "order": 125,
12718
+ "order": 126,
12718
12719
  "level": 0
12719
12720
  },
12720
12721
  {
12721
- "id": "module:corePlugin",
12722
- "longname": "module:corePlugin",
12723
- "name": "corePlugin",
12722
+ "id": "module:breakpointsPlugin",
12723
+ "longname": "module:breakpointsPlugin",
12724
+ "name": "breakpointsPlugin",
12724
12725
  "kind": "module",
12725
- "description": "Core plugin for managing shared configuration for the library.",
12726
12726
  "meta": {
12727
12727
  "lineno": 1,
12728
12728
  "filename": "index.js",
12729
- "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/core"
12729
+ "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
12730
12730
  },
12731
- "order": 130,
12731
+ "order": 128,
12732
12732
  "level": 0
12733
12733
  },
12734
12734
  {
@@ -12741,7 +12741,7 @@
12741
12741
  "filename": "index.js",
12742
12742
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems"
12743
12743
  },
12744
- "order": 132,
12744
+ "order": 133,
12745
12745
  "level": 0
12746
12746
  },
12747
12747
  {
@@ -12754,7 +12754,7 @@
12754
12754
  "filename": "useScrollAnchors.js",
12755
12755
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
12756
12756
  },
12757
- "order": 133,
12757
+ "order": 134,
12758
12758
  "level": 0
12759
12759
  },
12760
12760
  {
@@ -12767,7 +12767,7 @@
12767
12767
  "filename": "useScrollAnchorSections.js",
12768
12768
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
12769
12769
  },
12770
- "order": 143,
12770
+ "order": 144,
12771
12771
  "level": 0
12772
12772
  },
12773
12773
  {
@@ -12780,7 +12780,7 @@
12780
12780
  "filename": "useScrollAnchorSection.js",
12781
12781
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
12782
12782
  },
12783
- "order": 145,
12783
+ "order": 146,
12784
12784
  "level": 0
12785
12785
  },
12786
12786
  {
@@ -12793,7 +12793,7 @@
12793
12793
  "filename": "useFacets.js",
12794
12794
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/facets"
12795
12795
  },
12796
- "order": 147,
12796
+ "order": 148,
12797
12797
  "level": 0
12798
12798
  },
12799
12799
  {
@@ -12809,7 +12809,7 @@
12809
12809
  "filename": "index.js",
12810
12810
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
12811
12811
  },
12812
- "order": 73,
12812
+ "order": 74,
12813
12813
  "level": 0
12814
12814
  },
12815
12815
  {
@@ -12845,7 +12845,7 @@
12845
12845
  "filename": "index.js",
12846
12846
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
12847
12847
  },
12848
- "order": 88,
12848
+ "order": 89,
12849
12849
  "level": 0
12850
12850
  },
12851
12851
  {
@@ -12881,17 +12881,17 @@
12881
12881
  "filename": "index.js",
12882
12882
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
12883
12883
  },
12884
- "order": 115,
12884
+ "order": 116,
12885
12885
  "level": 0
12886
12886
  },
12887
12887
  {
12888
- "id": "module:breakpointsPlugin--module.exports",
12889
- "longname": "module:breakpointsPlugin",
12888
+ "id": "module:corePlugin--module.exports",
12889
+ "longname": "module:corePlugin",
12890
12890
  "name": "module.exports",
12891
12891
  "kind": "function",
12892
12892
  "isExported": true,
12893
- "description": "Installs the breakpoints plugin, providing app-wide reactive breakpoint information.\nIt uses `useBreakpointManager` internally and provides `uluIsMobile`,\n`uluBreakpointActive`, `uluBreakpointDirection`, and `uluBreakpointManager` to all components.",
12894
- "memberof": "module:breakpointsPlugin",
12893
+ "description": "Installs the core plugin, which provides a centralized, reactive configuration for the entire library.\nIt is essential for managing global settings, particularly for the icon system.",
12894
+ "memberof": "module:corePlugin",
12895
12895
  "params": [
12896
12896
  {
12897
12897
  "type": {
@@ -12908,19 +12908,19 @@
12908
12908
  "object"
12909
12909
  ]
12910
12910
  },
12911
- "description": "User-defined options.",
12912
- "name": "userOptions"
12911
+ "optional": true,
12912
+ "description": "User-defined settings to override defaults.",
12913
+ "name": "userSettings"
12913
12914
  },
12914
12915
  {
12915
12916
  "type": {
12916
12917
  "names": [
12917
- "string"
12918
+ "boolean"
12918
12919
  ]
12919
12920
  },
12920
12921
  "optional": true,
12921
- "defaultvalue": "\"small\"",
12922
- "description": "The breakpoint name to use for `isMobile` detection.",
12923
- "name": "userOptions.breakpointMobile"
12922
+ "description": "If true, uses static FontAwesome CSS classes instead of the Vue component.",
12923
+ "name": "userSettings.fontAwesomeStatic"
12924
12924
  },
12925
12925
  {
12926
12926
  "type": {
@@ -12929,26 +12929,46 @@
12929
12929
  ]
12930
12930
  },
12931
12931
  "optional": true,
12932
- "description": "Options to pass to the underlying `useBreakpointManager`.",
12933
- "name": "userOptions.managerOptions"
12932
+ "description": "A custom component to use for rendering icons.",
12933
+ "name": "userSettings.iconComponent"
12934
+ },
12935
+ {
12936
+ "type": {
12937
+ "names": [
12938
+ "function"
12939
+ ]
12940
+ },
12941
+ "optional": true,
12942
+ "description": "A function to resolve props for the custom icon component.",
12943
+ "name": "userSettings.iconPropResolver"
12944
+ },
12945
+ {
12946
+ "type": {
12947
+ "names": [
12948
+ "object"
12949
+ ]
12950
+ },
12951
+ "optional": true,
12952
+ "description": "An object to override default icon definitions by type (e.g., `{ danger: 'my-icon' }`).",
12953
+ "name": "userSettings.iconsByType"
12934
12954
  }
12935
12955
  ],
12936
12956
  "meta": {
12937
- "lineno": 31,
12957
+ "lineno": 49,
12938
12958
  "filename": "index.js",
12939
- "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
12959
+ "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/core"
12940
12960
  },
12941
- "order": 129,
12961
+ "order": 127,
12942
12962
  "level": 0
12943
12963
  },
12944
12964
  {
12945
- "id": "module:corePlugin--module.exports",
12946
- "longname": "module:corePlugin",
12965
+ "id": "module:breakpointsPlugin--module.exports",
12966
+ "longname": "module:breakpointsPlugin",
12947
12967
  "name": "module.exports",
12948
12968
  "kind": "function",
12949
12969
  "isExported": true,
12950
- "description": "Installs the core plugin, which provides a centralized, reactive configuration for the entire library.\nIt is essential for managing global settings, particularly for the icon system.",
12951
- "memberof": "module:corePlugin",
12970
+ "description": "Installs the breakpoints plugin, providing app-wide reactive breakpoint information.\nIt uses `useBreakpointManager` internally and provides `uluIsMobile`,\n`uluBreakpointActive`, `uluBreakpointDirection`, and `uluBreakpointManager` to all components.",
12971
+ "memberof": "module:breakpointsPlugin",
12952
12972
  "params": [
12953
12973
  {
12954
12974
  "type": {
@@ -12965,39 +12985,19 @@
12965
12985
  "object"
12966
12986
  ]
12967
12987
  },
12968
- "optional": true,
12969
- "description": "User-defined settings to override defaults.",
12970
- "name": "userSettings"
12971
- },
12972
- {
12973
- "type": {
12974
- "names": [
12975
- "boolean"
12976
- ]
12977
- },
12978
- "optional": true,
12979
- "description": "If true, uses static FontAwesome CSS classes instead of the Vue component.",
12980
- "name": "userSettings.fontAwesomeStatic"
12981
- },
12982
- {
12983
- "type": {
12984
- "names": [
12985
- "object"
12986
- ]
12987
- },
12988
- "optional": true,
12989
- "description": "A custom component to use for rendering icons.",
12990
- "name": "userSettings.iconComponent"
12988
+ "description": "User-defined options.",
12989
+ "name": "userOptions"
12991
12990
  },
12992
12991
  {
12993
12992
  "type": {
12994
12993
  "names": [
12995
- "function"
12994
+ "string"
12996
12995
  ]
12997
12996
  },
12998
12997
  "optional": true,
12999
- "description": "A function to resolve props for the custom icon component.",
13000
- "name": "userSettings.iconPropResolver"
12998
+ "defaultvalue": "\"small\"",
12999
+ "description": "The breakpoint name to use for `isMobile` detection.",
13000
+ "name": "userOptions.breakpointMobile"
13001
13001
  },
13002
13002
  {
13003
13003
  "type": {
@@ -13006,16 +13006,16 @@
13006
13006
  ]
13007
13007
  },
13008
13008
  "optional": true,
13009
- "description": "An object to override default icon definitions by type (e.g., `{ danger: 'my-icon' }`).",
13010
- "name": "userSettings.iconsByType"
13009
+ "description": "Options to pass to the underlying `useBreakpointManager`.",
13010
+ "name": "userOptions.managerOptions"
13011
13011
  }
13012
13012
  ],
13013
13013
  "meta": {
13014
- "lineno": 49,
13014
+ "lineno": 31,
13015
13015
  "filename": "index.js",
13016
- "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/core"
13016
+ "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
13017
13017
  },
13018
- "order": 131,
13018
+ "order": 132,
13019
13019
  "level": 0
13020
13020
  },
13021
13021
  {
@@ -13031,7 +13031,7 @@
13031
13031
  "filename": "useBreakpointManager.js",
13032
13032
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
13033
13033
  },
13034
- "order": 56
13034
+ "order": 59
13035
13035
  },
13036
13036
  {
13037
13037
  "id": "module:useBreakpointManager~defaults.onReady",
@@ -13046,7 +13046,7 @@
13046
13046
  "filename": "useBreakpointManager.js",
13047
13047
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
13048
13048
  },
13049
- "order": 57
13049
+ "order": 60
13050
13050
  },
13051
13051
  {
13052
13052
  "id": "module:useBreakpointManager~defaults.plugin",
@@ -13061,7 +13061,7 @@
13061
13061
  "filename": "useBreakpointManager.js",
13062
13062
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
13063
13063
  },
13064
- "order": 58
13064
+ "order": 61
13065
13065
  },
13066
13066
  {
13067
13067
  "id": "toast.module:defaults--module.exports",
@@ -13077,7 +13077,7 @@
13077
13077
  "filename": "defaults.js",
13078
13078
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
13079
13079
  },
13080
- "order": 75,
13080
+ "order": 76,
13081
13081
  "level": 0
13082
13082
  },
13083
13083
  {
@@ -13093,7 +13093,7 @@
13093
13093
  "filename": "defaults.js",
13094
13094
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
13095
13095
  },
13096
- "order": 76
13096
+ "order": 77
13097
13097
  },
13098
13098
  {
13099
13099
  "id": "toast.module:defaults--module.exports.toastOptions.duration",
@@ -13108,7 +13108,7 @@
13108
13108
  "filename": "defaults.js",
13109
13109
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
13110
13110
  },
13111
- "order": 77
13111
+ "order": 78
13112
13112
  },
13113
13113
  {
13114
13114
  "id": "toast.module:defaults--module.exports.toastOptions.actions",
@@ -13123,7 +13123,7 @@
13123
13123
  "filename": "defaults.js",
13124
13124
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
13125
13125
  },
13126
- "order": 78
13126
+ "order": 79
13127
13127
  },
13128
13128
  {
13129
13129
  "id": "toast.module:defaults--module.exports.pluginOptions.position",
@@ -13138,7 +13138,7 @@
13138
13138
  "filename": "defaults.js",
13139
13139
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
13140
13140
  },
13141
- "order": 79
13141
+ "order": 80
13142
13142
  },
13143
13143
  {
13144
13144
  "id": "popovers.module:defaults.plugin",
@@ -13158,7 +13158,7 @@
13158
13158
  "filename": "defaults.js",
13159
13159
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13160
13160
  },
13161
- "order": 90
13161
+ "order": 91
13162
13162
  },
13163
13163
  {
13164
13164
  "id": "popovers.module:defaults.plugin.directiveName",
@@ -13178,7 +13178,7 @@
13178
13178
  "filename": "defaults.js",
13179
13179
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13180
13180
  },
13181
- "order": 91
13181
+ "order": 92
13182
13182
  },
13183
13183
  {
13184
13184
  "id": "popovers.module:defaults.popover",
@@ -13193,7 +13193,7 @@
13193
13193
  "filename": "defaults.js",
13194
13194
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13195
13195
  },
13196
- "order": 92
13196
+ "order": 93
13197
13197
  },
13198
13198
  {
13199
13199
  "id": "popovers.module:defaults.popover.inline",
@@ -13213,7 +13213,7 @@
13213
13213
  "filename": "defaults.js",
13214
13214
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13215
13215
  },
13216
- "order": 93
13216
+ "order": 94
13217
13217
  },
13218
13218
  {
13219
13219
  "id": "popovers.module:defaults.popover.delay",
@@ -13233,7 +13233,7 @@
13233
13233
  "filename": "defaults.js",
13234
13234
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13235
13235
  },
13236
- "order": 94
13236
+ "order": 95
13237
13237
  },
13238
13238
  {
13239
13239
  "id": "popovers.module:defaults.popover.placement",
@@ -13253,7 +13253,7 @@
13253
13253
  "filename": "defaults.js",
13254
13254
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13255
13255
  },
13256
- "order": 95
13256
+ "order": 96
13257
13257
  },
13258
13258
  {
13259
13259
  "id": "popovers.module:defaults.popover.strategy",
@@ -13273,7 +13273,7 @@
13273
13273
  "filename": "defaults.js",
13274
13274
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13275
13275
  },
13276
- "order": 96
13276
+ "order": 97
13277
13277
  },
13278
13278
  {
13279
13279
  "id": "popovers.module:defaults.popover.offset",
@@ -13293,7 +13293,7 @@
13293
13293
  "filename": "defaults.js",
13294
13294
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13295
13295
  },
13296
- "order": 97
13296
+ "order": 98
13297
13297
  },
13298
13298
  {
13299
13299
  "id": "popovers.module:defaults.popover.arrow",
@@ -13313,7 +13313,7 @@
13313
13313
  "filename": "defaults.js",
13314
13314
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13315
13315
  },
13316
- "order": 98
13316
+ "order": 99
13317
13317
  },
13318
13318
  {
13319
13319
  "id": "popovers.module:defaults.tooltip",
@@ -13333,7 +13333,7 @@
13333
13333
  "filename": "defaults.js",
13334
13334
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13335
13335
  },
13336
- "order": 99
13336
+ "order": 100
13337
13337
  },
13338
13338
  {
13339
13339
  "id": "popovers.module:defaults.tooltip.teleportTo",
@@ -13353,7 +13353,7 @@
13353
13353
  "filename": "defaults.js",
13354
13354
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13355
13355
  },
13356
- "order": 100
13356
+ "order": 101
13357
13357
  },
13358
13358
  {
13359
13359
  "id": "popovers.module:defaults.tooltip.class",
@@ -13375,7 +13375,7 @@
13375
13375
  "filename": "defaults.js",
13376
13376
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13377
13377
  },
13378
- "order": 101
13378
+ "order": 102
13379
13379
  },
13380
13380
  {
13381
13381
  "id": "popovers.module:defaults.tooltip.showEvents",
@@ -13395,7 +13395,7 @@
13395
13395
  "filename": "defaults.js",
13396
13396
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13397
13397
  },
13398
- "order": 102
13398
+ "order": 103
13399
13399
  },
13400
13400
  {
13401
13401
  "id": "popovers.module:defaults.tooltip.hideEvents",
@@ -13415,7 +13415,7 @@
13415
13415
  "filename": "defaults.js",
13416
13416
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13417
13417
  },
13418
- "order": 103
13418
+ "order": 104
13419
13419
  },
13420
13420
  {
13421
13421
  "id": "popovers.module:defaults.tooltip.isHtml",
@@ -13435,7 +13435,7 @@
13435
13435
  "filename": "defaults.js",
13436
13436
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13437
13437
  },
13438
- "order": 104
13438
+ "order": 105
13439
13439
  },
13440
13440
  {
13441
13441
  "id": "popovers.module:defaults.tooltip.trigger",
@@ -13456,7 +13456,7 @@
13456
13456
  "filename": "defaults.js",
13457
13457
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13458
13458
  },
13459
- "order": 105
13459
+ "order": 106
13460
13460
  },
13461
13461
  {
13462
13462
  "id": "popovers.module:defaults.tooltip.content",
@@ -13477,7 +13477,7 @@
13477
13477
  "filename": "defaults.js",
13478
13478
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13479
13479
  },
13480
- "order": 106
13480
+ "order": 107
13481
13481
  },
13482
13482
  {
13483
13483
  "id": "popovers.module:defaults.tooltip.delay",
@@ -13497,7 +13497,7 @@
13497
13497
  "filename": "defaults.js",
13498
13498
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13499
13499
  },
13500
- "order": 107
13500
+ "order": 108
13501
13501
  },
13502
13502
  {
13503
13503
  "id": "popovers.module:defaults.tooltip.onReady",
@@ -13512,7 +13512,7 @@
13512
13512
  "filename": "defaults.js",
13513
13513
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13514
13514
  },
13515
- "order": 108
13515
+ "order": 109
13516
13516
  },
13517
13517
  {
13518
13518
  "id": "popovers.module:defaults.tooltip.component",
@@ -13527,7 +13527,7 @@
13527
13527
  "filename": "defaults.js",
13528
13528
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13529
13529
  },
13530
- "order": 109
13530
+ "order": 110
13531
13531
  },
13532
13532
  {
13533
13533
  "id": "popovers.module:defaults.tooltip.componentProps",
@@ -13542,7 +13542,7 @@
13542
13542
  "filename": "defaults.js",
13543
13543
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13544
13544
  },
13545
- "order": 110
13545
+ "order": 111
13546
13546
  },
13547
13547
  {
13548
13548
  "id": "module:breakpointsPlugin--module.exports~defaults.breakpointMobile",
@@ -13557,7 +13557,7 @@
13557
13557
  "filename": "index.js",
13558
13558
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
13559
13559
  },
13560
- "order": 127,
13560
+ "order": 130,
13561
13561
  "level": 0
13562
13562
  },
13563
13563
  {
@@ -13573,7 +13573,7 @@
13573
13573
  "filename": "index.js",
13574
13574
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
13575
13575
  },
13576
- "order": 128,
13576
+ "order": 131,
13577
13577
  "level": 0
13578
13578
  },
13579
13579
  {
@@ -13612,7 +13612,7 @@
13612
13612
  "filename": "useToast.js",
13613
13613
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
13614
13614
  },
13615
- "order": 64,
13615
+ "order": 65,
13616
13616
  "level": 0
13617
13617
  },
13618
13618
  {
@@ -13628,7 +13628,7 @@
13628
13628
  "filename": "store.js",
13629
13629
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
13630
13630
  },
13631
- "order": 66,
13631
+ "order": 67,
13632
13632
  "level": 0
13633
13633
  },
13634
13634
  {
@@ -13644,7 +13644,7 @@
13644
13644
  "filename": "store.js",
13645
13645
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
13646
13646
  },
13647
- "order": 68,
13647
+ "order": 69,
13648
13648
  "level": 0
13649
13649
  },
13650
13650
  {
@@ -13660,7 +13660,7 @@
13660
13660
  "filename": "index.js",
13661
13661
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13662
13662
  },
13663
- "order": 84,
13663
+ "order": 85,
13664
13664
  "level": 0
13665
13665
  },
13666
13666
  {
@@ -13676,7 +13676,7 @@
13676
13676
  "filename": "index.js",
13677
13677
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13678
13678
  },
13679
- "order": 85,
13679
+ "order": 86,
13680
13680
  "level": 0
13681
13681
  },
13682
13682
  {
@@ -13692,7 +13692,7 @@
13692
13692
  "filename": "index.js",
13693
13693
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13694
13694
  },
13695
- "order": 86,
13695
+ "order": 87,
13696
13696
  "level": 0
13697
13697
  },
13698
13698
  {
@@ -13739,7 +13739,7 @@
13739
13739
  "filename": "index.js",
13740
13740
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
13741
13741
  },
13742
- "order": 87,
13742
+ "order": 88,
13743
13743
  "level": 0
13744
13744
  },
13745
13745
  {
@@ -13775,7 +13775,7 @@
13775
13775
  "filename": "useModals.js",
13776
13776
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
13777
13777
  },
13778
- "order": 112,
13778
+ "order": 113,
13779
13779
  "level": 0
13780
13780
  },
13781
13781
  {
@@ -14541,6 +14541,55 @@
14541
14541
  "order": 23,
14542
14542
  "level": 0
14543
14543
  },
14544
+ {
14545
+ "id": "utils.module:props.mergeClassLookups",
14546
+ "longname": "utils.module:props.mergeClassLookups",
14547
+ "name": "mergeClassLookups",
14548
+ "kind": "function",
14549
+ "scope": "static",
14550
+ "description": "Merges multiple sources of class configuration objects (class lookups).\nSources are evaluated left-to-right (later sources override earlier ones).\n\nBehavior:\n- Object: Merges with the currently resolved classes.\n- Boolean (false): Clears the currently resolved classes to an empty object.\n- Function: Called with (resolved, defaults). Its return value replaces the resolved classes.",
14551
+ "memberof": "utils.module:props",
14552
+ "params": [
14553
+ {
14554
+ "type": {
14555
+ "names": [
14556
+ "Object"
14557
+ ]
14558
+ },
14559
+ "description": "The base default classes",
14560
+ "name": "defaults"
14561
+ },
14562
+ {
14563
+ "type": {
14564
+ "names": [
14565
+ "Object",
14566
+ "Boolean",
14567
+ "function"
14568
+ ]
14569
+ },
14570
+ "variable": true,
14571
+ "description": "The sources to merge",
14572
+ "name": "sources"
14573
+ }
14574
+ ],
14575
+ "returns": [
14576
+ {
14577
+ "type": {
14578
+ "names": [
14579
+ "Object"
14580
+ ]
14581
+ },
14582
+ "description": "The final resolved classes object"
14583
+ }
14584
+ ],
14585
+ "meta": {
14586
+ "lineno": 40,
14587
+ "filename": "props.js",
14588
+ "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/utils"
14589
+ },
14590
+ "order": 24,
14591
+ "level": 0
14592
+ },
14544
14593
  {
14545
14594
  "id": "utils.module:dom.refToElement",
14546
14595
  "longname": "utils.module:dom.refToElement",
@@ -14576,7 +14625,7 @@
14576
14625
  "filename": "dom.js",
14577
14626
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/utils"
14578
14627
  },
14579
- "order": 26,
14628
+ "order": 27,
14580
14629
  "level": 0
14581
14630
  },
14582
14631
  {
@@ -14615,7 +14664,7 @@
14615
14664
  "filename": "dom.js",
14616
14665
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/utils"
14617
14666
  },
14618
- "order": 27,
14667
+ "order": 28,
14619
14668
  "level": 0
14620
14669
  },
14621
14670
  {
@@ -14641,7 +14690,7 @@
14641
14690
  "filename": "useWindowResize.js",
14642
14691
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
14643
14692
  },
14644
- "order": 31,
14693
+ "order": 34,
14645
14694
  "level": 0
14646
14695
  },
14647
14696
  {
@@ -14695,7 +14744,7 @@
14695
14744
  "filename": "useUluFloating.js",
14696
14745
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
14697
14746
  },
14698
- "order": 35,
14747
+ "order": 38,
14699
14748
  "level": 0
14700
14749
  },
14701
14750
  {
@@ -14732,7 +14781,7 @@
14732
14781
  "filename": "useTableData.js",
14733
14782
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
14734
14783
  },
14735
- "order": 37,
14784
+ "order": 40,
14736
14785
  "level": 0
14737
14786
  },
14738
14787
  {
@@ -14764,7 +14813,7 @@
14764
14813
  "filename": "useRequiredInject.js",
14765
14814
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
14766
14815
  },
14767
- "order": 45,
14816
+ "order": 48,
14768
14817
  "level": 0
14769
14818
  },
14770
14819
  {
@@ -14810,7 +14859,7 @@
14810
14859
  "filename": "usePagination.js",
14811
14860
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
14812
14861
  },
14813
- "order": 47,
14862
+ "order": 50,
14814
14863
  "level": 0
14815
14864
  },
14816
14865
  {
@@ -14883,7 +14932,7 @@
14883
14932
  "filename": "useModifiers.js",
14884
14933
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
14885
14934
  },
14886
- "order": 49,
14935
+ "order": 52,
14887
14936
  "level": 0
14888
14937
  },
14889
14938
  {
@@ -14909,7 +14958,7 @@
14909
14958
  "filename": "useIcon.js",
14910
14959
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
14911
14960
  },
14912
- "order": 51,
14961
+ "order": 54,
14913
14962
  "level": 0
14914
14963
  },
14915
14964
  {
@@ -14979,7 +15028,7 @@
14979
15028
  "filename": "useDocumentTitle.js",
14980
15029
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
14981
15030
  },
14982
- "order": 54,
15031
+ "order": 57,
14983
15032
  "level": 0
14984
15033
  },
14985
15034
  {
@@ -15047,7 +15096,7 @@
15047
15096
  "filename": "useBreakpointManager.js",
15048
15097
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
15049
15098
  },
15050
- "order": 59,
15099
+ "order": 62,
15051
15100
  "level": 0
15052
15101
  },
15053
15102
  {
@@ -15078,7 +15127,7 @@
15078
15127
  "filename": "store.js",
15079
15128
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
15080
15129
  },
15081
- "order": 69
15130
+ "order": 70
15082
15131
  },
15083
15132
  {
15084
15133
  "id": "toast.module:store~api.remove",
@@ -15103,7 +15152,7 @@
15103
15152
  "filename": "store.js",
15104
15153
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
15105
15154
  },
15106
- "order": 70
15155
+ "order": 71
15107
15156
  },
15108
15157
  {
15109
15158
  "id": "toast.module:store~api.removeAll",
@@ -15118,7 +15167,7 @@
15118
15167
  "filename": "store.js",
15119
15168
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
15120
15169
  },
15121
- "order": 71
15170
+ "order": 72
15122
15171
  },
15123
15172
  {
15124
15173
  "id": "module:useTooltip.useTooltip",
@@ -15142,7 +15191,7 @@
15142
15191
  "filename": "useTooltip.js",
15143
15192
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/popovers"
15144
15193
  },
15145
- "order": 82,
15194
+ "order": 83,
15146
15195
  "level": 0
15147
15196
  },
15148
15197
  {
@@ -15168,7 +15217,7 @@
15168
15217
  "filename": "useScrollAnchors.js",
15169
15218
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15170
15219
  },
15171
- "order": 134,
15220
+ "order": 135,
15172
15221
  "level": 0
15173
15222
  },
15174
15223
  {
@@ -15194,7 +15243,7 @@
15194
15243
  "filename": "useScrollAnchorSections.js",
15195
15244
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15196
15245
  },
15197
- "order": 144,
15246
+ "order": 145,
15198
15247
  "level": 0
15199
15248
  },
15200
15249
  {
@@ -15231,7 +15280,7 @@
15231
15280
  "filename": "useScrollAnchorSection.js",
15232
15281
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15233
15282
  },
15234
- "order": 146,
15283
+ "order": 147,
15235
15284
  "level": 0
15236
15285
  },
15237
15286
  {
@@ -15403,7 +15452,7 @@
15403
15452
  "filename": "useFacets.js",
15404
15453
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/facets"
15405
15454
  },
15406
- "order": 152,
15455
+ "order": 153,
15407
15456
  "level": 0
15408
15457
  },
15409
15458
  {
@@ -15419,7 +15468,7 @@
15419
15468
  "filename": "store.js",
15420
15469
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/toast"
15421
15470
  },
15422
- "order": 67,
15471
+ "order": 68,
15423
15472
  "level": 0
15424
15473
  },
15425
15474
  {
@@ -15435,7 +15484,7 @@
15435
15484
  "filename": "api.js",
15436
15485
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
15437
15486
  },
15438
- "order": 118,
15487
+ "order": 119,
15439
15488
  "level": 0
15440
15489
  },
15441
15490
  {
@@ -15451,7 +15500,7 @@
15451
15500
  "filename": "api.js",
15452
15501
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
15453
15502
  },
15454
- "order": 119,
15503
+ "order": 120,
15455
15504
  "level": 0
15456
15505
  },
15457
15506
  {
@@ -15485,7 +15534,7 @@
15485
15534
  "filename": "useTableData.js",
15486
15535
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
15487
15536
  },
15488
- "order": 43,
15537
+ "order": 46,
15489
15538
  "level": 0
15490
15539
  },
15491
15540
  {
@@ -15502,7 +15551,7 @@
15502
15551
  "filename": "api.js",
15503
15552
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
15504
15553
  },
15505
- "order": 117,
15554
+ "order": 118,
15506
15555
  "level": 0
15507
15556
  },
15508
15557
  {
@@ -15519,7 +15568,7 @@
15519
15568
  "filename": "api.js",
15520
15569
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
15521
15570
  },
15522
- "order": 120,
15571
+ "order": 121,
15523
15572
  "level": 0
15524
15573
  },
15525
15574
  {
@@ -15536,7 +15585,7 @@
15536
15585
  "filename": "index.js",
15537
15586
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/breakpoints"
15538
15587
  },
15539
- "order": 126,
15588
+ "order": 129,
15540
15589
  "level": 0
15541
15590
  },
15542
15591
  {
@@ -15553,7 +15602,7 @@
15553
15602
  "filename": "useScrollAnchors.js",
15554
15603
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15555
15604
  },
15556
- "order": 141,
15605
+ "order": 142,
15557
15606
  "level": 0
15558
15607
  },
15559
15608
  {
@@ -15598,7 +15647,7 @@
15598
15647
  "filename": "useWindowResize.js",
15599
15648
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
15600
15649
  },
15601
- "order": 30,
15650
+ "order": 33,
15602
15651
  "level": 0
15603
15652
  },
15604
15653
  {
@@ -15615,7 +15664,7 @@
15615
15664
  "filename": "useTableData.js",
15616
15665
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
15617
15666
  },
15618
- "order": 38,
15667
+ "order": 41,
15619
15668
  "level": 0
15620
15669
  },
15621
15670
  {
@@ -15632,7 +15681,7 @@
15632
15681
  "filename": "useTableData.js",
15633
15682
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
15634
15683
  },
15635
- "order": 39,
15684
+ "order": 42,
15636
15685
  "level": 0
15637
15686
  },
15638
15687
  {
@@ -15649,7 +15698,7 @@
15649
15698
  "filename": "useTableData.js",
15650
15699
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
15651
15700
  },
15652
- "order": 40,
15701
+ "order": 43,
15653
15702
  "level": 0
15654
15703
  },
15655
15704
  {
@@ -15666,7 +15715,7 @@
15666
15715
  "filename": "useTableData.js",
15667
15716
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
15668
15717
  },
15669
- "order": 41,
15718
+ "order": 44,
15670
15719
  "level": 0
15671
15720
  },
15672
15721
  {
@@ -15683,7 +15732,7 @@
15683
15732
  "filename": "useTableData.js",
15684
15733
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
15685
15734
  },
15686
- "order": 42,
15735
+ "order": 45,
15687
15736
  "level": 0
15688
15737
  },
15689
15738
  {
@@ -15723,7 +15772,7 @@
15723
15772
  "filename": "useIcon.js",
15724
15773
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
15725
15774
  },
15726
- "order": 52,
15775
+ "order": 55,
15727
15776
  "level": 0
15728
15777
  },
15729
15778
  {
@@ -15754,7 +15803,7 @@
15754
15803
  "filename": "api.js",
15755
15804
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
15756
15805
  },
15757
- "order": 121,
15806
+ "order": 122,
15758
15807
  "level": 0
15759
15808
  },
15760
15809
  {
@@ -15780,7 +15829,7 @@
15780
15829
  "filename": "api.js",
15781
15830
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
15782
15831
  },
15783
- "order": 122,
15832
+ "order": 123,
15784
15833
  "level": 0
15785
15834
  },
15786
15835
  {
@@ -15796,7 +15845,7 @@
15796
15845
  "filename": "api.js",
15797
15846
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
15798
15847
  },
15799
- "order": 123,
15848
+ "order": 124,
15800
15849
  "level": 0
15801
15850
  },
15802
15851
  {
@@ -15822,7 +15871,7 @@
15822
15871
  "filename": "api.js",
15823
15872
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
15824
15873
  },
15825
- "order": 124,
15874
+ "order": 125,
15826
15875
  "level": 0
15827
15876
  },
15828
15877
  {
@@ -15839,7 +15888,7 @@
15839
15888
  "filename": "useScrollAnchors.js",
15840
15889
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15841
15890
  },
15842
- "order": 135,
15891
+ "order": 136,
15843
15892
  "level": 0
15844
15893
  },
15845
15894
  {
@@ -15856,7 +15905,7 @@
15856
15905
  "filename": "useScrollAnchors.js",
15857
15906
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15858
15907
  },
15859
- "order": 136,
15908
+ "order": 137,
15860
15909
  "level": 0
15861
15910
  },
15862
15911
  {
@@ -15873,7 +15922,7 @@
15873
15922
  "filename": "useScrollAnchors.js",
15874
15923
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15875
15924
  },
15876
- "order": 137,
15925
+ "order": 138,
15877
15926
  "level": 0
15878
15927
  },
15879
15928
  {
@@ -15890,7 +15939,7 @@
15890
15939
  "filename": "useScrollAnchors.js",
15891
15940
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15892
15941
  },
15893
- "order": 138,
15942
+ "order": 139,
15894
15943
  "level": 0
15895
15944
  },
15896
15945
  {
@@ -15907,7 +15956,7 @@
15907
15956
  "filename": "useScrollAnchors.js",
15908
15957
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15909
15958
  },
15910
- "order": 139,
15959
+ "order": 140,
15911
15960
  "level": 0
15912
15961
  },
15913
15962
  {
@@ -15924,7 +15973,7 @@
15924
15973
  "filename": "useScrollAnchors.js",
15925
15974
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15926
15975
  },
15927
- "order": 140,
15976
+ "order": 141,
15928
15977
  "level": 0
15929
15978
  },
15930
15979
  {
@@ -15941,7 +15990,7 @@
15941
15990
  "filename": "useScrollAnchors.js",
15942
15991
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/scroll-anchors"
15943
15992
  },
15944
- "order": 142,
15993
+ "order": 143,
15945
15994
  "level": 0
15946
15995
  },
15947
15996
  {
@@ -15978,7 +16027,7 @@
15978
16027
  "filename": "useFacets.js",
15979
16028
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/facets"
15980
16029
  },
15981
- "order": 148,
16030
+ "order": 149,
15982
16031
  "level": 0
15983
16032
  },
15984
16033
  {
@@ -16015,7 +16064,7 @@
16015
16064
  "filename": "useFacets.js",
16016
16065
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/facets"
16017
16066
  },
16018
- "order": 149,
16067
+ "order": 150,
16019
16068
  "level": 0
16020
16069
  },
16021
16070
  {
@@ -16070,7 +16119,7 @@
16070
16119
  "filename": "useFacets.js",
16071
16120
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/facets"
16072
16121
  },
16073
- "order": 150,
16122
+ "order": 151,
16074
16123
  "level": 0
16075
16124
  },
16076
16125
  {
@@ -16116,7 +16165,7 @@
16116
16165
  "filename": "useFacets.js",
16117
16166
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/components/systems/facets"
16118
16167
  },
16119
- "order": 151,
16168
+ "order": 152,
16120
16169
  "level": 0
16121
16170
  },
16122
16171
  {
@@ -16177,7 +16226,7 @@
16177
16226
  "filename": "useUluFloating.js",
16178
16227
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
16179
16228
  },
16180
- "order": 33,
16229
+ "order": 36,
16181
16230
  "level": 0
16182
16231
  },
16183
16232
  {
@@ -16264,7 +16313,7 @@
16264
16313
  "filename": "useUluFloating.js",
16265
16314
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/composables"
16266
16315
  },
16267
- "order": 34,
16316
+ "order": 37,
16268
16317
  "level": 0
16269
16318
  },
16270
16319
  {
@@ -16305,7 +16354,7 @@
16305
16354
  "filename": "index.js",
16306
16355
  "path": "/Users/joescherben/Personal/Projects/ULU/frontend-vue/lib/plugins/modals"
16307
16356
  },
16308
- "order": 114,
16357
+ "order": 115,
16309
16358
  "level": 0
16310
16359
  }
16311
16360
  ],