@reliability-design/web 1.0.6 → 1.2.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 (78) hide show
  1. package/dist/components/rel-accordion/rel-accordion.ts +20 -31
  2. package/dist/components/rel-alert/rel-alert.ts +81 -11
  3. package/dist/components/rel-avatar/rel-avatar.ts +6 -3
  4. package/dist/components/rel-badge/rel-badge.ts +8 -3
  5. package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +6 -6
  6. package/dist/components/rel-button/rel-button.ts +118 -16
  7. package/dist/components/rel-calendar/rel-calendar.ts +16 -9
  8. package/dist/components/rel-card/rel-card.ts +9 -17
  9. package/dist/components/rel-cardmedia/rel-cardmedia.ts +20 -23
  10. package/dist/components/rel-carousel/rel-carousel.ts +596 -469
  11. package/dist/components/rel-checkbox/rel-checkbox.ts +98 -15
  12. package/dist/components/rel-chip/rel-chip.ts +291 -186
  13. package/dist/components/rel-container/rel-container.ts +2 -2
  14. package/dist/components/rel-date-picker/rel-date-picker.ts +23 -19
  15. package/dist/components/rel-divider/rel-divider.ts +12 -3
  16. package/dist/components/rel-drawer/rel-drawer-footer.ts +27 -0
  17. package/dist/components/rel-drawer/rel-drawer.ts +57 -113
  18. package/dist/components/rel-kbd/rel-kbd.ts +94 -118
  19. package/dist/components/rel-layout/rel-layout.ts +49 -58
  20. package/dist/components/rel-menu/rel-menu.ts +359 -327
  21. package/dist/components/rel-menubar/rel-menubar-menu.css +3 -0
  22. package/dist/components/rel-menubar/rel-menubar-menu.ts +2 -1
  23. package/dist/components/rel-menubar/rel-menubar.ts +602 -576
  24. package/dist/components/rel-nav-menu/rel-nav-menu-item.ts +240 -143
  25. package/dist/components/rel-nav-menu/rel-nav-menu.ts +227 -331
  26. package/dist/components/rel-navbar/rel-navbar.ts +13 -0
  27. package/dist/components/rel-otp/rel-otp.ts +22 -25
  28. package/dist/components/rel-pagination/rel-pagination.ts +112 -63
  29. package/dist/components/rel-popover/rel-popover-content.ts +6 -5
  30. package/dist/components/rel-popover/rel-popover.ts +42 -20
  31. package/dist/components/rel-progress/rel-progress.ts +10 -9
  32. package/dist/components/rel-radio/rel-radio.ts +228 -155
  33. package/dist/components/rel-range-picker/rel-range-picker.css +349 -0
  34. package/dist/components/rel-range-picker/rel-range-picker.ts +1079 -0
  35. package/dist/components/rel-resizable/rel-resizable-handle.ts +12 -15
  36. package/dist/components/rel-segmented-button/rel-segmented-button.ts +41 -20
  37. package/dist/components/rel-select/rel-select.ts +112 -27
  38. package/dist/components/rel-sheet/rel-sheet.ts +362 -683
  39. package/dist/components/rel-sidebar/rel-sidebar.ts +13 -5
  40. package/dist/components/rel-slider/rel-slider.ts +74 -29
  41. package/dist/components/rel-snackbar/rel-snackbar.ts +67 -37
  42. package/dist/components/rel-stepper/rel-stepper.ts +43 -31
  43. package/dist/components/rel-switch/rel-switch.ts +26 -12
  44. package/dist/components/rel-tab/rel-tab.ts +57 -37
  45. package/dist/components/rel-table/rel-table-body.ts +5 -0
  46. package/dist/components/rel-table/rel-table-caption.ts +6 -1
  47. package/dist/components/rel-table/rel-table-cell.ts +42 -49
  48. package/dist/components/rel-table/rel-table-footer.ts +5 -0
  49. package/dist/components/rel-table/rel-table-head.ts +13 -1
  50. package/dist/components/rel-table/rel-table-header.ts +5 -0
  51. package/dist/components/rel-table/rel-table-row.ts +7 -3
  52. package/dist/components/rel-table/rel-table.ts +8 -2
  53. package/dist/components/rel-textfield/rel-textfield.ts +153 -44
  54. package/dist/components/rel-toast/rel-toast.ts +56 -22
  55. package/dist/components/rel-tooltip/rel-tooltip.ts +52 -9
  56. package/dist/components/rel-topbar/rel-topbar-actions.ts +24 -0
  57. package/dist/components/rel-topbar/rel-topbar-brand.ts +47 -0
  58. package/dist/components/rel-topbar/rel-topbar-dropdown-item.ts +63 -0
  59. package/dist/components/rel-topbar/rel-topbar-dropdown.ts +28 -0
  60. package/dist/components/rel-topbar/rel-topbar-item.ts +320 -0
  61. package/dist/components/rel-topbar/rel-topbar-mobile-panel.ts +24 -0
  62. package/dist/components/rel-topbar/rel-topbar-profile.ts +222 -0
  63. package/dist/components/rel-topbar/rel-topbar-utilities.ts +24 -0
  64. package/dist/components/rel-topbar/rel-topbar.ts +438 -0
  65. package/dist/index.d.mts +375 -411
  66. package/dist/index.d.ts +375 -411
  67. package/dist/index.js +7587 -7980
  68. package/dist/index.js.map +1 -1
  69. package/dist/index.mjs +7647 -8023
  70. package/dist/index.mjs.map +1 -1
  71. package/dist/rel-menubar-menu-BEEQDAXW.css +3 -0
  72. package/dist/styles/vars-v2.css +525 -0
  73. package/dist/styles/vars.css +79 -27
  74. package/dist/{vars-ITL2K3KO.css → vars-I2PC74XD.css} +79 -27
  75. package/dist/vars-v2-VMGWTFJZ.css +525 -0
  76. package/package.json +3 -1
  77. package/dist/components/rel-quote-page/README.md +0 -166
  78. package/dist/components/rel-quote-page/rel-quote-page.ts +0 -816
