orio-ui 1.18.0 → 1.18.1

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.
package/README.md CHANGED
@@ -8,12 +8,12 @@ A delightful, lightweight component library for Nuxt 3+ applications. Built with
8
8
 
9
9
  ## Features
10
10
 
11
- ✨ **26 Components** - Beautiful, accessible components ready to use
11
+ ✨ **31 Components** - Beautiful, accessible components ready to use
12
12
  🎨 **Themeable** - 5 built-in accent themes with light/dark mode support
13
13
  🚀 **Auto-imported** - Works seamlessly with Nuxt's auto-import system
14
14
  📦 **Tree-shakeable** - Only bundle what you use
15
15
  🎯 **TypeScript** - Fully typed for great developer experience
16
- 🧪 **Tested** - 240+ unit tests for reliability
16
+ 🧪 **Tested** - 29 test suites for reliability
17
17
  📱 **Responsive** - Mobile-first design approach
18
18
  ♿ **Accessible** - ARIA-compliant components
19
19
 
@@ -66,7 +66,7 @@ function handleClick() {
66
66
 
67
67
  ## What's Included
68
68
 
69
- ### Components (26)
69
+ ### Components (31)
70
70
 
71
71
  #### Form Controls
72
72
 
@@ -112,7 +112,7 @@ function handleClick() {
112
112
 
113
113
  - **Upload** - File upload component
114
114
 
115
- ### Composables (8)
115
+ ### Composables (10)
116
116
 
117
117
  - **useTheme** - Theme and color mode management
118
118
  - **useModal** - Modal state with animation origin tracking
@@ -187,8 +187,8 @@ npm run docs:dev
187
187
  orio-ui/
188
188
  ├── src/
189
189
  │ ├── runtime/
190
- │ │ ├── components/ # 26 Vue components
191
- │ │ ├── composables/ # 8 composables
190
+ │ │ ├── components/ # 31 Vue components
191
+ │ │ ├── composables/ # 10 composables
192
192
  │ │ ├── assets/css/ # Theme CSS files
193
193
  │ │ └── utils/ # Icon registry
194
194
  │ └── module.ts # Nuxt Module definition
package/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": "^3.0.0 || ^4.0.0"
6
6
  },
7
- "version": "1.18.0",
7
+ "version": "1.18.1",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "1.0.2",
10
10
  "unbuild": "3.6.1"
@@ -1,6 +1,6 @@
1
1
  import type { ControlProps } from "./ControlElement.vue.js";
2
2
  export type SelectableOption<T extends object = object> = string | T;
3
- export interface SelectProps<T extends object = object> extends ControlProps {
3
+ export interface SelectProps extends ControlProps {
4
4
  options: SelectableOption[];
5
5
  multiple?: boolean;
6
6
  field?: string;
@@ -8,7 +8,7 @@ export interface SelectProps<T extends object = object> extends ControlProps {
8
8
  placeholder?: string;
9
9
  }
10
10
  declare const __VLS_export: <T extends object>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
11
- props: import("vue").PublicProps & __VLS_PrettifyLocal<(SelectProps<object> & {
11
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(SelectProps & {
12
12
  modelValue: SelectableOption | SelectableOption[] | null | undefined;
13
13
  }) & {
14
14
  "onUpdate:modelValue"?: ((value: SelectableOption<object> | SelectableOption<object>[] | null | undefined) => any) | undefined;
@@ -1,6 +1,6 @@
1
1
  import type { ControlProps } from "./ControlElement.vue.js";
2
2
  export type SelectableOption<T extends object = object> = string | T;
3
- export interface SelectProps<T extends object = object> extends ControlProps {
3
+ export interface SelectProps extends ControlProps {
4
4
  options: SelectableOption[];
5
5
  multiple?: boolean;
6
6
  field?: string;
@@ -8,7 +8,7 @@ export interface SelectProps<T extends object = object> extends ControlProps {
8
8
  placeholder?: string;
9
9
  }
10
10
  declare const __VLS_export: <T extends object>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
11
- props: import("vue").PublicProps & __VLS_PrettifyLocal<(SelectProps<object> & {
11
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(SelectProps & {
12
12
  modelValue: SelectableOption | SelectableOption[] | null | undefined;
13
13
  }) & {
14
14
  "onUpdate:modelValue"?: ((value: SelectableOption<object> | SelectableOption<object>[] | null | undefined) => any) | undefined;
@@ -157,5 +157,5 @@ onMounted(() => {
157
157
  </template>
158
158
 
159
159
  <style scoped>
160
- .carousel-wrapper{display:block;position:relative}.carousel-measure{height:-moz-max-content;height:max-content;pointer-events:none;position:absolute;visibility:hidden;width:-moz-max-content;width:max-content}.carousel-measure img{display:block}.carousel{border:1px solid var(--color-border);border-radius:var(--border-radius-lg);height:v-bind("calculatedSize.height");max-height:v-bind(maxHeight);max-width:100%;overflow:hidden;transition:width .3s ease,height .3s ease;width:v-bind("calculatedSize.width")}.carousel-track{align-items:center;cursor:grab;display:flex;gap:.75rem;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.carousel-track:active{cursor:grabbing}.carousel-item{background:var(--color-surface);border-radius:var(--border-radius-sm);color:var(--color-text);height:100%;inset:0;opacity:0;overflow:hidden;padding:.5rem .75rem;pointer-events:none;position:absolute;transition:opacity .5s ease-in-out,transform .5s ease-in-out;white-space:nowrap;width:100%}.carousel-item.previous-image{transform:translateX(-100%)}.carousel-item.next-image{transform:translateX(100%)}.carousel-item.active-image{opacity:1;pointer-events:auto;transform:translateX(0)}.carousel-item img{height:100%;-o-object-fit:v-bind(fit);object-fit:v-bind(fit);width:100%}.carousel-empty{color:var(--color-muted)}.switch-button{position:absolute}.switch-button :deep(button){background:transparent!important;border:none!important;color:transparent!important}.switch-button :deep(button:hover){color:transparent!important}.switch-button :deep(.orio-icon){color:#fff!important;fill:#fff!important;filter:drop-shadow(0 0 2px rgba(0,0,0,.8)) drop-shadow(0 0 4px rgba(0,0,0,.6))}@supports (mix-blend-mode:difference) and (not (-webkit-hyphens:none)){.switch-button :deep(.orio-icon){color:#000!important;fill:#000!important;filter:grayscale(1) contrast(9) invert(1) drop-shadow(0 0 1px black) drop-shadow(0 0 2px black);mix-blend-mode:difference}}.switch-button.previous-button{left:0}.switch-button.next-button{right:0}.carousel--minimal{background:none;border:none}.carousel--minimal .carousel-item{background:none}.carousel--minimal .switch-button{opacity:0;transition:opacity .2s ease}.carousel--minimal:hover .switch-button{opacity:1}
160
+ .carousel-wrapper{display:block;overflow:hidden;position:relative}.carousel-measure{height:-moz-max-content;height:max-content;pointer-events:none;position:absolute;visibility:hidden;width:-moz-max-content;width:max-content}.carousel-measure img{display:block}.carousel{border:1px solid var(--color-border);border-radius:var(--border-radius-lg);height:v-bind("calculatedSize.height");max-height:v-bind(maxHeight);max-width:100%;overflow:hidden;transition:width .3s ease,height .3s ease;width:v-bind("calculatedSize.width")}.carousel-track{align-items:center;cursor:grab;display:flex;gap:.75rem;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.carousel-track:active{cursor:grabbing}.carousel-item{background:var(--color-surface);border-radius:var(--border-radius-sm);color:var(--color-text);height:100%;inset:0;opacity:0;overflow:hidden;padding:.5rem .75rem;pointer-events:none;position:absolute;transition:opacity .5s ease-in-out,transform .5s ease-in-out;white-space:nowrap;width:100%}.carousel-item.previous-image{transform:translateX(-100%)}.carousel-item.next-image{transform:translateX(100%)}.carousel-item.active-image{opacity:1;pointer-events:auto;transform:translateX(0)}.carousel-item img{height:100%;-o-object-fit:v-bind(fit);object-fit:v-bind(fit);width:100%}.carousel-empty{color:var(--color-muted)}.switch-button{position:absolute}.switch-button :deep(button){background:transparent!important;border:none!important;color:transparent!important}.switch-button :deep(button:hover){color:transparent!important}.switch-button :deep(.orio-icon){color:#fff!important;fill:#fff!important;filter:drop-shadow(0 0 2px rgba(0,0,0,.8)) drop-shadow(0 0 4px rgba(0,0,0,.6))}@supports (mix-blend-mode:difference) and (not (-webkit-hyphens:none)){.switch-button :deep(.orio-icon){color:#000!important;fill:#000!important;filter:grayscale(1) contrast(9) invert(1) drop-shadow(0 0 1px black) drop-shadow(0 0 2px black);mix-blend-mode:difference}}.switch-button.previous-button{left:0}.switch-button.next-button{right:0}.carousel--minimal{background:none;border:none}.carousel--minimal .carousel-item{background:none}.carousel--minimal .switch-button{opacity:0;transition:opacity .2s ease}.carousel--minimal:hover .switch-button{opacity:1}
161
161
  </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orio-ui",
3
- "version": "1.18.0",
3
+ "version": "1.18.1",
4
4
  "description": "Modern Nuxt component library with theme support",
5
5
  "type": "module",
6
6
  "main": "./dist/module.mjs",
@@ -21,13 +21,15 @@
21
21
  ],
22
22
  "scripts": {
23
23
  "dev": "vitepress dev docs",
24
+ "prebuild": "node scripts/update-counts.mjs",
24
25
  "build": "nuxt-module-build build",
25
26
  "prepack": "npm run build",
26
27
  "test": "vitest",
27
28
  "test:unit": "vitest run",
28
29
  "test:watch": "vitest watch",
29
30
  "docs:dev": "vitepress dev docs --host",
30
- "docs:build": "vitepress build docs",
31
+ "predocs:dev": "cp CHANGELOG.md docs/changelog.md",
32
+ "docs:build": "cp CHANGELOG.md docs/changelog.md && vitepress build docs",
31
33
  "docs:preview": "vitepress preview docs",
32
34
  "lint": "eslint .",
33
35
  "lint:fix": "eslint . --fix",