windly-ui 1.0.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/Alert.d.vue.ts +18 -0
  3. package/dist/runtime/components/Alert.vue +21 -3
  4. package/dist/runtime/components/Alert.vue.d.ts +18 -0
  5. package/dist/runtime/components/Avatar.d.vue.ts +5 -5
  6. package/dist/runtime/components/Avatar.vue.d.ts +5 -5
  7. package/dist/runtime/components/Badge.d.vue.ts +5 -5
  8. package/dist/runtime/components/Badge.vue.d.ts +5 -5
  9. package/dist/runtime/components/Breadcrumbs.vue +2 -2
  10. package/dist/runtime/components/Button.d.vue.ts +5 -5
  11. package/dist/runtime/components/Button.vue +5 -5
  12. package/dist/runtime/components/Button.vue.d.ts +5 -5
  13. package/dist/runtime/components/Card.d.vue.ts +27 -0
  14. package/dist/runtime/components/Card.vue +12 -8
  15. package/dist/runtime/components/Card.vue.d.ts +27 -0
  16. package/dist/runtime/components/Checkbox.d.vue.ts +14 -5
  17. package/dist/runtime/components/Checkbox.vue +11 -4
  18. package/dist/runtime/components/Checkbox.vue.d.ts +14 -5
  19. package/dist/runtime/components/Chip.d.vue.ts +5 -5
  20. package/dist/runtime/components/Chip.vue +1 -1
  21. package/dist/runtime/components/Chip.vue.d.ts +5 -5
  22. package/dist/runtime/components/CodeBlock.vue +50 -8
  23. package/dist/runtime/components/Date.d.vue.ts +22 -4
  24. package/dist/runtime/components/Date.vue +39 -15
  25. package/dist/runtime/components/Date.vue.d.ts +22 -4
  26. package/dist/runtime/components/Dialog.d.vue.ts +7 -9
  27. package/dist/runtime/components/Dialog.vue +23 -4
  28. package/dist/runtime/components/Dialog.vue.d.ts +7 -9
  29. package/dist/runtime/components/Divider.vue +1 -1
  30. package/dist/runtime/components/Dropdown.d.vue.ts +2 -2
  31. package/dist/runtime/components/Dropdown.vue +71 -23
  32. package/dist/runtime/components/Dropdown.vue.d.ts +2 -2
  33. package/dist/runtime/components/FileUploader.d.vue.ts +1 -1
  34. package/dist/runtime/components/FileUploader.vue +11 -9
  35. package/dist/runtime/components/FileUploader.vue.d.ts +1 -1
  36. package/dist/runtime/components/Image.d.vue.ts +11 -1
  37. package/dist/runtime/components/Image.vue +15 -0
  38. package/dist/runtime/components/Image.vue.d.ts +11 -1
  39. package/dist/runtime/components/Input.d.vue.ts +5 -1
  40. package/dist/runtime/components/Input.vue +53 -14
  41. package/dist/runtime/components/Input.vue.d.ts +5 -1
  42. package/dist/runtime/components/Radio.d.vue.ts +2 -2
  43. package/dist/runtime/components/Radio.vue +9 -7
  44. package/dist/runtime/components/Radio.vue.d.ts +2 -2
  45. package/dist/runtime/components/ScrollArea.vue +4 -0
  46. package/dist/runtime/components/Select.d.vue.ts +1 -1
  47. package/dist/runtime/components/Select.vue +11 -9
  48. package/dist/runtime/components/Select.vue.d.ts +1 -1
  49. package/dist/runtime/components/Tabs.d.vue.ts +8 -1
  50. package/dist/runtime/components/Tabs.vue +21 -6
  51. package/dist/runtime/components/Tabs.vue.d.ts +8 -1
  52. package/dist/runtime/components/Textarea.d.vue.ts +39 -185
  53. package/dist/runtime/components/Textarea.vue +94 -71
  54. package/dist/runtime/components/Textarea.vue.d.ts +39 -185
  55. package/dist/runtime/components/Toggle.d.vue.ts +9 -3
  56. package/dist/runtime/components/Toggle.vue +70 -122
  57. package/dist/runtime/components/Toggle.vue.d.ts +9 -3
  58. package/dist/runtime/components/Tooltip.vue +3 -0
  59. package/dist/runtime/components/uiProps.d.ts +2 -2
  60. package/dist/runtime/components/uiProps.js +2 -2
  61. package/dist/runtime/components/useUiClasses.d.ts +3 -1
  62. package/dist/runtime/components/useUiClasses.js +7 -5
  63. package/dist/runtime/docs/index.vue +163 -72
  64. package/package.json +1 -1
