@krollins/blueprint 0.1.11 → 0.1.13

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 (95) hide show
  1. package/dist/components/accordion.js +393 -0
  2. package/dist/components/accordion.js.map +1 -0
  3. package/dist/components/alert.js +213 -0
  4. package/dist/components/alert.js.map +1 -0
  5. package/dist/components/avatar.js +237 -0
  6. package/dist/components/avatar.js.map +1 -0
  7. package/dist/components/badge.js +144 -0
  8. package/dist/components/badge.js.map +1 -0
  9. package/dist/components/breadcrumb.js +481 -0
  10. package/dist/components/breadcrumb.js.map +1 -0
  11. package/dist/components/button.js +192 -0
  12. package/dist/components/button.js.map +1 -0
  13. package/dist/components/card.js +223 -0
  14. package/dist/components/card.js.map +1 -0
  15. package/dist/components/checkbox.js +337 -0
  16. package/dist/components/checkbox.js.map +1 -0
  17. package/dist/components/color-picker.js +1660 -0
  18. package/dist/components/color-picker.js.map +1 -0
  19. package/dist/components/combobox.js +595 -0
  20. package/dist/components/combobox.js.map +1 -0
  21. package/dist/components/date-picker.js +726 -0
  22. package/dist/components/date-picker.js.map +1 -0
  23. package/dist/components/divider.js +214 -0
  24. package/dist/components/divider.js.map +1 -0
  25. package/dist/components/drawer.js +568 -0
  26. package/dist/components/drawer.js.map +1 -0
  27. package/dist/components/dropdown.js +377 -0
  28. package/dist/components/dropdown.js.map +1 -0
  29. package/dist/components/file-upload.js +669 -0
  30. package/dist/components/file-upload.js.map +1 -0
  31. package/dist/components/heading.js +161 -0
  32. package/dist/components/heading.js.map +1 -0
  33. package/dist/components/icon.js +599 -0
  34. package/dist/components/icon.js.map +1 -0
  35. package/dist/components/input.js +363 -0
  36. package/dist/components/input.js.map +1 -0
  37. package/dist/components/link.js +178 -0
  38. package/dist/components/link.js.map +1 -0
  39. package/dist/components/menu.js +331 -0
  40. package/dist/components/menu.js.map +1 -0
  41. package/dist/components/modal.js +317 -0
  42. package/dist/components/modal.js.map +1 -0
  43. package/dist/components/multi-select.js +642 -0
  44. package/dist/components/multi-select.js.map +1 -0
  45. package/dist/components/notification.js +429 -0
  46. package/dist/components/notification.js.map +1 -0
  47. package/dist/components/number-input.js +556 -0
  48. package/dist/components/number-input.js.map +1 -0
  49. package/dist/components/pagination.js +320 -0
  50. package/dist/components/pagination.js.map +1 -0
  51. package/dist/components/popover.js +597 -0
  52. package/dist/components/popover.js.map +1 -0
  53. package/dist/components/progress.js +219 -0
  54. package/dist/components/progress.js.map +1 -0
  55. package/dist/components/radio.js +321 -0
  56. package/dist/components/radio.js.map +1 -0
  57. package/dist/components/select.js +498 -0
  58. package/dist/components/select.js.map +1 -0
  59. package/dist/components/skeleton.js +240 -0
  60. package/dist/components/skeleton.js.map +1 -0
  61. package/dist/components/slider.js +9 -0
  62. package/dist/components/slider.js.map +1 -0
  63. package/dist/components/spinner.js +133 -0
  64. package/dist/components/spinner.js.map +1 -0
  65. package/dist/components/stepper.js +812 -0
  66. package/dist/components/stepper.js.map +1 -0
  67. package/dist/components/switch.js +380 -0
  68. package/dist/components/switch.js.map +1 -0
  69. package/dist/components/table.js +642 -0
  70. package/dist/components/table.js.map +1 -0
  71. package/dist/components/tabs.js +547 -0
  72. package/dist/components/tabs.js.map +1 -0
  73. package/dist/components/tag.js +291 -0
  74. package/dist/components/tag.js.map +1 -0
  75. package/dist/components/text.js +278 -0
  76. package/dist/components/text.js.map +1 -0
  77. package/dist/components/textarea.js +380 -0
  78. package/dist/components/textarea.js.map +1 -0
  79. package/dist/components/time-picker.js +457 -0
  80. package/dist/components/time-picker.js.map +1 -0
  81. package/dist/components/tooltip.js +239 -0
  82. package/dist/components/tooltip.js.map +1 -0
  83. package/dist/components/tree.js +582 -0
  84. package/dist/components/tree.js.map +1 -0
  85. package/dist/index.js +93 -17799
  86. package/dist/index.js.map +1 -1
  87. package/dist/shared/boolean-converter-XDGfS9LC.js +12 -0
  88. package/dist/shared/boolean-converter-XDGfS9LC.js.map +1 -0
  89. package/dist/shared/debounce-BckY30Sf.js +23 -0
  90. package/dist/shared/debounce-BckY30Sf.js.map +1 -0
  91. package/dist/shared/memoize-DlOFy-92.js +16 -0
  92. package/dist/shared/memoize-DlOFy-92.js.map +1 -0
  93. package/dist/shared/slider-BNt5TITl.js +484 -0
  94. package/dist/shared/slider-BNt5TITl.js.map +1 -0
  95. package/package.json +49 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.js","sources":["../../source/components/date-picker/date-picker.style.ts","../../source/components/date-picker/date-picker.ts"],"sourcesContent":["import { css } from 'lit';\r\n\r\nexport const datePickerStyles = css`\r\n /* Base */\r\n .date-picker {\r\n position: relative;\r\n width: 100%;\r\n }\r\n\r\n .date-picker__input-wrapper {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .date-picker__input {\r\n flex: 1;\r\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\r\n padding-right: var(--bp-spacing-2xl);\r\n font-family: var(--bp-font-family);\r\n font-size: var(--bp-font-size-base);\r\n color: var(--bp-color-text);\r\n background-color: var(--bp-color-surface);\r\n border: var(--bp-border-width) solid var(--bp-color-border);\r\n border-radius: var(--bp-border-radius-md);\r\n cursor: pointer;\r\n transition:\r\n border-color var(--bp-transition-fast),\r\n box-shadow var(--bp-transition-fast);\r\n outline: none;\r\n }\r\n\r\n .date-picker__input:hover:not(:disabled) {\r\n border-color: var(--bp-color-primary);\r\n }\r\n\r\n .date-picker__input:focus {\r\n border-color: var(--bp-color-focus);\r\n box-shadow: 0 0 0 var(--bp-focus-width) var(--bp-color-focus);\r\n }\r\n\r\n .date-picker__input:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n }\r\n\r\n .date-picker__input::placeholder {\r\n color: var(--bp-color-text-muted);\r\n }\r\n\r\n .date-picker__clear {\r\n position: absolute;\r\n right: var(--bp-spacing-2xl);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--bp-spacing-lg);\r\n height: var(--bp-spacing-lg);\r\n padding: 0;\r\n font-size: var(--bp-font-size-sm);\r\n color: var(--bp-color-text-muted);\r\n background: none;\r\n border: none;\r\n border-radius: var(--bp-border-radius-sm);\r\n cursor: pointer;\r\n transition:\r\n color var(--bp-transition-fast),\r\n background-color var(--bp-transition-fast);\r\n }\r\n\r\n .date-picker__clear:hover {\r\n color: var(--bp-color-primary);\r\n background-color: color-mix(\r\n in srgb,\r\n var(--bp-color-primary) 8%,\r\n transparent\r\n );\r\n }\r\n\r\n .date-picker__indicator {\r\n position: absolute;\r\n right: var(--bp-spacing-md);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--bp-spacing-lg);\r\n height: var(--bp-spacing-lg);\r\n color: var(--bp-color-text-muted);\r\n pointer-events: none;\r\n }\r\n\r\n /* Calendar */\r\n .date-picker__calendar {\r\n position: absolute;\r\n top: calc(100% + var(--bp-spacing-xs));\r\n left: 0;\r\n z-index: var(--bp-z-dropdown);\r\n min-width: var(--bp-spacing-2xl);\r\n padding: var(--bp-spacing-md);\r\n background-color: var(--bp-color-surface);\r\n border-top: calc(var(--bp-border-width) * 2) solid var(--bp-color-primary);\r\n border-right: var(--bp-border-width) solid var(--bp-color-border);\r\n border-bottom: var(--bp-border-width) solid var(--bp-color-border);\r\n border-left: var(--bp-border-width) solid var(--bp-color-border);\r\n border-radius: var(--bp-border-radius-md);\r\n box-shadow: var(--bp-shadow-md);\r\n }\r\n\r\n /* Header */\r\n .date-picker__header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: var(--bp-spacing-sm);\r\n }\r\n\r\n .date-picker__nav-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--bp-spacing-xl);\r\n height: var(--bp-spacing-xl);\r\n padding: 0;\r\n font-size: var(--bp-font-size-xl);\r\n color: var(--bp-color-text);\r\n background: none;\r\n border: none;\r\n border-radius: var(--bp-border-radius-sm);\r\n cursor: pointer;\r\n transition: background-color var(--bp-transition-fast);\r\n }\r\n\r\n .date-picker__nav-button:hover {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--bp-color-primary) 8%,\r\n transparent\r\n );\r\n }\r\n\r\n .date-picker__month-year {\r\n flex: 1;\r\n font-size: var(--bp-font-size-base);\r\n font-weight: var(--bp-font-weight-semibold);\r\n color: var(--bp-color-text);\r\n text-align: center;\r\n }\r\n\r\n /* Weekdays */\r\n .date-picker__weekdays {\r\n display: grid;\r\n grid-template-columns: repeat(7, 1fr);\r\n gap: var(--bp-spacing-xs);\r\n margin-bottom: var(--bp-spacing-xs);\r\n }\r\n\r\n .date-picker__weekday {\r\n padding: var(--bp-spacing-xs);\r\n font-size: var(--bp-font-size-xs);\r\n font-weight: var(--bp-font-weight-semibold);\r\n color: var(--bp-color-text-muted);\r\n text-align: center;\r\n text-transform: uppercase;\r\n }\r\n\r\n /* Days */\r\n .date-picker__days {\r\n display: grid;\r\n grid-template-columns: repeat(7, 1fr);\r\n gap: var(--bp-spacing-xs);\r\n }\r\n\r\n .date-picker__day {\r\n aspect-ratio: 1;\r\n padding: var(--bp-spacing-xs);\r\n font-size: var(--bp-font-size-sm);\r\n color: var(--bp-color-text);\r\n background: none;\r\n border: none;\r\n border-radius: var(--bp-border-radius-sm);\r\n cursor: pointer;\r\n transition:\r\n background-color var(--bp-transition-fast),\r\n color var(--bp-transition-fast);\r\n }\r\n\r\n .date-picker__day:hover:not(:disabled) {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--bp-color-primary) 8%,\r\n transparent\r\n );\r\n }\r\n\r\n .date-picker__day--other-month {\r\n color: var(--bp-color-text-muted);\r\n opacity: 0.5;\r\n }\r\n\r\n .date-picker__day--today {\r\n font-weight: var(--bp-font-weight-bold);\r\n color: var(--bp-color-primary);\r\n background-color: color-mix(\r\n in srgb,\r\n var(--bp-color-primary) 4%,\r\n transparent\r\n );\r\n }\r\n\r\n .date-picker__day--selected {\r\n color: var(--bp-color-text-inverse);\r\n background-color: var(--bp-color-primary);\r\n }\r\n\r\n .date-picker__day--selected:hover:not(:disabled) {\r\n background-color: var(--bp-color-primary-hover);\r\n }\r\n\r\n .date-picker__day--focused {\r\n outline: var(--bp-focus-width) solid var(--bp-color-primary);\r\n outline-offset: calc(-1 * var(--bp-focus-width));\r\n }\r\n\r\n .date-picker__day--disabled {\r\n color: var(--bp-color-text-muted);\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n }\r\n\r\n /* Sizes */\r\n .date-picker--sm .date-picker__input {\r\n padding: var(--bp-spacing-xs) var(--bp-spacing-sm);\r\n padding-right: var(--bp-spacing-xl);\r\n font-size: var(--bp-font-size-sm);\r\n }\r\n\r\n .date-picker--sm .date-picker__indicator {\r\n right: var(--bp-spacing-xs);\r\n width: var(--bp-spacing-md);\r\n height: var(--bp-spacing-md);\r\n }\r\n\r\n .date-picker--sm .date-picker__clear {\r\n right: var(--bp-spacing-xl);\r\n width: var(--bp-spacing-md);\r\n height: var(--bp-spacing-md);\r\n }\r\n\r\n .date-picker--sm .date-picker__calendar {\r\n padding: var(--bp-spacing-sm);\r\n }\r\n\r\n .date-picker--sm .date-picker__nav-button {\r\n width: var(--bp-spacing-lg);\r\n height: var(--bp-spacing-lg);\r\n font-size: var(--bp-font-size-lg);\r\n }\r\n\r\n .date-picker--sm .date-picker__month-year {\r\n font-size: var(--bp-font-size-sm);\r\n }\r\n\r\n .date-picker--sm .date-picker__header {\r\n margin-bottom: var(--bp-spacing-xs);\r\n }\r\n\r\n .date-picker--sm .date-picker__weekdays {\r\n gap: var(--bp-spacing-2xs);\r\n margin-bottom: var(--bp-spacing-2xs);\r\n }\r\n\r\n .date-picker--sm .date-picker__weekday {\r\n padding: var(--bp-spacing-2xs);\r\n font-size: var(--bp-font-size-xs);\r\n }\r\n\r\n .date-picker--sm .date-picker__days {\r\n gap: var(--bp-spacing-2xs);\r\n }\r\n\r\n .date-picker--sm .date-picker__day {\r\n padding: var(--bp-spacing-2xs);\r\n font-size: var(--bp-font-size-xs);\r\n }\r\n\r\n .date-picker--lg .date-picker__input {\r\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\r\n padding-right: var(--bp-spacing-24);\r\n font-size: var(--bp-font-size-lg);\r\n }\r\n\r\n .date-picker--lg .date-picker__indicator {\r\n right: var(--bp-spacing-md);\r\n width: var(--bp-spacing-xl);\r\n height: var(--bp-spacing-xl);\r\n }\r\n\r\n .date-picker--lg .date-picker__clear {\r\n right: var(--bp-spacing-24);\r\n width: var(--bp-spacing-xl);\r\n height: var(--bp-spacing-xl);\r\n }\r\n\r\n .date-picker--lg .date-picker__calendar {\r\n padding: var(--bp-spacing-lg);\r\n }\r\n\r\n .date-picker--lg .date-picker__nav-button {\r\n width: var(--bp-spacing-2xl);\r\n height: var(--bp-spacing-2xl);\r\n font-size: var(--bp-font-size-2xl);\r\n }\r\n\r\n .date-picker--lg .date-picker__month-year {\r\n font-size: var(--bp-font-size-lg);\r\n }\r\n\r\n .date-picker--lg .date-picker__header {\r\n margin-bottom: var(--bp-spacing-md);\r\n }\r\n\r\n .date-picker--lg .date-picker__weekdays {\r\n gap: var(--bp-spacing-sm);\r\n margin-bottom: var(--bp-spacing-sm);\r\n }\r\n\r\n .date-picker--lg .date-picker__weekday {\r\n padding: var(--bp-spacing-sm);\r\n font-size: var(--bp-font-size-sm);\r\n }\r\n\r\n .date-picker--lg .date-picker__days {\r\n gap: var(--bp-spacing-sm);\r\n }\r\n\r\n .date-picker--lg .date-picker__day {\r\n padding: var(--bp-spacing-sm);\r\n font-size: var(--bp-font-size-base);\r\n }\r\n\r\n /* States */\r\n .date-picker--disabled {\r\n opacity: 0.6;\r\n pointer-events: none;\r\n }\r\n`;\r\n","import { LitElement, html } from 'lit';\r\nimport { customElement, property, state } from 'lit/decorators.js';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { datePickerStyles } from './date-picker.style.js';\r\n\r\nexport type DatePickerSize = 'sm' | 'md' | 'lg';\r\n\r\n/**\r\n * A calendar-based date picker component.\r\n *\r\n * @element bp-date-picker\r\n *\r\n * @fires bp-change - Fired when the selected date changes\r\n *\r\n * @csspart control - The outer container\r\n * @csspart input - The text input field\r\n * @csspart indicator - The calendar icon\r\n * @csspart clear-button - The clear button\r\n * @csspart calendar - The calendar dropdown\r\n * @csspart header - The calendar header with navigation\r\n * @csspart nav-button - Month/year navigation buttons\r\n * @csspart month-year - Month and year display\r\n * @csspart weekday - Day of week header cell\r\n * @csspart day - Individual day cell\r\n */\r\n@customElement('bp-date-picker')\r\nexport class BpDatePicker extends LitElement {\r\n @property({ type: String, reflect: true }) declare value: string;\r\n @property({ type: String }) declare name: string;\r\n @property({ type: String }) declare label: string;\r\n @property({ type: String }) declare placeholder: string;\r\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\r\n @property({ type: Boolean, reflect: true }) declare required: boolean;\r\n @property({ type: String, reflect: true }) declare size: DatePickerSize;\r\n @property({ type: String }) declare min: string;\r\n @property({ type: String }) declare max: string;\r\n @property({ type: String, attribute: 'first-day-of-week' })\r\n declare firstDayOfWeek: '0' | '1';\r\n\r\n @state() private isOpen = false;\r\n @state() private displayMonth = new Date().getMonth();\r\n @state() private displayYear = new Date().getFullYear();\r\n @state() private focusedDate: Date | null = null;\r\n\r\n static styles = [datePickerStyles];\r\n\r\n constructor() {\r\n super();\r\n this.value = '';\r\n this.name = '';\r\n this.label = '';\r\n this.placeholder = 'Select date...';\r\n this.disabled = false;\r\n this.required = false;\r\n this.size = 'md';\r\n this.min = '';\r\n this.max = '';\r\n this.firstDayOfWeek = '0';\r\n }\r\n\r\n private handleInputClick() {\r\n if (!this.disabled) {\r\n this.isOpen = !this.isOpen;\r\n }\r\n }\r\n\r\n private handlePreviousMonth() {\r\n if (this.displayMonth === 0) {\r\n this.displayMonth = 11;\r\n this.displayYear--;\r\n } else {\r\n this.displayMonth--;\r\n }\r\n }\r\n\r\n private handleNextMonth() {\r\n if (this.displayMonth === 11) {\r\n this.displayMonth = 0;\r\n this.displayYear++;\r\n } else {\r\n this.displayMonth++;\r\n }\r\n }\r\n\r\n private handleDateSelect(date: Date) {\r\n const previousValue = this.value;\r\n this.value = this.formatDate(date);\r\n this.isOpen = false;\r\n this.focusedDate = null;\r\n\r\n this.dispatchEvent(\r\n new CustomEvent('bp-change', {\r\n detail: {\r\n value: this.value,\r\n previousValue,\r\n date,\r\n },\r\n bubbles: true,\r\n composed: true,\r\n })\r\n );\r\n }\r\n\r\n private handleClear(e: Event) {\r\n e.stopPropagation();\r\n const previousValue = this.value;\r\n this.value = '';\r\n this.focusedDate = null;\r\n\r\n this.dispatchEvent(\r\n new CustomEvent('bp-change', {\r\n detail: {\r\n value: '',\r\n previousValue,\r\n date: null,\r\n },\r\n bubbles: true,\r\n composed: true,\r\n })\r\n );\r\n }\r\n\r\n private handleKeyDown(e: Event) {\r\n const event = e as globalThis.KeyboardEvent;\r\n if (!this.isOpen) {\r\n if (\r\n event.key === 'ArrowDown' ||\r\n event.key === 'Enter' ||\r\n event.key === ' '\r\n ) {\r\n event.preventDefault();\r\n this.isOpen = true;\r\n this.focusedDate = this.getSelectedDate() || this.getTodayDate();\r\n }\r\n return;\r\n }\r\n\r\n const currentFocus =\r\n this.focusedDate || this.getSelectedDate() || this.getTodayDate();\r\n\r\n switch (event.key) {\r\n case 'Escape':\r\n event.preventDefault();\r\n this.isOpen = false;\r\n this.focusedDate = null;\r\n break;\r\n\r\n case 'ArrowLeft':\r\n event.preventDefault();\r\n this.focusedDate = this.addDays(currentFocus, -1);\r\n this.updateDisplayMonth(this.focusedDate);\r\n break;\r\n\r\n case 'ArrowRight':\r\n event.preventDefault();\r\n this.focusedDate = this.addDays(currentFocus, 1);\r\n this.updateDisplayMonth(this.focusedDate);\r\n break;\r\n\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n this.focusedDate = this.addDays(currentFocus, -7);\r\n this.updateDisplayMonth(this.focusedDate);\r\n break;\r\n\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n this.focusedDate = this.addDays(currentFocus, 7);\r\n this.updateDisplayMonth(this.focusedDate);\r\n break;\r\n\r\n case 'Home':\r\n event.preventDefault();\r\n this.focusedDate = new Date(\r\n currentFocus.getFullYear(),\r\n currentFocus.getMonth(),\r\n 1\r\n );\r\n break;\r\n\r\n case 'End':\r\n event.preventDefault();\r\n this.focusedDate = new Date(\r\n currentFocus.getFullYear(),\r\n currentFocus.getMonth() + 1,\r\n 0\r\n );\r\n break;\r\n\r\n case 'PageUp':\r\n event.preventDefault();\r\n this.focusedDate = this.addMonths(\r\n currentFocus,\r\n event.shiftKey ? -12 : -1\r\n );\r\n this.updateDisplayMonth(this.focusedDate);\r\n break;\r\n\r\n case 'PageDown':\r\n event.preventDefault();\r\n this.focusedDate = this.addMonths(\r\n currentFocus,\r\n event.shiftKey ? 12 : 1\r\n );\r\n this.updateDisplayMonth(this.focusedDate);\r\n break;\r\n\r\n case 'Enter':\r\n case ' ':\r\n event.preventDefault();\r\n if (this.focusedDate && !this.isDateDisabled(this.focusedDate)) {\r\n this.handleDateSelect(this.focusedDate);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private updateDisplayMonth(date: Date) {\r\n this.displayMonth = date.getMonth();\r\n this.displayYear = date.getFullYear();\r\n }\r\n\r\n private addDays(date: Date, days: number): Date {\r\n const result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n\r\n private addMonths(date: Date, months: number): Date {\r\n const result = new Date(date);\r\n result.setMonth(result.getMonth() + months);\r\n return result;\r\n }\r\n\r\n private formatDate(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const day = String(date.getDate()).padStart(2, '0');\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n private parseDate(value: string): Date | null {\r\n if (!value) return null;\r\n // Parse YYYY-MM-DD format in local timezone to avoid UTC offset issues\r\n const match = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/);\r\n if (match) {\r\n const [, year, month, day] = match;\r\n const date = new Date(\r\n parseInt(year, 10),\r\n parseInt(month, 10) - 1,\r\n parseInt(day, 10)\r\n );\r\n date.setHours(0, 0, 0, 0);\r\n return date;\r\n }\r\n // Fallback for other formats\r\n const date = new Date(value);\r\n if (isNaN(date.getTime())) {\r\n console.warn(\r\n `bp-date-picker: Invalid date format \"${value}\". Expected YYYY-MM-DD.`\r\n );\r\n return null;\r\n }\r\n return date;\r\n }\r\n\r\n private getSelectedDate(): Date | null {\r\n return this.parseDate(this.value);\r\n }\r\n\r\n private getTodayDate(): Date {\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n return today;\r\n }\r\n\r\n private isSameDay(date1: Date, date2: Date): boolean {\r\n return (\r\n date1.getFullYear() === date2.getFullYear() &&\r\n date1.getMonth() === date2.getMonth() &&\r\n date1.getDate() === date2.getDate()\r\n );\r\n }\r\n\r\n private isDateDisabled(date: Date): boolean {\r\n if (this.min) {\r\n const minDate = this.parseDate(this.min);\r\n if (minDate && date < minDate) return true;\r\n }\r\n if (this.max) {\r\n const maxDate = this.parseDate(this.max);\r\n if (maxDate && date > maxDate) return true;\r\n }\r\n return false;\r\n }\r\n\r\n private getCalendarDays(): Date[] {\r\n const CALENDAR_GRID_SIZE = 42; // 6 weeks × 7 days for consistent grid\r\n const firstDay = new Date(this.displayYear, this.displayMonth, 1);\r\n const lastDay = new Date(this.displayYear, this.displayMonth + 1, 0);\r\n\r\n const startDayOfWeek = this.firstDayOfWeek === '1' ? 1 : 0;\r\n let dayOfWeek = firstDay.getDay() - startDayOfWeek;\r\n if (dayOfWeek < 0) dayOfWeek += 7;\r\n\r\n const days: Date[] = [];\r\n\r\n // Add previous month's days\r\n for (let i = dayOfWeek - 1; i >= 0; i--) {\r\n const date = new Date(this.displayYear, this.displayMonth, -i);\r\n days.push(date);\r\n }\r\n\r\n // Add current month's days\r\n for (let i = 1; i <= lastDay.getDate(); i++) {\r\n days.push(new Date(this.displayYear, this.displayMonth, i));\r\n }\r\n\r\n // Add next month's days to complete the grid\r\n const remainingDays = CALENDAR_GRID_SIZE - days.length;\r\n for (let i = 1; i <= remainingDays; i++) {\r\n days.push(new Date(this.displayYear, this.displayMonth + 1, i));\r\n }\r\n\r\n return days;\r\n }\r\n\r\n public checkValidity(): boolean {\r\n // Check required validation\r\n if (this.required && !this.value) {\r\n return false;\r\n }\r\n // Check min/max validation\r\n if (this.value) {\r\n const date = this.parseDate(this.value);\r\n if (date && this.isDateDisabled(date)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private getWeekdayNames(): string[] {\r\n const weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\r\n if (this.firstDayOfWeek === '1') {\r\n return [...weekdays.slice(1), weekdays[0]];\r\n }\r\n return weekdays;\r\n }\r\n\r\n private getMonthName(month: number): string {\r\n return new Date(2000, month, 1).toLocaleString('default', {\r\n month: 'long',\r\n });\r\n }\r\n\r\n private getFormattedValue(): string {\r\n const selectedDate = this.getSelectedDate();\r\n if (!selectedDate) return '';\r\n return selectedDate.toLocaleDateString();\r\n }\r\n\r\n render() {\r\n const selectedDate = this.getSelectedDate();\r\n const today = this.getTodayDate();\r\n const calendarDays = this.getCalendarDays();\r\n const weekdays = this.getWeekdayNames();\r\n const hasValue = !!this.value;\r\n\r\n const datePickerClasses = {\r\n 'date-picker': true,\r\n 'date-picker--open': this.isOpen,\r\n 'date-picker--disabled': this.disabled,\r\n [`date-picker--${this.size}`]: true,\r\n };\r\n\r\n return html`\r\n <div class=${classMap(datePickerClasses)} part=\"control\">\r\n <div class=\"date-picker__input-wrapper\">\r\n <input\r\n type=\"text\"\r\n class=\"date-picker__input\"\r\n part=\"input\"\r\n .value=${this.getFormattedValue()}\r\n placeholder=${this.placeholder}\r\n ?disabled=${this.disabled}\r\n ?required=${this.required}\r\n readonly\r\n @click=${this.handleInputClick}\r\n @keydown=${this.handleKeyDown}\r\n role=\"combobox\"\r\n aria-haspopup=\"grid\"\r\n aria-expanded=${this.isOpen}\r\n aria-disabled=${this.disabled}\r\n aria-label=${this.label || this.placeholder || 'Date picker'}\r\n />\r\n ${hasValue && !this.disabled\r\n ? html`\r\n <button\r\n type=\"button\"\r\n class=\"date-picker__clear\"\r\n part=\"clear-button\"\r\n @click=${this.handleClear}\r\n aria-label=\"Clear date\"\r\n tabindex=\"-1\"\r\n >\r\n ✕\r\n </button>\r\n `\r\n : ''}\r\n <div class=\"date-picker__indicator\" part=\"indicator\">\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M5 2V4M11 2V4M3 6H13M4 4H12C12.5523 4 13 4.44772 13 5V13C13 13.5523 12.5523 14 12 14H4C3.44772 14 3 13.5523 3 13V5C3 4.44772 3.44772 4 4 4Z\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n ${this.isOpen\r\n ? html`\r\n <div class=\"date-picker__calendar\" part=\"calendar\" role=\"grid\">\r\n <div class=\"date-picker__header\" part=\"header\">\r\n <button\r\n type=\"button\"\r\n class=\"date-picker__nav-button\"\r\n part=\"nav-button\"\r\n @click=${this.handlePreviousMonth}\r\n aria-label=\"Previous month\"\r\n tabindex=\"-1\"\r\n >\r\n ‹\r\n </button>\r\n <div class=\"date-picker__month-year\" part=\"month-year\">\r\n ${this.getMonthName(this.displayMonth)} ${this.displayYear}\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"date-picker__nav-button\"\r\n part=\"nav-button\"\r\n @click=${this.handleNextMonth}\r\n aria-label=\"Next month\"\r\n tabindex=\"-1\"\r\n >\r\n ›\r\n </button>\r\n </div>\r\n\r\n <div class=\"date-picker__weekdays\">\r\n ${weekdays.map(\r\n (day) => html`\r\n <div\r\n class=\"date-picker__weekday\"\r\n part=\"weekday\"\r\n role=\"columnheader\"\r\n >\r\n ${day}\r\n </div>\r\n `\r\n )}\r\n </div>\r\n\r\n <div class=\"date-picker__days\">\r\n ${calendarDays.map((date) => {\r\n const isCurrentMonth =\r\n date.getMonth() === this.displayMonth;\r\n const isSelected =\r\n selectedDate && this.isSameDay(date, selectedDate);\r\n const isToday = this.isSameDay(date, today);\r\n const isFocused =\r\n this.focusedDate &&\r\n this.isSameDay(date, this.focusedDate);\r\n const isDisabled = this.isDateDisabled(date);\r\n\r\n const dayClasses = {\r\n 'date-picker__day': true,\r\n 'date-picker__day--other-month': !isCurrentMonth,\r\n 'date-picker__day--selected': !!isSelected,\r\n 'date-picker__day--today': isToday,\r\n 'date-picker__day--focused': !!isFocused,\r\n 'date-picker__day--disabled': isDisabled,\r\n };\r\n\r\n return html`\r\n <button\r\n type=\"button\"\r\n class=${classMap(dayClasses)}\r\n part=\"day\"\r\n @click=${() =>\r\n !isDisabled && this.handleDateSelect(date)}\r\n ?disabled=${isDisabled}\r\n tabindex=\"-1\"\r\n role=\"gridcell\"\r\n aria-selected=${!!isSelected}\r\n aria-label=${date.toLocaleDateString()}\r\n >\r\n ${date.getDate()}\r\n </button>\r\n `;\r\n })}\r\n </div>\r\n </div>\r\n `\r\n : ''}\r\n ${this.name\r\n ? html`\r\n <input type=\"hidden\" name=${this.name} .value=${this.value} />\r\n `\r\n : ''}\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'bp-date-picker': BpDatePicker;\r\n }\r\n}\r\n"],"names":["datePickerStyles","css","BpDatePicker","LitElement","date","previousValue","event","currentFocus","days","result","months","year","month","day","value","match","today","date1","date2","minDate","maxDate","firstDay","lastDay","startDayOfWeek","dayOfWeek","i","remainingDays","weekdays","selectedDate","calendarDays","hasValue","datePickerClasses","html","classMap","isCurrentMonth","isSelected","isToday","isFocused","isDisabled","__decorateClass","property","state","customElement"],"mappings":";;;AAEO,MAAMA,IAAmBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}
@@ -0,0 +1,214 @@
1
+ import { css as h, LitElement as c, nothing as v, html as s } from "lit";
2
+ import { property as o, customElement as b } from "lit/decorators.js";
3
+ const g = h`
4
+ /* Base styles */
5
+ :host {
6
+ display: block;
7
+ }
8
+
9
+ :host([orientation='vertical']) {
10
+ display: inline-flex;
11
+ height: 100%;
12
+ }
13
+
14
+ .divider {
15
+ display: flex;
16
+ align-items: center;
17
+ font-family: var(--bp-font-family);
18
+ font-size: var(--bp-font-size-xs);
19
+ color: var(--bp-color-text-muted);
20
+ }
21
+
22
+ .divider__line {
23
+ flex: 1;
24
+ border: none;
25
+ border-top: var(--bp-border-width) solid var(--bp-color-border);
26
+ transition:
27
+ border-color 150ms ease,
28
+ border-width 150ms ease;
29
+ }
30
+
31
+ .divider__content {
32
+ display: inline-flex;
33
+ padding: 0 var(--bp-spacing-md);
34
+ white-space: nowrap;
35
+ min-width: fit-content;
36
+ }
37
+
38
+ .divider__content {
39
+ font-weight: var(--bp-font-weight-semibold);
40
+ text-transform: uppercase;
41
+ letter-spacing: 0.05em;
42
+ color: var(--bp-color-text-muted);
43
+ }
44
+
45
+ /* Orientations */
46
+ .divider--horizontal {
47
+ width: 100%;
48
+ flex-direction: row;
49
+ }
50
+
51
+ .divider--vertical {
52
+ height: 100%;
53
+ flex-direction: column;
54
+ align-self: stretch;
55
+ }
56
+
57
+ .divider--vertical .divider__line {
58
+ width: var(--bp-border-width);
59
+ height: auto;
60
+ border-top: none;
61
+ border-left: var(--bp-border-width) solid var(--bp-color-border);
62
+ }
63
+
64
+ /* Spacing */
65
+ .divider--spacing-sm {
66
+ margin: var(--bp-spacing-sm) 0;
67
+ }
68
+
69
+ .divider--spacing-sm.divider--vertical {
70
+ margin: 0 var(--bp-spacing-sm);
71
+ }
72
+
73
+ .divider--spacing-md {
74
+ margin: var(--bp-spacing-md) 0;
75
+ }
76
+
77
+ .divider--spacing-md.divider--vertical {
78
+ margin: 0 var(--bp-spacing-md);
79
+ }
80
+
81
+ .divider--spacing-lg {
82
+ margin: var(--bp-spacing-lg) 0;
83
+ }
84
+
85
+ .divider--spacing-lg.divider--vertical {
86
+ margin: 0 var(--bp-spacing-lg);
87
+ }
88
+
89
+ /* Variants */
90
+ .divider__line--dashed {
91
+ border-top-style: dashed;
92
+ }
93
+
94
+ .divider__line--dotted {
95
+ border-top-style: dotted;
96
+ }
97
+
98
+ .divider--vertical .divider__line--dashed {
99
+ border-top-style: none;
100
+ border-left-style: dashed;
101
+ }
102
+
103
+ .divider--vertical .divider__line--dotted {
104
+ border-top-style: none;
105
+ border-left-style: dotted;
106
+ }
107
+
108
+ /* Color variants */
109
+ :host([color='default']) .divider__line {
110
+ border-color: var(--bp-color-border);
111
+ }
112
+
113
+ :host([color='subtle']) .divider__line {
114
+ border-color: var(--bp-color-border);
115
+ opacity: 0.5;
116
+ }
117
+
118
+ :host([color='accent']) .divider__line {
119
+ border-color: var(--bp-color-primary);
120
+ }
121
+
122
+ /* Weight variants */
123
+ :host([weight='thin']) .divider__line {
124
+ border-top-width: var(--bp-border-width);
125
+ }
126
+
127
+ :host([weight='medium']) .divider__line {
128
+ border-top-width: calc(var(--bp-border-width) * 2);
129
+ }
130
+
131
+ :host([weight='thick']) .divider__line {
132
+ border-top-width: calc(var(--bp-border-width) * 3);
133
+ }
134
+
135
+ :host([weight='thin'][orientation='vertical']) .divider__line {
136
+ border-left-width: var(--bp-border-width);
137
+ border-top-width: 0;
138
+ }
139
+
140
+ :host([weight='medium'][orientation='vertical']) .divider__line {
141
+ border-left-width: calc(var(--bp-border-width) * 2);
142
+ border-top-width: 0;
143
+ }
144
+
145
+ :host([weight='thick'][orientation='vertical']) .divider__line {
146
+ border-left-width: calc(var(--bp-border-width) * 3);
147
+ border-top-width: 0;
148
+ }
149
+ `;
150
+ var _ = Object.defineProperty, m = Object.getOwnPropertyDescriptor, r = (a, d, n, i) => {
151
+ for (var t = i > 1 ? void 0 : i ? m(d, n) : d, l = a.length - 1, p; l >= 0; l--)
152
+ (p = a[l]) && (t = (i ? p(d, n, t) : p(t)) || t);
153
+ return i && t && _(d, n, t), t;
154
+ };
155
+ let e = class extends c {
156
+ constructor() {
157
+ super(), this.handleSlotChange = (a) => {
158
+ const n = a.target.assignedNodes({ flatten: !0 });
159
+ this.hasContent = n.some(
160
+ (i) => i.nodeType === Node.ELEMENT_NODE || i.nodeType === Node.TEXT_NODE && i.textContent?.trim() !== ""
161
+ );
162
+ }, this.orientation = "horizontal", this.spacing = "md", this.variant = "solid", this.color = "default", this.weight = "thin", this.hasContent = !1;
163
+ }
164
+ render() {
165
+ return s`
166
+ <div
167
+ class="divider divider--${this.orientation} divider--spacing-${this.spacing}"
168
+ role="separator"
169
+ aria-orientation="${this.orientation}"
170
+ part="divider"
171
+ >
172
+ <span
173
+ class="divider__line divider__line--${this.variant}"
174
+ part="line"
175
+ ></span>
176
+ ${this.orientation === "horizontal" ? s`
177
+ ${this.hasContent ? s`<span class="divider__content" part="content">
178
+ <slot @slotchange=${this.handleSlotChange}></slot>
179
+ </span>
180
+ <span
181
+ class="divider__line divider__line--${this.variant}"
182
+ part="line"
183
+ ></span>` : s`<slot @slotchange=${this.handleSlotChange}></slot>`}
184
+ ` : v}
185
+ </div>
186
+ `;
187
+ }
188
+ };
189
+ e.styles = [g];
190
+ r([
191
+ o({ type: String, reflect: !0 })
192
+ ], e.prototype, "orientation", 2);
193
+ r([
194
+ o({ type: String, reflect: !0 })
195
+ ], e.prototype, "spacing", 2);
196
+ r([
197
+ o({ type: String, reflect: !0 })
198
+ ], e.prototype, "variant", 2);
199
+ r([
200
+ o({ type: String, reflect: !0 })
201
+ ], e.prototype, "color", 2);
202
+ r([
203
+ o({ type: String, reflect: !0 })
204
+ ], e.prototype, "weight", 2);
205
+ r([
206
+ o({ attribute: !1 })
207
+ ], e.prototype, "hasContent", 2);
208
+ e = r([
209
+ b("bp-divider")
210
+ ], e);
211
+ export {
212
+ e as BpDivider
213
+ };
214
+ //# sourceMappingURL=divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.js","sources":["../../source/components/divider/divider.style.ts","../../source/components/divider/divider.ts"],"sourcesContent":["import { css } from 'lit';\r\n\r\nexport const dividerStyles = css`\r\n /* Base styles */\r\n :host {\r\n display: block;\r\n }\r\n\r\n :host([orientation='vertical']) {\r\n display: inline-flex;\r\n height: 100%;\r\n }\r\n\r\n .divider {\r\n display: flex;\r\n align-items: center;\r\n font-family: var(--bp-font-family);\r\n font-size: var(--bp-font-size-xs);\r\n color: var(--bp-color-text-muted);\r\n }\r\n\r\n .divider__line {\r\n flex: 1;\r\n border: none;\r\n border-top: var(--bp-border-width) solid var(--bp-color-border);\r\n transition:\r\n border-color 150ms ease,\r\n border-width 150ms ease;\r\n }\r\n\r\n .divider__content {\r\n display: inline-flex;\r\n padding: 0 var(--bp-spacing-md);\r\n white-space: nowrap;\r\n min-width: fit-content;\r\n }\r\n\r\n .divider__content {\r\n font-weight: var(--bp-font-weight-semibold);\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n color: var(--bp-color-text-muted);\r\n }\r\n\r\n /* Orientations */\r\n .divider--horizontal {\r\n width: 100%;\r\n flex-direction: row;\r\n }\r\n\r\n .divider--vertical {\r\n height: 100%;\r\n flex-direction: column;\r\n align-self: stretch;\r\n }\r\n\r\n .divider--vertical .divider__line {\r\n width: var(--bp-border-width);\r\n height: auto;\r\n border-top: none;\r\n border-left: var(--bp-border-width) solid var(--bp-color-border);\r\n }\r\n\r\n /* Spacing */\r\n .divider--spacing-sm {\r\n margin: var(--bp-spacing-sm) 0;\r\n }\r\n\r\n .divider--spacing-sm.divider--vertical {\r\n margin: 0 var(--bp-spacing-sm);\r\n }\r\n\r\n .divider--spacing-md {\r\n margin: var(--bp-spacing-md) 0;\r\n }\r\n\r\n .divider--spacing-md.divider--vertical {\r\n margin: 0 var(--bp-spacing-md);\r\n }\r\n\r\n .divider--spacing-lg {\r\n margin: var(--bp-spacing-lg) 0;\r\n }\r\n\r\n .divider--spacing-lg.divider--vertical {\r\n margin: 0 var(--bp-spacing-lg);\r\n }\r\n\r\n /* Variants */\r\n .divider__line--dashed {\r\n border-top-style: dashed;\r\n }\r\n\r\n .divider__line--dotted {\r\n border-top-style: dotted;\r\n }\r\n\r\n .divider--vertical .divider__line--dashed {\r\n border-top-style: none;\r\n border-left-style: dashed;\r\n }\r\n\r\n .divider--vertical .divider__line--dotted {\r\n border-top-style: none;\r\n border-left-style: dotted;\r\n }\r\n\r\n /* Color variants */\r\n :host([color='default']) .divider__line {\r\n border-color: var(--bp-color-border);\r\n }\r\n\r\n :host([color='subtle']) .divider__line {\r\n border-color: var(--bp-color-border);\r\n opacity: 0.5;\r\n }\r\n\r\n :host([color='accent']) .divider__line {\r\n border-color: var(--bp-color-primary);\r\n }\r\n\r\n /* Weight variants */\r\n :host([weight='thin']) .divider__line {\r\n border-top-width: var(--bp-border-width);\r\n }\r\n\r\n :host([weight='medium']) .divider__line {\r\n border-top-width: calc(var(--bp-border-width) * 2);\r\n }\r\n\r\n :host([weight='thick']) .divider__line {\r\n border-top-width: calc(var(--bp-border-width) * 3);\r\n }\r\n\r\n :host([weight='thin'][orientation='vertical']) .divider__line {\r\n border-left-width: var(--bp-border-width);\r\n border-top-width: 0;\r\n }\r\n\r\n :host([weight='medium'][orientation='vertical']) .divider__line {\r\n border-left-width: calc(var(--bp-border-width) * 2);\r\n border-top-width: 0;\r\n }\r\n\r\n :host([weight='thick'][orientation='vertical']) .divider__line {\r\n border-left-width: calc(var(--bp-border-width) * 3);\r\n border-top-width: 0;\r\n }\r\n`;\r\n","import { LitElement, html, nothing } from 'lit';\r\nimport { customElement, property } from 'lit/decorators.js';\r\nimport { dividerStyles } from './divider.style.js';\r\n\r\nexport type DividerOrientation = 'horizontal' | 'vertical';\r\nexport type DividerSpacing = 'sm' | 'md' | 'lg';\r\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted';\r\nexport type DividerColor = 'default' | 'subtle' | 'accent';\r\nexport type DividerWeight = 'thin' | 'medium' | 'thick';\r\n\r\n/**\r\n * A divider component that provides visual separation between content sections.\r\n * Supports both horizontal and vertical orientations with optional text labels.\r\n */\r\n@customElement('bp-divider')\r\nexport class BpDivider extends LitElement {\r\n /**\r\n * Orientation of the divider.\r\n * @type {'horizontal' | 'vertical'}\r\n * @default 'horizontal'\r\n */\r\n @property({ type: String, reflect: true })\r\n declare orientation: DividerOrientation;\r\n\r\n /**\r\n * Spacing variant for the divider.\r\n * @type {'sm' | 'md' | 'lg'}\r\n * @default 'md'\r\n */\r\n @property({ type: String, reflect: true }) declare spacing: DividerSpacing;\r\n\r\n /**\r\n * Visual variant of the divider line.\r\n * @type {'solid' | 'dashed' | 'dotted'}\r\n * @default 'solid'\r\n */\r\n @property({ type: String, reflect: true }) declare variant: DividerVariant;\r\n\r\n /**\r\n * Color variant for the divider line.\r\n * @type {'default' | 'subtle' | 'accent'}\r\n * @default 'default'\r\n */\r\n @property({ type: String, reflect: true }) declare color: DividerColor;\r\n\r\n /**\r\n * Border weight for the divider line.\r\n * @type {'thin' | 'medium' | 'thick'}\r\n * @default 'thin'\r\n */\r\n @property({ type: String, reflect: true }) declare weight: DividerWeight;\r\n\r\n /** Whether the default slot has content. */\r\n @property({ attribute: false }) declare hasContent: boolean;\r\n\r\n static styles = [dividerStyles];\r\n\r\n constructor() {\r\n super();\r\n this.orientation = 'horizontal';\r\n this.spacing = 'md';\r\n this.variant = 'solid';\r\n this.color = 'default';\r\n this.weight = 'thin';\r\n this.hasContent = false;\r\n }\r\n\r\n private handleSlotChange = (event: Event) => {\r\n const slot = event.target as HTMLElement & {\r\n assignedNodes: (options?: { flatten?: boolean }) => Node[];\r\n };\r\n const nodes = slot.assignedNodes({ flatten: true });\r\n this.hasContent = nodes.some(\r\n (node) =>\r\n node.nodeType === Node.ELEMENT_NODE ||\r\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')\r\n );\r\n };\r\n\r\n render() {\r\n return html`\r\n <div\r\n class=\"divider divider--${this.orientation} divider--spacing-${this\r\n .spacing}\"\r\n role=\"separator\"\r\n aria-orientation=\"${this.orientation}\"\r\n part=\"divider\"\r\n >\r\n <span\r\n class=\"divider__line divider__line--${this.variant}\"\r\n part=\"line\"\r\n ></span>\r\n ${this.orientation === 'horizontal'\r\n ? html`\r\n ${this.hasContent\r\n ? html`<span class=\"divider__content\" part=\"content\">\r\n <slot @slotchange=${this.handleSlotChange}></slot>\r\n </span>\r\n <span\r\n class=\"divider__line divider__line--${this.variant}\"\r\n part=\"line\"\r\n ></span>`\r\n : html`<slot @slotchange=${this.handleSlotChange}></slot>`}\r\n `\r\n : nothing}\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'bp-divider': BpDivider;\r\n }\r\n}\r\n"],"names":["dividerStyles","css","BpDivider","LitElement","event","nodes","node","html","nothing","__decorateClass","property","customElement"],"mappings":"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"}