@@ -1,166 +0,0 @@
1
- # rel-quote-page
2
-
3
- ## Overview
4
- A comprehensive freight shipping quote form component with all necessary fields for LTL (Less Than Truckload) shipping quotes. Features two main sections (Shipping Details and Commodity Details) with 24+ form fields including location search, service level tabs, radio groups, dropdowns, dimension inputs, and date picker. Automatically dispatches `form-change` events for external form handling.
5
-
6
- ## Usage
7
- ```html
8
- <!-- Basic usage -->
9
- <rel-quote-page></rel-quote-page>
10
-
11
- <!-- With form change listener -->
12
- <rel-quote-page id="quoteForm"></rel-quote-page>
13
- <script>
14
- const form = document.getElementById('quoteForm');
15
- form.addEventListener('form-change', (e) => {
16
- console.log('Form data:', e.detail);
17
- // e.detail contains the complete QuoteFormData object
18
- });
19
- </script>
20
-
21
- <!-- Programmatically access form data -->
22
- <rel-quote-page id="quote"></rel-quote-page>
23
- <script>
24
- const quote = document.getElementById('quote');
25
- // Access form data via the formData property
26
- console.log(quote.formData.pickupLocation);
27
- console.log(quote.formData.serviceLevel);
28
- console.log(quote.formData.totalWeight);
29
- </script>
30
- ```
31
-
32
- ## API
33
-
34
- ### Properties
35
- All form data is managed internally via a reactive `formData` state property (not directly settable). Access it via the `formData` property or the `form-change` event.
36
-
37
- ## Events
38
- | Event | Detail | Description |
39
- |-------|--------|-------------|
40
- | `form-change` | `QuoteFormData` | Fired whenever any form field changes |
41
-
42
- ## QuoteFormData Interface
43
- ```typescript
44
- interface QuoteFormData {
45
- // Shipping Details
46
- pickupLocation: string;
47
- dropoffLocation: string;
48
- serviceLevel: "standard" | "guaranteed";
49
- originType: "commercial" | "residential";
50
- destinationType: "commercial" | "residential";
51
- loadingRequirements: string;
52
- deliveryRequirements: string;
53
- loadingLimitedAccessType: string;
54
- deliveryLimitedAccessType: string;
55
- pickupDate: string; // Date in YYYY-MM-DD format
56
-
57
- // Commodity Details
58
- isHazmat: boolean;
59
- commodity: string;
60
- commodityDescription: string;
61
- handlingUnits: number;
62
- handlingType: string;
63
- length: number; // inches
64
- width: number; // inches
65
- height: number; // inches
66
- totalWeight: number; // lbs
67
- class: string; // freight class
68
- insuredValue: number;
69
- nmfcNumber: string;
70
- }
71
- ```
72
-
73
- ## Slots
74
- None. This component provides a complete, self-contained form UI.
75
-
76
- ## CSS Parts
77
- None exposed.
78
-
79
- ## Tokens / CSS Variables
80
-
81
- ### Semantic Tokens
82
- - `--rel-fontFamilies-primary` - Font family
83
-
84
- ### Font Tokens
85
- - `--rel-fontSizes-xl` - Section titles (24px)
86
- - `--rel-fontSizes-lg` - Large text
87
- - `--rel-fontSizes-md` - Subsection titles (16px)
88
- - `--rel-fontSizes-sm` - Field labels, inputs (14px)
89
- - `--rel-fontSizes-xs` - Helper text, dimension labels (12px)
90
- - `--rel-fontWeights-bold` - Section titles
91
- - `--rel-fontWeights-semibold` - Subsection titles
92
- - `--rel-fontWeights-medium` - Field labels, radio labels
93
-
94
- ### Color Tokens
95
- - `--rel-colors-white` - Component background, input backgrounds, tab background
96
- - `--rel-colors-black` - Section title, active tab background, radio selected, input focus border
97
- - `--rel-colors-green-primary` - Subsection title bullet
98
- - `--rel-colors-red-primary` - Required field asterisks
99
- - `--rel-colors-gray-heading` - Field labels, subsection titles
100
- - `--rel-colors-gray-primary` - Input text, radio labels
101
- - `--rel-colors-gray-placeholder` - Helper text
102
- - `--rel-colors-gray-border` - Input borders, tab borders
103
-
104
- ### Border Tokens
105
- - `--rel-borders-radius-border-radius-300` - Component and input border radius (16px/similar)
106
-
107
- ### Spacing Tokens
108
- - `--rel-spacing-space-xl` - Component padding
109
- - `--rel-spacing-space-2xl` - Section bottom margin
110
- - `--rel-spacing-space-lg` - Section row gap, field bottom margin
111
- - `--rel-spacing-space-md` - Subsection margins, field group gap, service level tab bottom margin
112
- - `--rel-spacing-space-sm` - Input padding, radio group gap
113
- - `--rel-spacing-space-xs` - Tab padding, dimension input padding
114
- - `--rel-spacing-space-2xs` - Field label-input gap
115
- - `--rel-spacing-space-3xs` - Info icon gap, dimension label gap
116
-
117
- ## Accessibility
118
- - All required fields are marked with a red asterisk and `required` class
119
- - Input fields have associated `<label>` elements
120
- - Radio groups use custom styled divs (not native radios) but support click interaction
121
- - Helper text provides additional context for complex fields
122
- - Info icons (`ⓘ`) use `cursor: help` to indicate additional information
123
-
124
- ### Keyboard Interactions
125
- - Standard form navigation (Tab, Shift+Tab)
126
- - Native input keyboard support (text, number, date, select)
127
- - Service level tabs are `<button>` elements and keyboard accessible
128
-
129
- ### Focus Behavior
130
- - Inputs show focus border via `:focus-visible` (black border)
131
- - Standard browser focus behavior for all form controls
132
-
133
- ## Notes / Edge Cases
134
- - **Form sections**:
135
- 1. **Shipping Details**: Pickup/dropoff locations, service level, origin/destination types, loading/delivery requirements, limited access types, pickup date
136
- 2. **Commodity Details**: Hazmat status, commodity info, handling units/type, dimensions (L/W/H), total weight, class, insured value, NMFC number
137
-
138
- - **Service Level**: Toggle between "Standard" and "Guaranteed" using tab buttons (black background when active)
139
-
140
- - **Radio groups**: Custom styled (not native `<input type="radio">`) using divs with visual indicators
141
-
142
- - **Dimension inputs**: Grid layout with 4 columns (Length, Width, Height, Total Weight)
143
- - Width and Height show "96\" max" helper text
144
- - Inputs show unit labels (inches, lbs)
145
-
146
- - **Responsive design**: Two-column grid on desktop (`grid-template-columns: 1fr 1fr`), single column on mobile (≤768px)
147
-
148
- - **Location inputs**: Include search icon emoji (🔍) on the right side
149
-
150
- - **Helper text**: Loading Requirements field includes detailed explanation about inside pickup/delivery and liftgate requirements
151
-
152
- - **Info icons**: Small circular icons with `ⓘ` character, `cursor: help`
153
-
154
- - **Subsection titles**: Include a green circular bullet (`::before` pseudo-element)
155
-
156
- - **Dropdowns**: Custom styled `<select>` with SVG dropdown arrow (appearance: none)
157
-
158
- - The component has max-width of 900px and is centered with `margin: 0 auto`
159
-
160
- - Box shadow and border radius give the component a card-like appearance
161
-
162
- - All form updates trigger the `form-change` event with the complete `formData` object
163
-
164
- - Number inputs use `parseInt()` or `parseFloat()` with fallback to 0 for invalid values
165
-
166
- - Date input is native HTML5 `type="date"`