@@ -26,8 +26,7 @@
26
26
  </p>
27
27
  <p class="text-gray-700 mb-4 font-light">
28
28
  To begin, install the library and ensure Tailwind CSS is properly configured in your Nuxt project. You can
29
- then start using components directly in your templates and customize them using Tailwind utility classes.es
30
- directly via the class prop or standard class bindings, making customization straightforward and flexible.
29
+ then start using components directly in your templates and customize them using Tailwind utility classes.
31
30
  </p>
32
31
  <p class="text-gray-700 font-light">
33
32
  This documentation will guide you through installation, basic usage, and common patterns to help you get
@@ -43,7 +42,7 @@
43
42
  </DocMegaSection>
44
43
  <!-- Form Controls -->
45
44
  <DocMegaSection title="Form Controls"
46
- sub-title="Interactive checkbox component for boolean and multi-state selections.">
45
+ sub-title="Fields for capturing user input, from simple text and toggles to color, date, and file selection.">
47
46
  <DocSection title="UIInput"
48
47
  sub-title="Flexible input component with built-in validation, floating labels, styling variants, customizable sizes, colors, border radius options, and native input type support.">
49
48
  <DocComponent title="Basic Input" caption="A standard text input with a floating label.">
@@ -191,11 +190,11 @@
191
190
  <UIInput v-model="url" type="url" label="URL Input" placeholder="Enter your website URL" flat />
192
191
  <UIInput v-model="url" type="url" label="URL Input" placeholder="Enter your website URL" outlined />
193
192
  <UIInput v-model="url" type="url" label="URL Input" placeholder="Enter your website URL" borderless />
194
- <UIInput v-model="telphone" type="tel" label="Phone Input" placeholder="Enter your phone number" />
195
- <UIInput v-model="telphone" type="tel" label="Phone Input" placeholder="Enter your phone number" flat />
196
- <UIInput v-model="telphone" type="tel" label="Phone Input" placeholder="Enter your phone number"
193
+ <UIInput v-model="phone" type="tel" label="Phone Input" placeholder="Enter your phone number" />
194
+ <UIInput v-model="phone" type="tel" label="Phone Input" placeholder="Enter your phone number" flat />
195
+ <UIInput v-model="phone" type="tel" label="Phone Input" placeholder="Enter your phone number"
197
196
  outlined />
198
- <UIInput v-model="telphone" type="tel" label="Phone Input" placeholder="Enter your phone number"
197
+ <UIInput v-model="phone" type="tel" label="Phone Input" placeholder="Enter your phone number"
199
198
  borderless />
200
199
  <UIInput v-model="number" type="number" label="Number Input" placeholder="Enter a number" />
201
200
  <UIInput v-model="number" type="number" label="Number Input" placeholder="Enter a number" flat />
@@ -233,6 +232,15 @@
233
232
  <UIInput v-model="email" label="Validate on Blur" validateOn="blur" type="email" />
234
233
  <UIInput v-model="email" label="Validate on Input" validateOn="input" type="email" />
235
234
  </DocComponent>
235
+ <DocComponent title="External Error State"
236
+ caption="Pass error and errorMessage to force the error style and message from outside the component, e.g. for server-side validation results.">
237
+ <UIInput v-model="value" label="Email" error errorMessage="This email is already taken." />
238
+ </DocComponent>
239
+ <DocComponent title="Character Class Rules (allow / deny)"
240
+ caption="allow restricts input to a union of character classes; deny blocks any character from the listed classes. Rules can be combined.">
241
+ <UIInput v-model="value" label="Letters and spaces only" :allow="['alphabets', 'spaces']" />
242
+ <UIInput v-model="value" label="No digits allowed" :deny="['numbers']" />
243
+ </DocComponent>
236
244
  </DocSection>
237
245
  <DocSection title="UITextarea"
