@rarui/components 1.28.1 → 1.30.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  `@rarui/components` components is a component library built with [Lit](https://lit.dev/).
4
4
 
5
+ ## 2025-10-16 `1.30.0`
6
+
7
+ #### 🎉 New features
8
+
9
+ - **Button `as` Property**: Added `as` property to Button component allowing it to render as either `button` (default) or `a` elements. When `as="a"` is used, the component accepts `href` and `target` properties for link behavior while maintaining the same visual styling and click event handling. Form-related functionality (submit/reset) is only active when `as="button"`. ([#144](https://git.rarolabs.com.br/frontend/rarui/-/merge_requests/144) by [@junior](https://git.rarolabs.com.br/junior))
10
+ - **Banner Success Appearance**: Added support for new `success` appearance variant in Banner component, providing visual feedback for successful operations with appropriate success colors. ([#144](https://git.rarolabs.com.br/frontend/rarui/-/merge_requests/144) by [@junior](https://git.rarolabs.com.br/junior))
11
+
12
+ #### 🐛 Bug fixes
13
+
14
+ - **Input Height Consistency**: Fixed input container height calculation by applying proper box-sizing to ensure consistent sizing across different border configurations. ([#144](https://git.rarolabs.com.br/frontend/rarui/-/merge_requests/144) by [@junior](https://git.rarolabs.com.br/junior))
15
+
16
+ #### 💡 Others
17
+
18
+ - **Inject CDN Script Enhancement**: Updated Storybook inject-cdn script to automatically manage both `globals.css` and `rarui-theme-dark.css` CDN links. The script now properly updates both stylesheets when package versions change, ensuring consistent theme support across Storybook development environments. ([#144](https://git.rarolabs.com.br/frontend/rarui/-/merge_requests/144) by [@junior](https://git.rarolabs.com.br/junior))
19
+
20
+ ## 2025-10-09 `1.29.0`
21
+
22
+ #### 🎉 New features
23
+
24
+ - Added `items-after-truncate` property to the `Select` component for controlling item truncation with "+X" chip display in multiple selection mode. ([#143](https://git.rarolabs.com.br/frontend/rarui/-/merge_requests/143) by [@junior](https://git.rarolabs.com.br/junior))
25
+
5
26
  ## 2025-10-07 `1.28.1`
6
27
 
7
28
  #### 🐛 Bug fixes
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.28.0",
2
+ "version": "1.29.0",
3
3
  "tags": [
4
4
  {
5
5
  "name": "rarui-avatar",
@@ -384,7 +384,7 @@
384
384
  },
385
385
  {
386
386
  "name": "name",
387
- "description": "Name of the icon to be rendered (must be in the @rarui/icons package).\n\n- add-circle-filled\n- add-circle-outlined\n- alarm-filled\n- alarm-outlined\n- alternate-email\n- archive-all-filled\n- archive-all-outlined\n- archive-filled\n- archive-in-filled\n- archive-in-outlined\n- archive-outlined\n- arrow-alt-down\n- arrow-alt-left\n- arrow-alt-right\n- arrow-alt-up\n- arrow-circle-down-filled\n- arrow-circle-down-outlined\n- arrow-circle-up-filled\n- arrow-circle-up-outlined\n- arrow-circled-down-circle-outlined\n- arrow-circled-down-filled\n- arrow-circled-up-circle-outlined\n- arrow-direction-down-up\n- arrow-direction-left-right\n- arrow-direction-right-left\n- arrow-direction-up-down\n- arrow-directions\n- arrow-down\n- arrow-down-left\n- arrow-down-right\n- arrow-first-page\n- arrow-last-page\n- arrow-left\n- arrow-line-down\n- arrow-line-left\n- arrow-line-long-down\n- arrow-line-long-left\n- arrow-line-long-right\n- arrow-line-long-up\n- arrow-line-right\n- arrow-line-up\n- arrow-right\n- arrow-subdirectory-left\n- arrow-subdirectory-right\n- arrow-trending-down\n- arrow-trending-up\n- arrow-up\n- arrow-up-left\n- arrow-up-right\n- attachment\n- backspace\n- backspace-outlined\n- barley\n- barley-off\n- bolt-circle-filled\n- bolt-circle-outlined\n- bookmark-filled\n- bookmark-outlined\n- calendar-date-range-filled\n- calendar-date-range-outlined\n- calendar-event-filled\n- calendar-event-outlined\n- calendar-filled\n- calendar-outlined\n- camera-filled\n- camera-outlined\n- camera-shutter-filled\n- camera-shutter-outlined\n- cancel-circle-filled\n- cancel-circle-outlined\n- car-filled\n- car-outlined\n- chart-bars-filled\n- chart-bars-outlined\n- chat-bubble-filled\n- chat-bubble-outlined\n- chat-message-filled\n- chat-message-outlined\n- check\n- check-circle-filled\n- check-circle-outlined\n- check-small\n- chevron-big-down\n- chevron-big-left\n- chevron-big-right\n- chevron-big-up\n- chevron-down\n- chevron-left\n- chevron-right\n- chevron-up\n- clock-filled\n- clock-outlined\n- close\n- cloud-filled\n- cloud-outlined\n- contact-support-filled\n- contact-support-outlined\n- content-copy-filled\n- content-copy-outlined\n- content-paste-filled\n- content-paste-outlined\n- conversation-filled\n- conversation-outlined\n- copyright-filled\n- copyright-outlined\n- credit-card-filled\n- credit-card-outlined\n- danger-filled\n- danger-outlined\n- dashboard-filled\n- dashboard-outlined\n- document-filled\n- document-outlined\n- document-text-filled\n- document-text-outlined\n- download-filled\n- download-outlined\n- eco-filled\n- eco-outlined\n- edit-filled\n- edit-outlined\n- euro-symbol\n- exit-fullscreen\n- eye-filled\n- eye-off-filled\n- eye-off-outlined\n- eye-outlined\n- facebook-filled\n- facebook-outlined\n- file-copy-filled\n- file-copy-outlined\n- filter-alt-filled\n- filter-alt-outlined\n- filter-list\n- fingerprint\n- flag-filled\n- flag-outlined\n- flag-tour-filled\n- flag-tour-outlined\n- flower-filled\n- flower-outlined\n- folder-filled\n- folder-list-filled\n- folder-list-outlined\n- folder-open\n- folder-outlined\n- fruit-apple-filled\n- fruit-apple-outlined\n- fullscreen-filled\n- fullscreen-outlined\n- google\n- google-play\n- headphones-filled\n- headphones-outlined\n- heart-filled\n- heart-outlined\n- help-filled\n- help-outlined\n- history\n- home-filled\n- home-outlined\n- image-filled\n- image-outlined\n- info-circle-filled\n- info-circle-outlined\n- instagram\n- instagram-outlined\n- label-filled\n- label-important-filled\n- label-important-outlined\n- label-outlined\n- language\n- lightbulb-filled\n- lightbulb-outlined\n- link\n- linkedin-filled\n- linkedin-outlined\n- loader\n- loading\n- lock-filled\n- lock-open-filled\n- lock-open-outlined\n- lock-outlined\n- login\n- logout\n- mail-filled\n- mail-open-filled\n- mail-open-outlined\n- mail-outlined\n- menu\n- menu-large\n- microphone-filled\n- microphone-outlined\n- minus\n- money-filled\n- money-outlined\n- mood-bad\n- mood-bad-outlined\n- mood-filled\n- mood-outlined\n- more-horiz\n- more-vert\n- music-note-filled\n- music-note-outlined\n- notification-filled\n- notification-outlined\n- open-in-new\n- package\n- package-outlined\n- pause-filled\n- pause-outlined\n- pets-filled\n- pets-outlined\n- phone-call-filled\n- phone-call-outlined\n- phone-filled\n- phone-outlined\n- pin-filled\n- pin-outlined\n- play-arrow-filled\n- play-arrow-outlined\n- play-circle-filled\n- play-circle-outlined\n- plus\n- power-settings-new\n- printer-filled\n- printer-outlined\n- push-pin-filled\n- push-pin-outlined\n- receipt-filled\n- receipt-outlined\n- recycle\n- redeem\n- redo\n- refresh\n- refresh-alt\n- remove\n- remove-circle-filled\n- remove-circle-outlined\n- repeat\n- reply\n- save-alt\n- screen-outlined\n- search\n- send-filled\n- send-outlined\n- sentiment-dissatisfied-filled\n- sentiment-dissatisfied-outlined\n- sentiment-neutral-filled\n- sentiment-neutral-outlined\n- sentiment-satisfied-filled\n- sentiment-satisfied-outlined\n- sentiment-very-dissatisfied-filled\n- sentiment-very-dissatisfied-outlined\n- sentiment-very-satisfied-filled\n- sentiment-very-satisfied-outlined\n- settings-filled\n- settings-outlined\n- share-filled\n- share-outlined\n- shopping-bag-filled\n- shopping-bag-outlined\n- shopping-cart-add\n- shopping-cart-filled\n- shopping-cart-outlined\n- sprout\n- sprout-outline-outlined\n- star-filled\n- star-outlined\n- stay-primary-portrait\n- storefront\n- tag-filled\n- tag-outlined\n- textsms-filled\n- textsms-outlined\n- thumb-down-filled\n- thumb-down-outlined\n- thumb-up-filled\n- thumb-up-outlined\n- tiktok\n- toc\n- trash-filled\n- trash-outlined\n- truck-filled\n- truck-outlined\n- tune\n- twitter\n- undo\n- upload-filled\n- upload-outlined\n- user-circle-filled\n- user-circle-outlined\n- user-filled\n- user-outlined\n- user-square-filled\n- user-square-outlined\n- users-filled\n- users-outlined\n- view-grid-filled\n- view-grid-outlined\n- view-list-filled\n- view-list-outlined\n- warning-bubble-filled\n- warning-bubble-outlined\n- warning-filled\n- warning-outlined\n- whatsapp-filled\n- whatsapp-outlined\n- work-filled\n- work-outlined\n- wysiwyg-filled\n- youtube-filled\n- youtube-outlined\n- zoom-in\n- zoom-out\n\n(Required)",
387
+ "description": "Name of the icon to be rendered (must be in the @rarui/icons package).\n\n- add-circle-filled\n- add-circle-outlined\n- alarm-filled\n- alarm-outlined\n- alternate-email\n- archive-all-filled\n- archive-all-outlined\n- archive-filled\n- archive-in-filled\n- archive-in-outlined\n- archive-outlined\n- arrow-alt-down\n- arrow-alt-left\n- arrow-alt-right\n- arrow-alt-up\n- arrow-circle-down-filled\n- arrow-circle-down-outlined\n- arrow-circle-up-filled\n- arrow-circle-up-outlined\n- arrow-circled-down-circle-outlined\n- arrow-circled-down-filled\n- arrow-circled-up-circle-outlined\n- arrow-direction-down-up\n- arrow-direction-left-right\n- arrow-direction-right-left\n- arrow-direction-up-down\n- arrow-directions\n- arrow-down\n- arrow-down-left\n- arrow-down-right\n- arrow-first-page\n- arrow-last-page\n- arrow-left\n- arrow-line-down\n- arrow-line-left\n- arrow-line-long-down\n- arrow-line-long-left\n- arrow-line-long-right\n- arrow-line-long-up\n- arrow-line-right\n- arrow-line-up\n- arrow-right\n- arrow-subdirectory-left\n- arrow-subdirectory-right\n- arrow-trending-down\n- arrow-trending-up\n- arrow-up\n- arrow-up-left\n- arrow-up-right\n- attachment\n- backspace\n- backspace-outlined\n- barley\n- barley-off\n- bolt-circle-filled\n- bolt-circle-outlined\n- book-filled\n- book-outlined\n- bookmark-filled\n- bookmark-outlined\n- calendar-date-range-filled\n- calendar-date-range-outlined\n- calendar-event-filled\n- calendar-event-outlined\n- calendar-filled\n- calendar-outlined\n- camera-filled\n- camera-outlined\n- camera-shutter-filled\n- camera-shutter-outlined\n- cancel-circle-filled\n- cancel-circle-outlined\n- car-filled\n- car-outlined\n- chart-bars-filled\n- chart-bars-outlined\n- chat-bubble-filled\n- chat-bubble-outlined\n- chat-message-filled\n- chat-message-outlined\n- check\n- check-circle-filled\n- check-circle-outlined\n- check-small\n- chevron-big-down\n- chevron-big-left\n- chevron-big-right\n- chevron-big-up\n- chevron-down\n- chevron-left\n- chevron-right\n- chevron-up\n- clock-filled\n- clock-outlined\n- close\n- cloud-filled\n- cloud-outlined\n- contact-support-filled\n- contact-support-outlined\n- content-copy-filled\n- content-copy-outlined\n- content-paste-filled\n- content-paste-outlined\n- conversation-filled\n- conversation-outlined\n- copyright-filled\n- copyright-outlined\n- credit-card-filled\n- credit-card-outlined\n- danger-filled\n- danger-outlined\n- dashboard-filled\n- dashboard-outlined\n- document-filled\n- document-outlined\n- document-text-filled\n- document-text-outlined\n- download-filled\n- download-outlined\n- eco-filled\n- eco-outlined\n- edit-filled\n- edit-outlined\n- euro-symbol\n- exit-fullscreen\n- eye-filled\n- eye-off-filled\n- eye-off-outlined\n- eye-outlined\n- facebook-filled\n- facebook-outlined\n- file-copy-filled\n- file-copy-outlined\n- filter-alt-filled\n- filter-alt-outlined\n- filter-list\n- fingerprint\n- flag-filled\n- flag-outlined\n- flag-tour-filled\n- flag-tour-outlined\n- flower-filled\n- flower-outlined\n- folder-filled\n- folder-list-filled\n- folder-list-outlined\n- folder-open\n- folder-outlined\n- fruit-apple-filled\n- fruit-apple-outlined\n- fullscreen-filled\n- fullscreen-outlined\n- google\n- google-play\n- graduation-filled\n- graduation-outlined\n- headphones-filled\n- headphones-outlined\n- heart-filled\n- heart-outlined\n- help-filled\n- help-outlined\n- history\n- home-filled\n- home-outlined\n- image-filled\n- image-outlined\n- info-circle-filled\n- info-circle-outlined\n- instagram\n- instagram-outlined\n- label-filled\n- label-important-filled\n- label-important-outlined\n- label-outlined\n- language\n- lightbulb-filled\n- lightbulb-outlined\n- link\n- linkedin-filled\n- linkedin-outlined\n- loader\n- loading\n- lock-filled\n- lock-open-filled\n- lock-open-outlined\n- lock-outlined\n- login\n- logout\n- mail-filled\n- mail-open-filled\n- mail-open-outlined\n- mail-outlined\n- menu\n- menu-large\n- microphone-filled\n- microphone-outlined\n- minus\n- money-filled\n- money-outlined\n- mood-bad\n- mood-bad-outlined\n- mood-filled\n- mood-outlined\n- more-horiz\n- more-vert\n- music-note-filled\n- music-note-outlined\n- notification-filled\n- notification-outlined\n- open-in-new\n- package\n- package-outlined\n- pause-filled\n- pause-outlined\n- pets-filled\n- pets-outlined\n- phone-call-filled\n- phone-call-outlined\n- phone-filled\n- phone-outlined\n- pin-filled\n- pin-outlined\n- play-arrow-filled\n- play-arrow-outlined\n- play-circle-filled\n- play-circle-outlined\n- plus\n- power-settings-new\n- printer-filled\n- printer-outlined\n- push-pin-filled\n- push-pin-outlined\n- receipt-filled\n- receipt-outlined\n- recycle\n- redeem\n- redo\n- refresh\n- refresh-alt\n- remove\n- remove-circle-filled\n- remove-circle-outlined\n- repeat\n- reply\n- save-alt\n- screen-outlined\n- search\n- send-filled\n- send-outlined\n- sentiment-dissatisfied-filled\n- sentiment-dissatisfied-outlined\n- sentiment-neutral-filled\n- sentiment-neutral-outlined\n- sentiment-satisfied-filled\n- sentiment-satisfied-outlined\n- sentiment-very-dissatisfied-filled\n- sentiment-very-dissatisfied-outlined\n- sentiment-very-satisfied-filled\n- sentiment-very-satisfied-outlined\n- settings-filled\n- settings-outlined\n- share-filled\n- share-outlined\n- shopping-bag-filled\n- shopping-bag-outlined\n- shopping-cart-add\n- shopping-cart-filled\n- shopping-cart-outlined\n- sprout\n- sprout-outline-outlined\n- star-filled\n- star-outlined\n- stay-primary-portrait\n- storefront\n- tag-filled\n- tag-outlined\n- textsms-filled\n- textsms-outlined\n- thumb-down-filled\n- thumb-down-outlined\n- thumb-up-filled\n- thumb-up-outlined\n- tiktok\n- toc\n- trash-filled\n- trash-outlined\n- truck-filled\n- truck-outlined\n- tune\n- twitter\n- undo\n- upload-filled\n- upload-outlined\n- user-circle-filled\n- user-circle-outlined\n- user-filled\n- user-outlined\n- user-square-filled\n- user-square-outlined\n- users-filled\n- users-outlined\n- view-grid-filled\n- view-grid-outlined\n- view-list-filled\n- view-list-outlined\n- warning-bubble-filled\n- warning-bubble-outlined\n- warning-filled\n- warning-outlined\n- whatsapp-filled\n- whatsapp-outlined\n- work-filled\n- work-outlined\n- wysiwyg-filled\n- youtube-filled\n- youtube-outlined\n- zoom-in\n- zoom-out\n\n(Required)",
388
388
  "type": "string",
389
389
  "values": [
390
390
  {
@@ -555,6 +555,12 @@
555
555
  {
556
556
  "name": "bolt-circle-outlined"
557
557
  },
558
+ {
559
+ "name": "book-filled"
560
+ },
561
+ {
562
+ "name": "book-outlined"
563
+ },
558
564
  {
559
565
  "name": "bookmark-filled"
560
566
  },
@@ -843,6 +849,12 @@
843
849
  {
844
850
  "name": "google-play"
845
851
  },
852
+ {
853
+ "name": "graduation-filled"
854
+ },
855
+ {
856
+ "name": "graduation-outlined"
857
+ },
846
858
  {
847
859
  "name": "headphones-filled"
848
860
  },
@@ -2597,6 +2609,45 @@
2597
2609
  "name": "form",
2598
2610
  "description": "Associates the button with a form element by ID.",
2599
2611
  "type": "string"
2612
+ },
2613
+ {
2614
+ "name": "as",
2615
+ "description": "Defines the HTML element type to render (button or anchor).\n\n- a\n- button\n\n@default button",
2616
+ "type": "string",
2617
+ "values": [
2618
+ {
2619
+ "name": "a"
2620
+ },
2621
+ {
2622
+ "name": "button",
2623
+ "description": "(default)"
2624
+ }
2625
+ ],
2626
+ "default": "button"
2627
+ },
2628
+ {
2629
+ "name": "href",
2630
+ "description": "The href URL when as=\"a\".",
2631
+ "type": "string"
2632
+ },
2633
+ {
2634
+ "name": "target",
2635
+ "description": "The target attribute when as=\"a\".\n\n- _blank\n- _parent\n- _self\n- _top",
2636
+ "type": "string",
2637
+ "values": [
2638
+ {
2639
+ "name": "_blank"
2640
+ },
2641
+ {
2642
+ "name": "_parent"
2643
+ },
2644
+ {
2645
+ "name": "_self"
2646
+ },
2647
+ {
2648
+ "name": "_top"
2649
+ }
2650
+ ]
2600
2651
  }
2601
2652
  ]
2602
2653
  },
@@ -3777,6 +3828,12 @@
3777
3828
  "description": "Specifies the default selected value(s) for the select box.\nThis can be a selectOption for single selection or an array of selectOption for multiple selections.",
3778
3829
  "values": []
3779
3830
  },
3831
+ {
3832
+ "name": "items-after-truncate",
3833
+ "description": "Maximum number of items to display before showing a \"+X\" chip with the remaining count.\nWhen set, only the specified number of selected items will be shown, followed by a chip indicating how many more items are selected.\n\n@default undefined (shows all selected items)",
3834
+ "type": "number",
3835
+ "default": "undefined (shows all selected items)"
3836
+ },
3780
3837
  {
3781
3838
  "name": "position",
3782
3839
  "description": "Position of the dropdown relative to the trigger.\n\n- bottom\n- bottom-end\n- bottom-start\n- left\n- left-end\n- left-start\n- right\n- right-end\n- right-start\n- top\n- top-end\n- top-start\n\n@default bottom-start",
@@ -9014,7 +9071,7 @@
9014
9071
  },
9015
9072
  {
9016
9073
  "name": "appearance",
9017
- "description": "Specifies the visual appearance of the banner message, influencing its color and style.\n\n- brand\n- error\n- info\n- inverted\n- neutral\n- warning\n\n@default brand",
9074
+ "description": "Specifies the visual appearance of the banner message, influencing its color and style.\n\n- brand\n- error\n- info\n- inverted\n- neutral\n- success\n- warning\n\n@default brand",
9018
9075
  "type": "string",
9019
9076
  "values": [
9020
9077
  {
@@ -9033,6 +9090,9 @@
9033
9090
  {
9034
9091
  "name": "neutral"
9035
9092
  },
9093
+ {
9094
+ "name": "success"
9095
+ },
9036
9096
  {
9037
9097
  "name": "warning"
9038
9098
  }
package/dist/index.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- import { IconName } from '@rarui/icons/dist/html/types';
2
- import { BreadcrumbProps, AccordionProps } from '@rarui/typings';
3
-
4
1
  /**
5
2
  * @license
6
3
  * Copyright 2017 Google LLC
@@ -17082,6 +17079,57 @@ declare const styles$3: {
17082
17079
 
17083
17080
  type RadioButtonVariants = NonNullable<RecipeVariants<typeof styles$3.radioButton>>;
17084
17081
 
17082
+ declare const selectStyles: {
17083
+ select: RuntimeFn<{
17084
+ /**
17085
+ * Determines the visual style of the input, affecting its border
17086
+ */
17087
+ appearance: {
17088
+ success: {
17089
+ borderColor: `var(--${string})` | `var(--${string}, ${string})`;
17090
+ ":hover": {
17091
+ borderColor: `var(--${string})` | `var(--${string}, ${string})`;
17092
+ };
17093
+ ":focus": {
17094
+ borderColor: `var(--${string})` | `var(--${string}, ${string})`;
17095
+ };
17096
+ ":active": {
17097
+ backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
17098
+ };
17099
+ };
17100
+ error: {
17101
+ borderColor: `var(--${string})` | `var(--${string}, ${string})`;
17102
+ ":hover": {
17103
+ borderColor: `var(--${string})` | `var(--${string}, ${string})`;
17104
+ };
17105
+ ":focus": {
17106
+ borderColor: `var(--${string})` | `var(--${string}, ${string})`;
17107
+ };
17108
+ ":active": {
17109
+ backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
17110
+ };
17111
+ };
17112
+ };
17113
+ /**
17114
+ * Specifies the size of the badge, controlling its dimensions.
17115
+ */
17116
+ size: {
17117
+ large: {
17118
+ height: "3rem";
17119
+ };
17120
+ medium: {
17121
+ height: "2.5rem";
17122
+ };
17123
+ small: {
17124
+ height: "2rem";
17125
+ padding: `0 var(--${string})` | `0 var(--${string}, ${string})`;
17126
+ };
17127
+ };
17128
+ }>;
17129
+ list: string;
17130
+ close: string;
17131
+ };
17132
+
17085
17133
  declare const dropdownStyles: {
17086
17134
  dropdown: RuntimeFn<{
17087
17135
  /**
@@ -17124,6 +17172,9 @@ interface DropdownSprinkle extends DropdownDynamicProperties {
17124
17172
  zIndex?: AddDollar<keyof typeof zIndexProperties> | Conditions<AddDollar<keyof typeof zIndexProperties>>;
17125
17173
  }
17126
17174
 
17175
+ type SelectVariants = NonNullable<RecipeVariants<typeof selectStyles.select>>;
17176
+ type SelectSprinkle = Pick<StandardLonghandProperties, "maxHeight"> & Pick<DropdownSprinkle, "zIndex">;
17177
+
17127
17178
  declare const statusStyles: {
17128
17179
  status: RuntimeFn<{
17129
17180
  /**
@@ -17220,6 +17271,10 @@ declare const bannerStyles: {
17220
17271
  backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
17221
17272
  color: `var(--${string})` | `var(--${string}, ${string})`;
17222
17273
  };
17274
+ success: {
17275
+ backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
17276
+ color: `var(--${string})` | `var(--${string}, ${string})`;
17277
+ };
17223
17278
  info: {
17224
17279
  backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
17225
17280
  color: `var(--${string})` | `var(--${string}, ${string})`;
@@ -18069,6 +18124,74 @@ interface RadioButtonTyping {
18069
18124
  }
18070
18125
  type RadioButtonProps = RadioButtonTyping & RadioButtonVariants;
18071
18126
 
18127
+ interface SelectOptionProps {
18128
+ /**
18129
+ * Label for the option. This is the text that will be displayed for the option.
18130
+ */
18131
+ label: string;
18132
+ /**
18133
+ * Value of the option. This is the value that will be used internally and returned when the option is selected.
18134
+ */
18135
+ value: string;
18136
+ }
18137
+ interface SelectTyping {
18138
+ /**
18139
+ * Options for the Select component. This should be an array of SelectOptionProps objects.
18140
+ */
18141
+ options: SelectOptionProps[];
18142
+ /**
18143
+ * Default selected values for the Select component.
18144
+ * This should be an array of SelectOptionProps objects representing the selected options.
18145
+ */
18146
+ value?: SelectOptionProps | SelectOptionProps[];
18147
+ /**
18148
+ * Callback function that is called when the selected values change.
18149
+ * This function receives an array of SelectOptionProps objects representing the selected options.
18150
+ */
18151
+ onChange?: (selectedOptions: SelectOptionProps | SelectOptionProps[]) => void;
18152
+ /**
18153
+ * Enables multiple selection mode.
18154
+ * @default false
18155
+ */
18156
+ multiple?: boolean;
18157
+ /**
18158
+ * Specifies the default selected value(s) for the select box.
18159
+ * This can be a selectOption for single selection or an array of selectOption for multiple selections.
18160
+ */
18161
+ defaultValue?: SelectOptionProps | SelectOptionProps[];
18162
+ /**
18163
+ * If true, the Select component is shown.
18164
+ */
18165
+ open?: boolean;
18166
+ /**
18167
+ * Placeholder text displayed when no option is selected.
18168
+ */
18169
+ placeholder?: string;
18170
+ /**
18171
+ * Disables the select component, disallowing user interaction.
18172
+ * @default false
18173
+ */
18174
+ disabled?: boolean;
18175
+ /**
18176
+ * Determines whether the select box should enable flipping the options' dropdown when there is not enough space to display it in its default direction.
18177
+ * This can help ensure the dropdown is always visible on the screen.
18178
+ * @default true
18179
+ */
18180
+ enabledFlip?: boolean;
18181
+ /**
18182
+ * Specifies the ID of the portal element where the dropdown should be rendered.
18183
+ * This can be useful for rendering the dropdown in a different part of the DOM, such as a modal or overlay.
18184
+ */
18185
+ portalId?: string;
18186
+ /**
18187
+ * Maximum number of items to display before showing a "+X" chip with the remaining count.
18188
+ * When set, only the specified number of selected items will be shown, followed by a chip indicating how many more items are selected.
18189
+ * @default undefined (shows all selected items)
18190
+ */
18191
+ itemsAfterTruncate?: number;
18192
+ }
18193
+ type SelectProps = SelectTyping & SelectVariants & SelectSprinkle;
18194
+
18072
18195
  interface TextareaProps extends TextareaVariants {
18073
18196
  /**
18074
18197
  * Number of lines to be rendered for the user to input text
@@ -18093,6 +18216,18 @@ interface ToggleTyping {
18093
18216
  }
18094
18217
  type ToggleProps = ToggleTyping & ToggleVariants;
18095
18218
 
18219
+ interface AccordionProps {
18220
+ /**
18221
+ * Informs which accordion item is open by default, this value must be the same as informed in the index of each item
18222
+ */
18223
+ selectedDefault?: string;
18224
+ /**
18225
+ * Disables the accordion, disallowing user interaction.
18226
+ * @default false
18227
+ */
18228
+ disabled?: boolean;
18229
+ }
18230
+
18096
18231
  type AccordionBodyProps = Pick<AccordionVariants, "padding">;
18097
18232
 
18098
18233
  interface AccordionHeaderTyping {
@@ -18129,14 +18264,6 @@ interface BannerTyping {
18129
18264
  * @TJS-type () => void;
18130
18265
  */
18131
18266
  onClose?: () => void;
18132
- /**
18133
- * The appearance of the banner. This can be used to set the color of the banner.
18134
- */
18135
- appearance?: "brand" | "error" | "info" | "warning" | "neutral" | "inverted";
18136
- /**
18137
- * Determines whether the banner message should float above the content. This can be useful for ensuring the message remains visible even as the user scrolls.
18138
- */
18139
- floating?: boolean;
18140
18267
  }
18141
18268
  type BannerProps = BannerTyping & BannerVariants;
18142
18269
 
@@ -18201,6 +18328,15 @@ interface SidebarTyping {
18201
18328
  }
18202
18329
  type SidebarProps = SidebarTyping & SidebarSprinkle & SidebarVariants;
18203
18330
 
18331
+ interface BreadcrumbProps {
18332
+ /**
18333
+ * Specifies the number of breadcrumb items to display after truncation.
18334
+ * This is useful for managing the display of long breadcrumb lists.
18335
+ * @default 10
18336
+ */
18337
+ itemsAfterTruncate?: number;
18338
+ }
18339
+
18204
18340
  interface BreadcrumbItemTyping {
18205
18341
  /**
18206
18342
  * The name of the breadcrumb item. This is typically the text that is displayed for the item.
@@ -18379,6 +18515,8 @@ declare class RaruiDivider extends RaruiDivider_base {
18379
18515
  render(): TemplateResult<1>;
18380
18516
  }
18381
18517
 
18518
+ type IconName = "add-circle-filled" | "add-circle-outlined" | "alarm-filled" | "alarm-outlined" | "alternate-email" | "archive-all-filled" | "archive-all-outlined" | "archive-filled" | "archive-in-filled" | "archive-in-outlined" | "archive-outlined" | "arrow-alt-down" | "arrow-alt-left" | "arrow-alt-right" | "arrow-alt-up" | "arrow-circle-down-filled" | "arrow-circle-down-outlined" | "arrow-circle-up-filled" | "arrow-circle-up-outlined" | "arrow-circled-down-circle-outlined" | "arrow-circled-down-filled" | "arrow-circled-up-circle-outlined" | "arrow-direction-down-up" | "arrow-direction-left-right" | "arrow-direction-right-left" | "arrow-direction-up-down" | "arrow-directions" | "arrow-down" | "arrow-down-left" | "arrow-down-right" | "arrow-first-page" | "arrow-last-page" | "arrow-left" | "arrow-line-down" | "arrow-line-left" | "arrow-line-long-down" | "arrow-line-long-left" | "arrow-line-long-right" | "arrow-line-long-up" | "arrow-line-right" | "arrow-line-up" | "arrow-right" | "arrow-subdirectory-left" | "arrow-subdirectory-right" | "arrow-trending-down" | "arrow-trending-up" | "arrow-up" | "arrow-up-left" | "arrow-up-right" | "attachment" | "backspace" | "backspace-outlined" | "barley" | "barley-off" | "bolt-circle-filled" | "bolt-circle-outlined" | "book-filled" | "book-outlined" | "bookmark-filled" | "bookmark-outlined" | "calendar-date-range-filled" | "calendar-date-range-outlined" | "calendar-event-filled" | "calendar-event-outlined" | "calendar-filled" | "calendar-outlined" | "camera-filled" | "camera-outlined" | "camera-shutter-filled" | "camera-shutter-outlined" | "cancel-circle-filled" | "cancel-circle-outlined" | "car-filled" | "car-outlined" | "chart-bars-filled" | "chart-bars-outlined" | "chat-bubble-filled" | "chat-bubble-outlined" | "chat-message-filled" | "chat-message-outlined" | "check" | "check-circle-filled" | "check-circle-outlined" | "check-small" | "chevron-big-down" | "chevron-big-left" | "chevron-big-right" | "chevron-big-up" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "clock-filled" | "clock-outlined" | "close" | "cloud-filled" | "cloud-outlined" | "contact-support-filled" | "contact-support-outlined" | "content-copy-filled" | "content-copy-outlined" | "content-paste-filled" | "content-paste-outlined" | "conversation-filled" | "conversation-outlined" | "copyright-filled" | "copyright-outlined" | "credit-card-filled" | "credit-card-outlined" | "danger-filled" | "danger-outlined" | "dashboard-filled" | "dashboard-outlined" | "document-filled" | "document-outlined" | "document-text-filled" | "document-text-outlined" | "download-filled" | "download-outlined" | "eco-filled" | "eco-outlined" | "edit-filled" | "edit-outlined" | "euro-symbol" | "exit-fullscreen" | "eye-filled" | "eye-off-filled" | "eye-off-outlined" | "eye-outlined" | "facebook-filled" | "facebook-outlined" | "file-copy-filled" | "file-copy-outlined" | "filter-alt-filled" | "filter-alt-outlined" | "filter-list" | "fingerprint" | "flag-filled" | "flag-outlined" | "flag-tour-filled" | "flag-tour-outlined" | "flower-filled" | "flower-outlined" | "folder-filled" | "folder-list-filled" | "folder-list-outlined" | "folder-open" | "folder-outlined" | "fruit-apple-filled" | "fruit-apple-outlined" | "fullscreen-filled" | "fullscreen-outlined" | "google" | "google-play" | "graduation-filled" | "graduation-outlined" | "headphones-filled" | "headphones-outlined" | "heart-filled" | "heart-outlined" | "help-filled" | "help-outlined" | "history" | "home-filled" | "home-outlined" | "image-filled" | "image-outlined" | "info-circle-filled" | "info-circle-outlined" | "instagram" | "instagram-outlined" | "label-filled" | "label-important-filled" | "label-important-outlined" | "label-outlined" | "language" | "lightbulb-filled" | "lightbulb-outlined" | "link" | "linkedin-filled" | "linkedin-outlined" | "loader" | "loading" | "lock-filled" | "lock-open-filled" | "lock-open-outlined" | "lock-outlined" | "login" | "logout" | "mail-filled" | "mail-open-filled" | "mail-open-outlined" | "mail-outlined" | "menu" | "menu-large" | "microphone-filled" | "microphone-outlined" | "minus" | "money-filled" | "money-outlined" | "mood-bad" | "mood-bad-outlined" | "mood-filled" | "mood-outlined" | "more-horiz" | "more-vert" | "music-note-filled" | "music-note-outlined" | "notification-filled" | "notification-outlined" | "open-in-new" | "package" | "package-outlined" | "pause-filled" | "pause-outlined" | "pets-filled" | "pets-outlined" | "phone-call-filled" | "phone-call-outlined" | "phone-filled" | "phone-outlined" | "pin-filled" | "pin-outlined" | "play-arrow-filled" | "play-arrow-outlined" | "play-circle-filled" | "play-circle-outlined" | "plus" | "power-settings-new" | "printer-filled" | "printer-outlined" | "push-pin-filled" | "push-pin-outlined" | "receipt-filled" | "receipt-outlined" | "recycle" | "redeem" | "redo" | "refresh" | "refresh-alt" | "remove" | "remove-circle-filled" | "remove-circle-outlined" | "repeat" | "reply" | "save-alt" | "screen-outlined" | "search" | "send-filled" | "send-outlined" | "sentiment-dissatisfied-filled" | "sentiment-dissatisfied-outlined" | "sentiment-neutral-filled" | "sentiment-neutral-outlined" | "sentiment-satisfied-filled" | "sentiment-satisfied-outlined" | "sentiment-very-dissatisfied-filled" | "sentiment-very-dissatisfied-outlined" | "sentiment-very-satisfied-filled" | "sentiment-very-satisfied-outlined" | "settings-filled" | "settings-outlined" | "share-filled" | "share-outlined" | "shopping-bag-filled" | "shopping-bag-outlined" | "shopping-cart-add" | "shopping-cart-filled" | "shopping-cart-outlined" | "sprout" | "sprout-outline-outlined" | "star-filled" | "star-outlined" | "stay-primary-portrait" | "storefront" | "tag-filled" | "tag-outlined" | "textsms-filled" | "textsms-outlined" | "thumb-down-filled" | "thumb-down-outlined" | "thumb-up-filled" | "thumb-up-outlined" | "tiktok" | "toc" | "trash-filled" | "trash-outlined" | "truck-filled" | "truck-outlined" | "tune" | "twitter" | "undo" | "upload-filled" | "upload-outlined" | "user-circle-filled" | "user-circle-outlined" | "user-filled" | "user-outlined" | "user-square-filled" | "user-square-outlined" | "users-filled" | "users-outlined" | "view-grid-filled" | "view-grid-outlined" | "view-list-filled" | "view-list-outlined" | "warning-bubble-filled" | "warning-bubble-outlined" | "warning-filled" | "warning-outlined" | "whatsapp-filled" | "whatsapp-outlined" | "work-filled" | "work-outlined" | "wysiwyg-filled" | "youtube-filled" | "youtube-outlined" | "zoom-in" | "zoom-out";
18519
+
18382
18520
  declare global {
18383
18521
  interface HTMLElementTagNameMap {
18384
18522
  "rarui-icon": RaruiIcon;
@@ -18800,6 +18938,19 @@ type ButtonManifestProperties = ButtonProps & {
18800
18938
  * Associates the button with a form element by ID.
18801
18939
  */
18802
18940
  form?: string;
18941
+ /**
18942
+ * Defines the HTML element type to render (button or anchor).
18943
+ * @default "button"
18944
+ */
18945
+ as?: "button" | "a";
18946
+ /**
18947
+ * The href URL when as="a".
18948
+ */
18949
+ href?: string;
18950
+ /**
18951
+ * The target attribute when as="a".
18952
+ */
18953
+ target?: "_blank" | "_self" | "_parent" | "_top";
18803
18954
  };
18804
18955
  type ButtonProperties = WebComponentProperties<ButtonManifestProperties>;
18805
18956
 
@@ -18829,11 +18980,15 @@ declare class RaruiButton extends RaruiButton_base {
18829
18980
  name: ButtonProperties["name"];
18830
18981
  value: ButtonProperties["value"];
18831
18982
  form: ButtonProperties["form"];
18983
+ as: ButtonProperties["as"];
18984
+ href: ButtonProperties["href"];
18985
+ target: ButtonProperties["target"];
18832
18986
  ariaPressed: "true" | "false" | "mixed" | null;
18833
18987
  ariaExpanded: "true" | "false" | null;
18834
18988
  ariaHasPopup: "menu" | "dialog" | "listbox" | "tree" | "grid" | "true" | "false" | null;
18835
18989
  ariaControls: string | null;
18836
18990
  static styles: CSSResult;
18991
+ private renderContent;
18837
18992
  render(): TemplateResult<1>;
18838
18993
  private _handleClick;
18839
18994
  }
@@ -19446,9 +19601,134 @@ declare class RaruiRadioButton extends RaruiRadioButton_base {
19446
19601
 
19447
19602
  declare global {
19448
19603
  interface HTMLElementTagNameMap {
19449
- "rarui-select": any;
19604
+ "rarui-select": RaruiSelect;
19450
19605
  }
19451
19606
  }
19607
+ /**
19608
+ * ## Rarui Select
19609
+ * ---
19610
+ * Select component for choosing options from a dropdown menu with support for single and multiple selection.
19611
+ *
19612
+ * Features:
19613
+ * - **Single Selection**: Choose one option from the list using rarui-select-option elements
19614
+ * - **Multiple Selection**: Choose multiple options with checkboxes using rarui-select-option elements
19615
+ * - **Slot-based Content**: Use rarui-select-option elements as children for flexible content
19616
+ * - **Accessibility**: Full keyboard navigation with ESC key support
19617
+ * - **Controlled Behavior**: Uses internal web components (Dropdown, Checkbox, Text, Box, Chip, Icon)
19618
+ *
19619
+ * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/select) for more details.
19620
+ */
19621
+ type SelectManifestProperties = Omit<SelectProps, "onChange" | "portalId" | "options"> & {
19622
+ /**
19623
+ * Position of the dropdown relative to the trigger.
19624
+ * @default "bottom-start"
19625
+ */
19626
+ position?: Placement;
19627
+ /**
19628
+ * CSS positioning strategy used for the dropdown.
19629
+ *
19630
+ * - `"fixed"` (default) positions the dropdown relative to the viewport,
19631
+ * so it stays in the same place even when the page is scrolled.
19632
+ * - `"absolute"` positions the dropdown relative to the nearest positioned ancestor,
19633
+ * which can be useful when you want the dropdown to move with page content.
19634
+ *
19635
+ * Use `"fixed"` for dropdowns that should remain visible on scroll,
19636
+ * and `"absolute"` when dropdowns need to be positioned within scrollable containers.
19637
+ * @default "fixed"
19638
+ */
19639
+ strategy?: "fixed" | "absolute";
19640
+ /**
19641
+ * The name of the select for form submission.
19642
+ */
19643
+ name?: string;
19644
+ /**
19645
+ * Associates the select with a form element by ID.
19646
+ */
19647
+ form?: string;
19648
+ /**
19649
+ * Whether the select is required for form validation.
19650
+ * @default false
19651
+ */
19652
+ required?: boolean;
19653
+ };
19654
+ type SelectProperties = WebComponentProperties<SelectManifestProperties>;
19655
+
19656
+ declare const RaruiSelect_base: (new (...args: any[]) => {
19657
+ ariaLabel: string | null;
19658
+ ariaLabelledBy: string | null;
19659
+ ariaDescribedBy: string | null;
19660
+ }) & (new (...args: any[]) => {
19661
+ cssProps: Record<string, any>;
19662
+ sprinkleAttrs: Record<string, any>;
19663
+ }) & typeof LitElement;
19664
+ declare class RaruiSelect extends RaruiSelect_base {
19665
+ static shadowRootOptions: {
19666
+ delegatesFocus: boolean;
19667
+ mode: ShadowRootMode;
19668
+ serializable?: boolean;
19669
+ slotAssignment?: SlotAssignmentMode;
19670
+ };
19671
+ sprinkleAttrs: Record<string, string>;
19672
+ private _internals;
19673
+ static formAssociated: boolean;
19674
+ constructor();
19675
+ size: SelectProperties["size"];
19676
+ appearance: SelectProperties["appearance"];
19677
+ placeholder?: string;
19678
+ disabled: boolean;
19679
+ multiple: SelectProperties["multiple"];
19680
+ open: SelectProperties["open"];
19681
+ enabledFlip: SelectProperties["enabled-flip"];
19682
+ position: SelectProperties["position"];
19683
+ maxHeight: SelectProperties["max-height"];
19684
+ zIndex: SelectProperties["z-index"];
19685
+ strategy: SelectProperties["strategy"];
19686
+ name: SelectProperties["name"];
19687
+ form: SelectProperties["form"];
19688
+ required: SelectProperties["required"];
19689
+ itemsAfterTruncate: SelectProperties["items-after-truncate"];
19690
+ ariaInvalid: AriaInvalid;
19691
+ get value(): SelectOptionProps | SelectOptionProps[] | undefined;
19692
+ set value(value: SelectOptionProps | SelectOptionProps[] | undefined);
19693
+ private _value;
19694
+ get defaultValue(): SelectOptionProps | SelectOptionProps[] | undefined;
19695
+ set defaultValue(value: SelectOptionProps | SelectOptionProps[] | undefined);
19696
+ private _defaultValue;
19697
+ private selectedOptions;
19698
+ private menuOpen;
19699
+ private childOptions;
19700
+ dropdown: Element;
19701
+ private _selectContext;
19702
+ private _observer?;
19703
+ static styles: CSSResult;
19704
+ connectedCallback(): void;
19705
+ private _setupMutationObserver;
19706
+ private _syncSelectedOptionsFromChildren;
19707
+ disconnectedCallback(): void;
19708
+ private _updateSelectedOptions;
19709
+ private handleSelect;
19710
+ private handleRemoveOption;
19711
+ private renderHiddenFormInputs;
19712
+ private handleResetOptions;
19713
+ private handleDropdownOpenChange;
19714
+ private _handleOptionSelect;
19715
+ private _handleContextOptionSelect;
19716
+ private _handleOptionMount;
19717
+ private _handleOptionUnmount;
19718
+ private _updateContext;
19719
+ private handleSelectClick;
19720
+ render(): TemplateResult<1>;
19721
+ private _renderTrigger;
19722
+ private _renderPlaceholder;
19723
+ private _renderSelectedOptions;
19724
+ private _renderControls;
19725
+ private _renderContent;
19726
+ private _updateFormValue;
19727
+ focus(): void;
19728
+ blur(): void;
19729
+ private _handleLabelClick;
19730
+ formResetCallback(): void;
19731
+ }
19452
19732
 
19453
19733
  declare global {
19454
19734
  interface HTMLElementTagNameMap {