238
246
  sub-title="Multi-line text input with auto-grow, counters, validation, and styling support.">
@@ -248,6 +256,9 @@
248
256
  <DocComponent title="Auto Grow" caption="Automatically expands vertically as content grows.">
249
257
  <UITextarea v-model="text" autoGrow placeholder="Start typing..." />
250
258
  </DocComponent>
259
+ <DocComponent title="Auto Grow with Max Rows" caption="Auto-grow stops expanding once maxRows is reached, then scrolls internally.">
260
+ <UITextarea v-model="text" autoGrow :rows="2" :maxRows="5" placeholder="Keep typing to see it cap at 5 rows..." />
261
+ </DocComponent>
251
262
  <DocComponent title="Word Count" caption="Displays the current number of words entered.">
252
263
  <UITextarea v-model="text" showWordCount />
253
264
  </DocComponent>
@@ -264,7 +275,7 @@
264
275
  <UITextarea v-model="text" error errorMessage="Description is required." />
265
276
  </DocComponent>
266
277
  <DocComponent title="Disabled" caption="Prevents user interaction.">
267
- <UITextarea v-model="text" disable />
278
+ <UITextarea v-model="text" disabled />
268
279
  </DocComponent>
269
280
  <DocComponent title="Read Only" caption="Allows content to be viewed without editing.">
270
281
  <UITextarea v-model="text" modelValue="This content cannot be edited." readonly />
@@ -361,8 +372,8 @@
361
372
  </DocComponent>
362
373
  <DocComponent title="Disabled Toggle" caption="Disabled state prevents user interaction.">
363
374
  <div class="flex flex-wrap gap-6">
364
- <UIToggle v-model="toggleInput" disable />
365
- <UIToggle v-model="toggleInput" disable :model-value="true" />
375
+ <UIToggle v-model="toggleInput" disabled />
376
+ <UIToggle v-model="toggleInput" disabled :model-value="true" />
366
377
  </div>
367
378
  </DocComponent>
368
379
  <DocComponent title="Custom Active/Inactive Values"
@@ -427,8 +438,8 @@
427
438
  <DocComponent title="Disabled Checkbox"
428
439
  caption="Disabled checkboxes prevent interaction and indicate unavailable options.">
429
440
  <div class="flex gap-6 items-center">
430
- <UICheckbox v-model="checked" disable label="Locked option" />
431
- <UICheckbox v-model="checked" disable checkedColor="blue-500" label="Read-only" />
441
+ <UICheckbox v-model="checked" disabled label="Locked option" />
442
+ <UICheckbox v-model="checked" disabled checkedColor="blue-500" label="Read-only" />
432
443
  </div>
433
444
  </DocComponent>
434
445
  <DocComponent title="Rounded Checkbox" caption="Change the checkbox shape using the rounded prop.">
@@ -490,6 +501,14 @@
490
501
  <UIRadio v-model="radioValue" value="two" label="Green" color="#22c55e" icon="check" />
491
502
  </div>
492
503
  </DocComponent>
504
+ <DocComponent title="Hex Colors (No Icon)"
505
+ caption="Without an icon, a plain colored dot is used instead. It only renders its hex color while the radio is selected.">
506
+ <div class="flex flex-col gap-3">
507
+ <UIRadio v-model="radioValue" value="three" label="Purple Dot" color="#7c3aed" />
508
+
509
+ <UIRadio v-model="radioValue" value="four" label="Green Dot" color="#22c55e" />
510
+ </div>
511
+ </DocComponent>
493
512
  <DocComponent title="Rounded Variants" caption="Different rounded styles.">
494
513
  <div class="flex flex-col gap-3">
495
514
  <UIRadio v-model="radioValue" value="none" label="Rounded None" rounded="none" icon="check" />
@@ -504,9 +523,9 @@
504
523
  </DocComponent>
505
524
  <DocComponent title="Disabled Radios" caption="Disabled state prevents interaction.">
506
525
  <div class="flex flex-col gap-3">
507
- <UIRadio v-model="radioValue" value="one" label="Disabled" disable />
526
+ <UIRadio v-model="radioValue" value="one" label="Disabled" disabled />
508
527
 
509
- <UIRadio v-model="radioValue" value="two" label="Disabled Selected" disable />
528
+ <UIRadio v-model="radioValue" value="two" label="Disabled Selected" disabled />
510
529
  </div>
511
530
  </DocComponent>
512
531
  <DocComponent title="Label Positions" caption="Labels can appear on all sides.">
@@ -708,24 +727,14 @@
708
727
  <UIDate v-model="dateValue" format="DD/MM/YYYY" />
709
728
  </div>
710
729
  </DocComponent>
711
- <DocComponent title="Timestamp Output" caption="Return selected date as a timestamp.">
712
- <UIDate v-model="dateValue" format="timestamp" />
713
- </DocComponent>
714
- <DocComponent title="Disable Weekends" caption="Dynamically disable weekends from selection.">
715
- {{ disabledWeekends }}
716
- <!-- <UIDate
717
- v-model="dateValue"
718
- :disabledDates="disabledWeekends"
719
- /> -->
720
- </DocComponent>
721
- <DocComponent title="Highlight Events" caption="Highlight important dates with custom colors.">
730
+ <DocComponent title="Highlight Events" caption="Mark specific dates with a small colored dot using the events prop (array of { date, color }).">
722
731
  <UIDate v-model="dateValue" :events="[
723
732
  { date: '2026-04-10', color: 'red-500' },
724
733
  { date: '2026-04-15', color: 'green-500' }
725
734
  ]" />
726
735
  </DocComponent>
727
- <DocComponent title="Today Highlight" caption="Automatically highlight today's date.">
728
- <UIDate v-model="dateValue" today />
736
+ <DocComponent title="Today" caption="The current day is always outlined automatically — no prop needed.">
737
+ <UIDate v-model="dateValue" />
729
738
  </DocComponent>
730
739
  <DocComponent title="Custom Header Slot" caption="Replace the default header with custom content.">
731
740
  <UIDate v-model="dateValue">
@@ -739,25 +748,15 @@
739
748
  <DocComponent title="Hide Header" caption="Remove the header section completely.">
740
749
  <UIDate v-model="dateValue" :showHeader="false" />
741
750
  </DocComponent>
742
- <DocComponent title="Date & Time Picker" caption="Enable time selection along with date.">
743
- <UIDate v-model="dateTime" type="datetime" />
744
- </DocComponent>
745
- <!-- <DocComponent
746
- title="Full Featured Example"
747
- caption="Combining multiple features into a powerful date picker."
748
- >
749
- <UIDate
750
- v-model="rangeDates"
751
- range-date
752
- color="indigo-600"
753
- bordered
754
- :events="[
755
- { date: '2026-04-12', color: 'yellow-400' }
756
- ]"
757
- :disabledDates="['2026-04-10']"
758
- format="DD MMM YYYY"
759
- />
760
- </DocComponent> -->
751
+ <DocComponent title="Disabled" caption="Prevent any interaction with the calendar, including month navigation.">
752
+ <UIDate v-model="dateValue" disabled />
753
+ </DocComponent>
754
+ <DocComponent title="Full Featured Example"
755
+ caption="Combining multiple features into a powerful date range picker. Ranges now track full dates so they stay correct across month boundaries, and starting a new selection after a range is complete begins a fresh range instead of extending the old one.">
756
+ <UIDate v-model="rangeDates" range-date color="indigo" bordered :events="[
757
+ { date: '2026-04-12', color: 'yellow-400' }
758
+ ]" :disabledDates="['2026-04-10']" />
759
+ </DocComponent>
761
760
  </DocSection>
762
761
  <DocSection title="UIFileUploader" sub-title="Material-inspired file uploader with drag-and-drop support.">
763
762
  <DocComponent title="Basic Upload" caption="Default uploader.">
@@ -1012,12 +1011,12 @@
1012
1011
  <DocComponent title="Disabled Button"
1013
1012
  caption="Buttons in an inactive state with no hover or click interaction, used to indicate unavailable actions.">
1014
1013
  <div class="flex items-center gap-4 mb-4">
1015
- <UIButton label="Toggle Enable" @click="disable = !disable" />
1016
- <UIButton :disable="disable" color="blue-500" label="Click Me" />
1017
- <UIButton :disable="disable" outline color="green-600" label="Outlined" />
1018
- <UIButton :disable="disable" flat color="yellow-500" label="Flat" />
1019
- <UIButton :disable="disable" unelevated color="red-600" label="Unelevated" />
1020
- <UIButton :disable="disable" rounded="lg" color="gray-600" label="Rounded Lg" />
1014
+ <UIButton label="Toggle Enable" @click="buttonDisabled = !buttonDisabled" />
1015
+ <UIButton :disabled="buttonDisabled" color="blue-500" label="Click Me" />
1016
+ <UIButton :disabled="buttonDisabled" outline color="green-600" label="Outlined" />
1017
+ <UIButton :disabled="buttonDisabled" flat color="yellow-500" label="Flat" />
1018
+ <UIButton :disabled="buttonDisabled" unelevated color="red-600" label="Unelevated" />
1019
+ <UIButton :disabled="buttonDisabled" rounded="lg" color="gray-600" label="Rounded Lg" />
1021
1020
  </div>
1022
1021
  </DocComponent>
1023
1022
  </DocSection>
@@ -1125,6 +1124,27 @@
1125
1124
  </UITabPanel>
1126
1125
  </UITabs>
1127
1126
  </DocComponent>
1127
+ <DocComponent title="Custom Color" caption="Control the active-tab text/indicator color using the color prop.">
1128
+ <UITabs v-model="activeTab" color="emerald-600">
1129
+ <UITabPanel name="first" label="First Tab">
1130
+ <p>Active tab and indicator render in emerald-600.</p>
1131
+ </UITabPanel>
1132
+ <UITabPanel name="second" label="Second Tab">
1133
+ <p>Second tab content.</p>
1134
+ </UITabPanel>
1135
+ </UITabs>
1136
+ </DocComponent>
1137
+ <DocComponent title="Custom Classes"
1138
+ caption="UITabs is a multi-root component, so plain class attrs aren't automatically inherited. Use headerClass and contentClass (or a plain class attribute, which lands on the header) to style each region.">
1139
+ <UITabs v-model="activeTab" header-class="rounded-t-lg" content-class="p-3 border border-t-0 rounded-b-lg">
1140
+ <UITabPanel name="first" label="First Tab">
1141
+ <p>Header and content wrapper both accept custom classes.</p>
1142
+ </UITabPanel>
1143
+ <UITabPanel name="second" label="Second Tab">
1144
+ <p>Second tab content.</p>
1145
+ </UITabPanel>
1146
+ </UITabs>
1147
+ </DocComponent>
1128
1148
  </DocSection>
1129
1149
  <DocSection title="UIAccordion" sub-title="Expandable/collapsible content sections.">
1130
1150
  <DocComponent title="Basic Accordion"
@@ -1329,13 +1349,6 @@
1329
1349
  </template>
1330
1350
  </UIStepper>
1331
1351
  </DocComponent>
1332
- <DocComponent title="Minimal Stepper" caption="A clean and compact stepper layout.">
1333
- <UIStepper flat :steps="[
1334
- 'Start',
1335
- 'Setup',
1336
- 'Finish',
1337
- ]" />
1338
- </DocComponent>
1339
1352
  <DocComponent title="Multi-Step Form" caption="Ideal for onboarding and registration flows.">
1340
1353
  <UIStepper v-model="step" vertical :steps="[
1341
1354
  'Account Setup',
@@ -1571,6 +1584,21 @@
1571
1584
  </template>
1572
1585
  </UICard>
1573
1586
  </DocComponent>
1587
+ <DocComponent title="Sticky Header / Footer"
1588
+ caption="stickyHeader and stickyFooter keep the header and footer fixed in place while the body scrolls independently. They work with or without an explicit maxHeight — if the card's height is otherwise constrained (e.g. by a parent flex/grid layout), sticky still applies.">
1589
+ <UICard bordered stickyHeader stickyFooter maxHeight="220px">
1590
+ <template #header>
1591
+ <h3 class="text-lg font-semibold">Fixed Header</h3>
1592
+ </template>
1593
+ <p v-for="n in 12" :key="n">Scrollable body line {{ n }}.</p>
1594
+ <template #footer>
1595
+ <div class="flex justify-end gap-2">
1596
+ <UIButton flat label="Cancel" />
1597
+ <UIButton label="Save" />
1598
+ </div>
1599
+ </template>
1600
+ </UICard>
1601
+ </DocComponent>
1574
1602
  </DocSection>
1575
1603
  <!-- Dropdown -->
1576
1604
  <DocSection title="UIDropdown" sub-title="Dropdown menu for actions, settings, or navigation links.">
@@ -1800,6 +1828,28 @@
1800
1828
  </template>
1801
1829
  </UIDropdown>
1802
1830
  </DocComponent>
1831
+ <DocComponent title="Inside a Scrollable / Clipped Container"
1832
+ caption="The menu is teleported to <body> and positioned from the trigger's bounding rect, so it is never clipped by an ancestor's overflow:hidden or overflow:auto, even nested several levels deep.">
1833
+ <div class="h-32 overflow-hidden border border-dashed border-gray-300 rounded-md p-4">
1834
+ <UIDropdown>
1835
+ <template #trigger>
1836
+ <button class="px-4 py-2 bg-rose-500 text-white rounded-md">
1837
+ Open Inside Clipped Box
1838
+ </button>
1839
+ </template>
1840
+ <template #menu>
1841
+ <div class="flex flex-col gap-1">
1842
+ <button class="px-3 py-2 rounded hover:bg-gray-100 dark:hover:bg-gray-700 text-left">
1843
+ Still fully visible
1844
+ </button>
1845
+ <button class="px-3 py-2 rounded hover:bg-gray-100 dark:hover:bg-gray-700 text-left">
1846
+ Not clipped by the box above
1847
+ </button>
1848
+ </div>
1849
+ </template>
1850
+ </UIDropdown>
1851
+ </div>
1852
+ </DocComponent>
1803
1853
  </DocSection>
1804
1854
  <!-- Drawer -->
1805
1855
  <DocSection title="UIDrawer"
@@ -1842,11 +1892,6 @@
1842
1892
  </UIDrawer>
1843
1893
  </DocComponent>
1844
1894
  </DocSection>
1845
- <!-- UI List and ListItem -->
1846
- <DocMegaSection title="UIList + UIListItem" sub-title="List and list items for grouped content.">
1847
- <DocSection title="UIList"></DocSection>
1848
- <DocSection title="UIListItem"></DocSection>
1849
- </DocMegaSection>
1850
1895
  <!-- Table-->
1851
1896
  <DocSection title="UITable" sub-title="Data grid / table with rows, columns, and sorting.">
1852
1897
  <DocComponent title="Basic Table" caption="A simple table with headers and rows.">
@@ -2198,6 +2243,18 @@
2198
2243
  <DocComponent title="Placeholder Fallback" caption="Displays a fallback image when loading fails.">
2199
2244
  <UIImage src="/invalid-image.jpg" placeholder="https://picsum.photos/300" />
2200
2245
  </DocComponent>
2246
+
2247
+ <DocComponent title="Content Overlay"
2248
+ caption="Use the overlay slot to render text or custom content on top of the image. The overlay wrapper is pointer-events-none by default so it never blocks image interactions; opt individual elements back in with pointer-events-auto.">
2249
+ <UIImage src="https://picsum.photos/600/300" width="400px" height="220px" class="rounded-lg">
2250
+ <template #overlay>
2251
+ <div class="w-full h-full flex flex-col justify-end bg-gradient-to-t from-black/60 to-transparent p-4">
2252
+ <h4 class="text-white font-semibold">Overlay Title</h4>
2253
+ <p class="text-white/80 text-sm">Custom content rendered on top of the image.</p>
2254
+ </div>
2255
+ </template>
2256
+ </UIImage>
2257
+ </DocComponent>
2201
2258
  </DocSection>
2202
2259
  <!-- Icon -->
2203
2260
  <DocSection title="UIIcon" sub-title="Render icons from any supported library.">
@@ -2374,6 +2431,34 @@
2374
2431
  </UIBadge>
2375
2432
  </DocComponent>
2376
2433
  </DocSection>
2434
+ <!-- Chip -->
2435
+ <DocSection title="UIChip" sub-title="Small status indicator, functionally identical to UIBadge — same props (content, icon, position, show, color, size, rounded).">
2436
+ <DocComponent title="Basic UIChip" caption="UIChip accepts the same API as UIBadge: content, icon, color, size, rounded, position, and show.">
2437
+ <div class="flex gap-4 items-center">
2438
+ <UIChip content="3">
2439
+ <UIButton flat icon="notifications" />
2440
+ </UIChip>
2441
+ <UIChip icon="check" color="green-400">
2442
+ <UIButton flat icon="task" />
2443
+ </UIChip>
2444
+ <UIChip content="99" color="red-400" size="lg">
2445
+ <UIButton flat icon="mail" />
2446
+ </UIChip>
2447
+ </div>
2448
+ </DocComponent>
2449
+ </DocSection>
2450
+ <!-- CodeBlock -->
2451
+ <DocSection title="UICodeBlock" sub-title="Renders live component demos alongside a formatted, syntax-highlighted, copyable view of the underlying markup.">
2452
+ <DocComponent title="Basic Code Block"
2453
+ caption="Wrap any markup in UICodeBlock to get a tabbed Example / Code view with copy-to-clipboard. The Code tab renders indented, syntax-highlighted markup and scrolls internally instead of growing the page for long snippets.">
2454
+ <UICodeBlock title="Example.vue">
2455
+ <UIButton label="Click Me" color="indigo-400" />
2456
+ <UIBadge content="5" class="ml-2">
2457
+ <UIButton flat icon="mail" />
2458
+ </UIBadge>
2459
+ </UICodeBlock>
2460
+ </DocComponent>
2461
+ </DocSection>
2377
2462
  <!-- Divider -->
2378
2463
  <DocSection title="UIDivider" sub-title="Horizontal or vertical separators.">
2379
2464
  <DocComponent title="Basic Divider" caption="Default horizontal divider.">
@@ -2396,10 +2481,21 @@
2396
2481
  <UIDivider color="#f97316" />
2397
2482
  </DocComponent>
2398
2483
 
2399
- <DocComponent title="Inset Divider" caption="Inset dividers add horizontal margins.">
2484
+ <DocComponent title="Inset Divider" caption="Inset dividers add horizontal margin on horizontal dividers.">
2400
2485
  <UIDivider inset color="gray-400" />
2401
2486
  </DocComponent>
2402
2487
 
2488
+ <DocComponent title="Inset Vertical Divider"
2489
+ caption="On a vertical divider, inset adds vertical margin instead, so the divider is inset from top/bottom rather than left/right.">
2490
+ <div class="flex items-center h-20 gap-4">
2491
+ <span>Left</span>
2492
+
2493
+ <UIDivider vertical inset color="gray-400" />
2494
+
2495
+ <span>Right</span>
2496
+ </div>
2497
+ </DocComponent>
2498
+
2403
2499
  <DocComponent title="Thick Divider" caption="Increase divider thickness for stronger visual separation.">
2404
2500
  <UIDivider thickness="4px" color="purple-500" />
2405
2501
  </DocComponent>
@@ -2439,7 +2535,7 @@ const url = ref("");
2439
2535
  const password = ref("");
2440
2536
  const search = ref("");
2441
2537
  const number = ref(0);
2442
- const telphone = ref(0);
2538
+ const phone = ref("");
2443
2539
  const date = ref("");
2444
2540
  const datetimeLocal = ref("");
2445
2541
  const month = ref("");
@@ -2492,15 +2588,10 @@ const colorPickerValue = ref("");
2492
2588
  const dateValue = ref("");
2493
2589
  const multiDates = ref("");
2494
2590
  const rangeDates = ref("");
2495
- const dateTime = ref("");
2496
- const disabledWeekends = (date2) => {
2497
- const d = new Date(date2);
2498
- return d.getDay() === 0 || d.getDay() === 6;
2499
- };
2500
2591
  const files = ref([]);
2501
2592
  const singleFile = ref([]);
2502
2593
  const multipleFiles = ref([]);
2503
- const disable = ref(true);
2594
+ const buttonDisabled = ref(true);
2504
2595
  const isOpen = ref(false);
2505
2596
  const dialogToggle1 = ref(false);
2506
2597
  const dialogToggle2 = ref(false);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windly-ui",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "main": "./dist/module.mjs",
6
6
  "exports": {